iptdevs-design-system 3.1.4396 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/cod/cod-form/cod-form.component.mjs +34 -21
- package/esm2020/lib/cod/logic/calculate-quotes.service.mjs +73 -53
- package/esm2020/lib/cod/modal-referred/modal-referred.component.mjs +2 -2
- package/esm2020/lib/cod/steps/cod-form-step-five/cod-form-step-five.component.mjs +18 -24
- package/esm2020/lib/cod/steps/cod-form-step-four/cod-form-step-four.component.mjs +85 -76
- package/esm2020/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.mjs +225 -92
- package/esm2020/lib/cod/steps/cod-form-step-three/cod-form-step-three.component.mjs +14 -18
- package/esm2020/lib/cod/steps/cod-form-step-two/cod-form-step-two.component.mjs +95 -70
- package/esm2020/lib/cod-self-managed/cod-form-self-managed/cod-self-managed.component.mjs +190 -22
- package/esm2020/lib/cod-self-managed/cod-self-managed.module.mjs +28 -4
- package/esm2020/lib/cod-self-managed/logic/calculate-quotes.service.mjs +99 -0
- package/esm2020/lib/cod-self-managed/logic/cod-self-managed-controls.mjs +16 -44
- package/esm2020/lib/cod-self-managed/logic/cod-self-managed-steps.mjs +1 -1
- package/esm2020/lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component.mjs +244 -7
- package/esm2020/lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component.mjs +102 -18
- package/esm2020/lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component.mjs +255 -7
- package/esm2020/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.mjs +144 -32
- package/esm2020/lib/components/atoms/button/button.component.mjs +2 -2
- package/esm2020/lib/components/atoms/datalist/datalist.component.mjs +26 -17
- package/esm2020/lib/components/atoms/input/input.component.mjs +2 -2
- package/esm2020/lib/components/atoms/level-button/level-button.component.mjs +2 -2
- package/esm2020/lib/components/atoms/loader/loader.component.mjs +2 -2
- package/esm2020/lib/components/atoms/select/select.component.mjs +10 -8
- package/esm2020/lib/components/components.module.mjs +54 -8
- package/esm2020/lib/components/forms/create-user-form/create-user-form.component.mjs +3 -3
- package/esm2020/lib/components/forms/update-user-form/update-user-form.component.mjs +843 -0
- package/esm2020/lib/components/molecules/card-course/card-course.component.mjs +95 -0
- package/esm2020/lib/components/molecules/card-select-course/card-select-course.component.mjs +52 -0
- package/esm2020/lib/components/molecules/sidenav/sidenav.component.mjs +5 -5
- package/esm2020/lib/core/core.module.mjs +9 -3
- package/esm2020/lib/core/models/academic/academic.component.mjs +1 -1
- package/esm2020/lib/core/models/announcement/announcement-user-rq.model.mjs +2 -0
- package/esm2020/lib/core/models/announcement/announcement-user-rs.model.mjs +3 -0
- package/esm2020/lib/core/models/attendance/attendance.interface.mjs +1 -1
- package/esm2020/lib/core/models/budget/budget.model.mjs +1 -1
- package/esm2020/lib/core/models/cod/cod-rq.model.mjs +1 -1
- package/esm2020/lib/core/models/commercial/commercial.model.mjs +1 -1
- package/esm2020/lib/core/models/course/course-rq.model.mjs +1 -1
- package/esm2020/lib/core/models/course/courses.model.mjs +1 -1
- package/esm2020/lib/core/models/epayco/epayco.interfaces.mjs +2 -0
- package/esm2020/lib/core/models/notes/INotesTemplate.mjs +1 -1
- package/esm2020/lib/core/models/notes/notes.interface.mjs +1 -1
- package/esm2020/lib/core/models/parameters/parameters-rs.model.mjs +1 -1
- package/esm2020/lib/core/models/payment/payment-rq.model.mjs +1 -1
- package/esm2020/lib/core/models/student/student.interface.mjs +1 -1
- package/esm2020/lib/core/models/terms/terms-rs.model.mjs +2 -0
- package/esm2020/lib/core/models/transfer/transfer.model.mjs +2 -0
- package/esm2020/lib/core/models/user/user-rq.model.mjs +1 -1
- package/esm2020/lib/core/models/user/user-rs.model.mjs +3 -1
- package/esm2020/lib/core/pipes/course-pipes/schedule-form.pipe.mjs +47 -0
- package/esm2020/lib/core/pipes/course-pipes/time-form.pipe.mjs +34 -0
- package/esm2020/lib/core/pipes/course-pipes/type-level.pipe.mjs +57 -0
- package/esm2020/lib/core/pipes/parameter-pipes/gender-display.pipe.mjs +22 -0
- package/esm2020/lib/core/pipes/pipe.module.mjs +37 -0
- package/esm2020/lib/core/services/academic-service/academic.service.mjs +64 -1
- package/esm2020/lib/core/services/announcement/announcement.service.mjs +57 -0
- package/esm2020/lib/core/services/attendance-service/attendance.service.mjs +31 -1
- package/esm2020/lib/core/services/budget-service/budget-service.mjs +297 -1
- package/esm2020/lib/core/services/certificate-service/certificate.service.mjs +21 -1
- package/esm2020/lib/core/services/commercial-service/comercial.service.mjs +95 -1
- package/esm2020/lib/core/services/course-service/course-service.model.mjs +96 -1
- package/esm2020/lib/core/services/ePayco/epayco.service.mjs +37 -0
- package/esm2020/lib/core/services/notes-service/notes.service.mjs +6 -1
- package/esm2020/lib/core/services/parameters-service/parameters.service.mjs +13 -1
- package/esm2020/lib/core/services/user-service/user-service.mjs +55 -1
- package/esm2020/public-api.mjs +13 -1
- package/fesm2015/iptdevs-design-system.mjs +4357 -1296
- package/fesm2015/iptdevs-design-system.mjs.map +1 -1
- package/fesm2020/iptdevs-design-system.mjs +7080 -4043
- package/fesm2020/iptdevs-design-system.mjs.map +1 -1
- package/lib/cod/cod-form/cod-form.component.d.ts +7 -2
- package/lib/cod/logic/calculate-quotes.service.d.ts +3 -0
- package/lib/cod/steps/cod-form-step-five/cod-form-step-five.component.d.ts +4 -4
- package/lib/cod/steps/cod-form-step-four/cod-form-step-four.component.d.ts +6 -9
- package/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.d.ts +9 -7
- package/lib/cod/steps/cod-form-step-three/cod-form-step-three.component.d.ts +4 -4
- package/lib/cod/steps/cod-form-step-two/cod-form-step-two.component.d.ts +8 -5
- package/lib/cod-self-managed/cod-form-self-managed/cod-self-managed.component.d.ts +31 -7
- package/lib/cod-self-managed/cod-self-managed.module.d.ts +7 -1
- package/lib/cod-self-managed/logic/calculate-quotes.service.d.ts +16 -0
- package/lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component.d.ts +46 -2
- package/lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component.d.ts +17 -5
- package/lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component.d.ts +48 -3
- package/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.d.ts +43 -9
- package/lib/components/atoms/datalist/datalist.component.d.ts +7 -3
- package/lib/components/atoms/select/select.component.d.ts +2 -1
- package/lib/components/components.module.d.ts +14 -5
- package/lib/components/forms/update-user-form/update-user-form.component.d.ts +87 -0
- package/lib/components/molecules/card-course/card-course.component.d.ts +21 -0
- package/lib/components/molecules/card-select-course/card-select-course.component.d.ts +13 -0
- package/lib/core/models/academic/academic.component.d.ts +143 -1
- package/lib/core/models/announcement/announcement-user-rq.model.d.ts +12 -0
- package/lib/core/models/announcement/announcement-user-rs.model.d.ts +7 -0
- package/lib/core/models/attendance/attendance.interface.d.ts +146 -0
- package/lib/core/models/budget/budget.model.d.ts +554 -0
- package/lib/core/models/cod/cod-rq.model.d.ts +193 -0
- package/lib/core/models/commercial/commercial.model.d.ts +91 -0
- package/lib/core/models/course/course-rq.model.d.ts +296 -22
- package/lib/core/models/course/courses.model.d.ts +51 -0
- package/lib/core/models/epayco/epayco.interfaces.d.ts +6 -0
- package/lib/core/models/notes/INotesTemplate.d.ts +57 -0
- package/lib/core/models/notes/notes.interface.d.ts +13 -0
- package/lib/core/models/parameters/parameters-rs.model.d.ts +78 -1
- package/lib/core/models/payment/payment-rq.model.d.ts +168 -0
- package/lib/core/models/student/student.interface.d.ts +18 -0
- package/lib/core/models/terms/terms-rs.model.d.ts +435 -0
- package/lib/core/models/transfer/transfer.model.d.ts +89 -0
- package/lib/core/models/user/user-rq.model.d.ts +78 -0
- package/lib/core/models/user/user-rs.model.d.ts +11 -0
- package/lib/core/pipes/course-pipes/schedule-form.pipe.d.ts +7 -0
- package/lib/core/pipes/course-pipes/time-form.pipe.d.ts +9 -0
- package/lib/core/pipes/course-pipes/type-level.pipe.d.ts +7 -0
- package/lib/core/pipes/parameter-pipes/gender-display.pipe.d.ts +7 -0
- package/lib/core/pipes/pipe.module.d.ts +11 -0
- package/lib/core/services/academic-service/academic.service.d.ts +18 -3
- package/lib/core/services/announcement/announcement.service.d.ts +18 -0
- package/lib/core/services/attendance-service/attendance.service.d.ts +7 -1
- package/lib/core/services/budget-service/budget-service.d.ts +57 -3
- package/lib/core/services/certificate-service/certificate.service.d.ts +5 -0
- package/lib/core/services/commercial-service/comercial.service.d.ts +23 -2
- package/lib/core/services/course-service/course-service.model.d.ts +22 -1
- package/lib/core/services/ePayco/epayco.service.d.ts +17 -0
- package/lib/core/services/notes-service/notes.service.d.ts +2 -1
- package/lib/core/services/parameters-service/parameters.service.d.ts +3 -0
- package/lib/core/services/user-service/user-service.d.ts +12 -1
- package/package.json +1 -1
- package/public-api.d.ts +11 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iptdevs-design-system.mjs","sources":["../../../design-system/src/lib/components/atoms/aside-button/aside-button.component.ts","../../../design-system/src/lib/components/atoms/button/button.component.ts","../../../design-system/src/lib/components/atoms/checkbox/checkbox.component.ts","../../../design-system/src/lib/components/atoms/datalist/datalist.component.ts","../../../design-system/src/lib/components/atoms/input/input.component.ts","../../../design-system/src/lib/components/atoms/level-button/level-button.component.ts","../../../design-system/src/lib/components/atoms/level-text/level-text.component.ts","../../../design-system/src/lib/components/atoms/loader/loader.component.ts","../../../design-system/src/lib/components/atoms/radio/radio.component.ts","../../../design-system/src/lib/components/atoms/select/select.component.ts","../../../design-system/src/lib/components/atoms/text-link/text-link.component.ts","../../../design-system/src/lib/core/services/service-enviroments.ts","../../../design-system/src/lib/core/services/user-service/user-service.ts","../../../design-system/src/lib/core/services/storage-service/storage-service.ts","../../../design-system/src/lib/core/services/calendar-service/calendar.service.ts","../../../design-system/src/lib/core/utils/base-service/base.service.ts","../../../design-system/src/lib/components/forms/login-form/login-form.component.ts","../../../design-system/src/lib/core/services/parameters-service/parameters.service.ts","../../../design-system/src/lib/components/forms/create-user-form/create-user-form.component.ts","../../../design-system/src/lib/components/forms/create-user-form/create-user-form.component.html","../../../design-system/src/lib/components/molecules/sidenav/sidenav.component.ts","../../../design-system/src/lib/components/material.module.ts","../../../design-system/src/lib/components/molecules/question-type/edit-question-types.component.ts","../../../design-system/src/lib/components/components.module.ts","../../../design-system/src/lib/core/services/media-service/media.service.ts","../../../design-system/src/lib/cod/cod-documents-section/cod-documents-section.component.ts","../../../design-system/src/lib/cod/cod-documents-section/cod-documents-section.component.html","../../../design-system/src/lib/cod/logic/local-storage-cod.service.ts","../../../design-system/src/lib/cod/logic/cod-form-controls.ts","../../../design-system/src/lib/core/services/commercial-service/comercial.service.ts","../../../design-system/src/lib/cod/logic/cod-form-steps.ts","../../../design-system/src/lib/core/utils/copies.ts","../../../design-system/src/lib/core/services/copies.service.ts","../../../design-system/src/lib/core/services/course-service/course-service.model.ts","../../../design-system/src/lib/cod/logic/communicator.service.ts","../../../design-system/src/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.html","../../../design-system/src/lib/cod/steps/cod-form-step-two/cod-form-step-two.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-two/cod-form-step-two.component.html","../../../design-system/src/lib/cod/steps/cod-form-step-three/cod-form-step-three.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-three/cod-form-step-three.component.html","../../../design-system/src/lib/cod/logic/calculate-quotes.service.ts","../../../design-system/src/lib/cod/steps/cod-form-step-four/cod-form-step-four.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-four/cod-form-step-four.component.html","../../../design-system/src/lib/cod/modal-referred/modal-referred.component.ts","../../../design-system/src/lib/cod/modal-referred/modal-referred.component.html","../../../design-system/src/lib/cod/steps/cod-form-step-five/cod-form-step-five.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-five/cod-form-step-five.component.html","../../../design-system/src/lib/cod/cod-form/cod-form.component.ts","../../../design-system/src/lib/cod/cod-form/cod-form.component.html","../../../design-system/src/lib/cod/cod.module.ts","../../../design-system/src/lib/core/utils/route-service/route.service.ts","../../../design-system/src/lib/core/services/switch-service/switch.service.ts","../../../design-system/src/lib/core/services/test-service/test.service.ts","../../../design-system/src/lib/core/services/marketing-service/marketing-service.ts","../../../design-system/src/lib/core/services/budget-service/budget-service.ts","../../../design-system/src/lib/core/services/classroom-service/classroom-service.service.ts","../../../design-system/src/lib/core/services/activity-service/activity.service.ts","../../../design-system/src/lib/core/services/academic-service/academic.service.ts","../../../design-system/src/lib/core/services/attendance-service/attendance.service.ts","../../../design-system/src/lib/core/services/certificate-service/certificate.service.ts","../../../design-system/src/lib/core/services/ekt-service/userekt.service.ts","../../../design-system/src/lib/core/core.module.ts","../../../design-system/src/lib/cod-self-managed/logic/cod-self-managed-controls.ts","../../../design-system/src/lib/cod-self-managed/logic/local-storage-cod.service.ts","../../../design-system/src/lib/cod-self-managed/logic/cod-self-managed-steps.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component.html","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.html","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component.html","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component.html","../../../design-system/src/lib/cod-self-managed/cod-form-self-managed/cod-self-managed.component.ts","../../../design-system/src/lib/cod-self-managed/cod-form-self-managed/cod-self-managed.component.html","../../../design-system/src/lib/cod-self-managed/cod-self-managed.module.ts","../../../design-system/src/lib/design-system.module.ts","../../../design-system/src/lib/core/services/notes-service/notes.service.ts","../../../design-system/src/lib/core/services/student-service/student.service.ts","../../../design-system/src/lib/core/services/commercial-service/validators.ts","../../../design-system/src/lib/core/services/placement-service/placement.service.ts","../../../design-system/src/lib/core/models/course/course-rq.model.ts","../../../design-system/src/lib/core/models/session/session.model.ts","../../../design-system/src/lib/core/models/user/user-rs.model.ts","../../../design-system/src/public-api.ts","../../../design-system/src/iptdevs-design-system.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n@Component({\n selector: 'ipt-aside-button',\n template: `\n <div [ngSwitch]=\"buttonActive\">\n <a *ngSwitchCase=\"0\" class=\"flex-item-menu__link\" (click)=\"clickAction()\">\n <img src=\"{{ icon }}\" alt=\"icon_url\" />\n <p>{{ text }}</p>\n </a>\n\n <a *ngSwitchCase=\"1\" class=\"flex-item-menu__link flex-item-active\" (click)=\"clickAction()\">\n <img src=\"{{ icon }}\" alt=\"icon_url\" />\n <p>{{ text }}</p>\n </a>\n </div>\n `,\n styleUrls: ['./aside-button.css']\n})\n\nexport class AsideButtonComponent {\n @Input() icon!: string;\n @Input() text!: string;\n @Input() buttonActive?: boolean;\n @Output() isClicked = new EventEmitter<boolean>();\n\n clickAction() {\n this.isClicked.emit(true);\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ipt-button',\n template: `<button *ngIf=\"isEnabled\"\n type=\"{{ buttonType }}\"\n (click)=\"onClick.emit($event)\"\n [ngClass]=\"classes\"\n >\n {{ label }}\n </button>\n\n <button *ngIf=\"!isEnabled\"\n type=\"{{ buttonType }}\"\n [ngClass]=\"classes\"\n >\n {{ label }}\n </button>`,\n styleUrls: ['./button.css'],\n})\nexport class ButtonComponent {\n\n @Input() primary: boolean = false;\n @Input() size: 'small' | 'medium' | 'large' = 'medium';\n @Input() label: string = 'Button';\n @Input() buttonType?: string;\n @Input() isEnabled: boolean = true;\n\n @Output() onClick = new EventEmitter<Event>();\n\n public get classes(): string[] {\n const mode = this.primary && this.isEnabled === true\n ? 'ipt-button--primary'\n : this.isEnabled === false ? 'ipt-button--primary-disabled'\n : 'ipt-button--secondary';\n\n return ['ipt-button', `ipt-button--${this.size}`, mode];\n }\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { AbstractControl, FormControl } from \"@angular/forms\";\n\n@Component({\n selector: 'ipt-checkbox',\n template: `\n <label class=\"cont\">\n <input\n class=\"checkbox\"\n [formControl]=\"formControl\"\n [checked]=\"checkboxOption\"\n (click)=\"onChecked.emit($event)\"\n type=\"checkbox\">\n <span></span>\n </label>\n `,\n styleUrls: ['./checkbox.css']\n})\n\nexport class CheckboxComponent {\n\n @Input() checkboxOption: boolean = false;\n @Input() set control(value: AbstractControl) {\n if (this.formControl !== value) {\n this.formControl = value as FormControl;\n }\n }\n\n @Output() onChecked = new EventEmitter<Event>();\n\n formControl!: FormControl;\n\n}\n","import { Component, Input, Output, EventEmitter, ViewChild, SimpleChanges } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, NgForm, Validators } from '@angular/forms';\n\n@Component({\n selector: 'ipt-datalist',\n template: `\n <div class=\"input-container\">\n <label [ngClass]=\"labelClass\">{{ placeHolder }}</label>\n <input\n type=\"text\"\n class=\"input\"\n (click)=\"click($event)\"\n [attr.list]=\"datalistId\"\n (change)=\"optionChanged($event)\"\n [disabled]=\"disabledSel\"\n [value]=\"setDataListValue()\"\n />\n\n <datalist id=\"{{ datalistId }}\">\n <option *ngFor=\"let item of datalistData; index as i\" [value]=\"item.name\">\n {{item.id_card}} {{item.name}}\n </option>\n </datalist>\n </div>\n `,\n styleUrls: ['./datalist.css'],\n})\nexport class DatalistComponent {\n\n @Input() datalistId!: string;\n @Input() datalistData!: any[];\n @Input() placeHolder!: string;\n @Input() validateText!: string;\n @Input() initalData!: string;\n @Input() disabledSel:boolean = false;\n\n @Output() isChanged = new EventEmitter<string>();\n\n clicked: boolean = false;\n\n constructor(fb: FormBuilder) {\n }\n\n optionChanged(event: any) {\n let selectOption = this.datalistData.find(element => element.name == event.target.value);\n if (typeof(selectOption) != 'undefined') {\n this.isChanged.emit(selectOption.code);\n } else {\n this.isChanged.emit('-1');\n }\n }\n\n click(value: MouseEvent) {\n this.clicked = value.isTrusted;\n }\n\n setDataListValue() {\n let selectOption = this.datalistData.find(element => element.code == this.initalData);\n if (typeof(selectOption) != 'undefined') {\n return selectOption.name;\n } else {\n return '';\n }\n }\n\n public get labelClass(): string {\n return this.clicked === false ? 'label' : 'labelUp';\n }\n}\n","import { AbstractControl, FormControl } from '@angular/forms';\nimport { Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\n\n@Component({\n selector: 'ipt-input',\n template: `\n <div class=\"input-container\">\n <!-- Resto del código... -->\n <input *ngIf=\"inputType === 'date'\"\n class=\"input\"\n type=\"{{ inputType ? 'text' : 'date' }}\"\n [formControl]=\"formControl\"\n (ngModelChange)=\"selectedDate($event)\"\n onfocus=\"this.type='date';\"\n onblur=\"javascript: if( !this.value ) this.type='text';\"\n uib-datepicker-popup=\"dd/MM/yyyy\"\n ng-model=\"inputType\"/>\n\n <input *ngIf=\"inputType !== 'date' && inputType !== 'time' && !withPipe\"\n class=\"input\"\n type=\"{{ inputType }}\"\n [formControl]=\"formControl\"\n [attr.list]=\"list\"/>\n\n <input *ngIf=\"inputType === 'text' && withPipe\"\n class=\"input\"\n currencyMask\n [options]=\"{ prefix: prefix, thousands: thousands, decimal: decimal, allowNegative: false }\"\n type=\"{{ inputType }}\"\n [formControl]=\"formControl\"\n [attr.list]=\"list\"/>\n\n <input *ngIf=\"inputType === 'time'\"\n class=\"input\"\n type=\"time\"\n [formControl]=\"formControl\"\n [min]=\"'06:00:00'\"\n max=\"22:00:00\"\n step=\"900\"\n autocomplete=\"on\"\n value=\"08:00:00\"\n (click)=\"click($event)\"\n />\n\n <label [ngClass]=\"{'labelUp': formControl.value !== ''}\">{{ placeHolder }}</label>\n\n <p *ngIf=\"(formControl.invalid && formControl.value !== '')\">\n {{ validateText }}\n </p>\n </div>\n `,\n styleUrls: ['./input.css'],\n})\nexport class InputComponent implements OnInit {\n\n public codeValue!: string;\n data: any[] = [];\n formControl!: FormControl;\n clicked: boolean = false;\n\n @Input() inputType!: string;\n @Input() placeHolder!: string;\n @Input() validateText?: string;\n @Input() withPipe?: boolean = false;\n @Input() list?: string; //Para el datalist\n @Input() iconUrl?: string;\n @Input() set control(value: AbstractControl | string) {\n if (this.formControl !== value) {\n this.formControl = value as FormControl;\n }\n }\n\n @Input() prefix: string = '$';\n @Input() thousands: string = '.';\n @Input() decimal: string = ',';\n @Output() dateSelected = new EventEmitter<string>();\n @Input() disabledSel: boolean = false;\n\n constructor() {}\n\n ngOnInit() {}\n\n selectedDate(evt: string){\n this.dateSelected.emit(evt);\n }\n\n click(value: MouseEvent) {\n this.clicked = value.isTrusted;\n }\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ipt-level-button',\n template: `\n <div [ngSwitch]=\"buttonActive\">\n <button\n *ngSwitchCase=\"0\"\n (click)=\"clickAction()\"\n id=\"level\"\n class=\"courses\"\n >\n <p class=\"p-level\">{{ level }}</p>\n </button>\n\n <button\n *ngSwitchCase=\"1\"\n (click)=\"clickAction()\"\n id=\"{{ idColor }}\"\n class=\"courses\">\n <p class=\"p-level p-level-active\">{{ level }}</p>\n </button>\n </div>\n `,\n styleUrls: ['./level-button.css'],\n})\n\nexport class LevelButtonComponent {\n\n @Input() level!: string;\n @Input() buttonActive!: boolean;\n @Input() idColor!: string;\n @Output() isClicked = new EventEmitter<boolean>();\n\n clickAction() {\n this.isClicked.emit(true);\n }\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ipt-level-button',\n template: `\n <p class=\"p-table-course\">{{ level }}: {{ total }}</p>\n `,\n styleUrls: ['./level-text.css'],\n})\n\nexport class LevelTextComponent {\n\n @Input() level!: string;\n @Input() total!: string;\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ipt-loader',\n template: `\n <div [ngClass]=\"{'dialog': isDialog}\">\n <div [ngClass]=\"{'loader_container' : isDialog}\">\n <span>{{ message }}</span>\n <div class=\"container\">\n <div class=\"spinner\">\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n </div>\n </div>\n </div>\n </div>`,\n styleUrls: ['./loader.css']\n})\nexport class LoaderComponent {\n @Input() message: string = '';\n @Input() isDialog: boolean = false;\n}\n\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { AbstractControl, FormControl } from \"@angular/forms\";\n\n@Component({\n selector: 'ipt-radio',\n template: `\n <label class=\"cont\">\n <input\n class=\"radio\"\n [formControl]=\"formControl\"\n [checked]=\"radioOption\"\n (click)=\"onSelected.emit($event)\"\n type=\"radio\">\n <span></span>\n </label>\n `,\n styleUrls: ['./radio.css']\n})\n\nexport class RadioComponent {\n\n @Input() radioOption: boolean = false;\n @Input() set control(value: AbstractControl) {\n if (this.formControl !== value) {\n this.formControl = value as FormControl;\n }\n }\n\n @Output() onSelected = new EventEmitter<Event>();\n\n formControl!: FormControl;\n\n}\n","import { Component, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n@Component({\n selector: 'ipt-select',\n template: `\n <div class=\"select-container\">\n <label [ngClass]=\"labelClass\">{{ defaultText }}</label>\n <select\n [(ngModel)]=\"binding\"\n (ngModelChange)=\"seleccionar($event)\"\n (click)=\"click($event)\"\n [ngClass]=\"textClass\"\n [disabled]=\"disabledSel\">\n <option *ngFor=\"let item of data; index as i\" [value]=\"item.code\">\n {{ item.name }} {{ item.prefix }}\n </option>\n </select>\n </div>\n `,\n styleUrls: ['./select.css'],\n})\nexport class SelectComponent {\n\n binding: any;\n boxShadow: number = 0;\n formControl!: FormControl;\n clicked: boolean = false;\n\n @Input() isRequired!: boolean; // temas de validacion\n // objeto que me trae el listado\n @Input() data!: any[]; // recibe un array de cualquier cosa\n @Input() defaultText!: any;\n @Input() selectCode!:string;\n @Input() disabledSel:boolean = false;\n @Input() initialValue!: string;\n\n @Output() eventSelect = new EventEmitter<string>();\n // type viene de otro componente -> indica de que tipo es el arreglo si pregrade, posgrade o modo\n @Input() set control(value: AbstractControl) {\n if (this.formControl !== value) {\n this.formControl = value as FormControl;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data']) {\n this.setBinding();\n }\n }\n ngOnInit(): void {\n this.setBinding();\n }\n\n seleccionar(evt: string) {\n if (this.eventSelect.emit(evt) !== this.defaultText) {\n this.boxShadow = 1;\n } else {\n this.boxShadow = 2;\n }\n }\n\n private setBinding() {\n if (this.initialValue !== '') {\n this.binding = this.initialValue;\n } else {\n this.binding = this.defaultText;\n }\n }\n\n click(value: MouseEvent) {\n this.clicked = value.isTrusted;\n }\n\n\n public get textClass(): string {\n return this.defaultText === '' ? 'selected' : 'select';\n }\n\n public get labelClass(): string {\n return (this.clicked || this.initialValue !== '') ? 'labelUp' : 'label';\n }\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ipt-text-link',\n template: `\n <a class=\"text-link\" (click)='isLinkClicked()'>\n <p class=\"text-link__paragraph\">\n <i class=\"{{icon}}\" aria-hidden=\"true\"></i>\n {{text}}\n </p>\n </a>\n `,\n styleUrls: ['./text-link.css'],\n})\n\nexport class TextLinkComponent {\n\n @Input() text!: string;\n @Input() blank?: boolean;\n @Input() icon?: string;\n\n @Output() isClicked = new EventEmitter<boolean>();\n\n\n constructor() {\n }\n\n isLinkClicked() {\n this.isClicked.emit(true);\n }\n\n}\n","import { HttpHeaders } from \"@angular/common/http\";\n\nexport class IPTGeneralService {\n\n httpOptions: any;\n\n baseUrl(): string {\n let url = window.location.href;\n\n if (url.includes('localhost') || url.includes('qa')) {\n return 'https://lab.iptdev.com.co/';\n } else if ( url.includes('inglesparatodos.edu.co')) {\n return 'https://iptdev.com.co/';\n } else if ( url.includes('inglesparatodos.us')) {\n return 'https://iptdev.com.co/';\n } else {\n return 'error.com';\n }\n }\n\n // construye los headers y params\n generateRequestParams(param: any) {\n this.httpOptions = {\n header: new HttpHeaders(),\n params: param,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { RegisterIndexRq, RegisterDashboardRq, UserTokenRq, ForgotPasswordRq, LoginRq, RegisterRq, getStudentRq, TeacherByCodeRq, userTokenRq, IUpdtaeUserValidatedRq, IObtainUserByEmailDocRq, IStudentOrUserEktByConceptRq, UserTokenRq2, ParamsUser } from '../../models/user/user-rq.model';\nimport { getStrategyByUserCommercialRq } from '../../models/marketing/marketing.model';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { GetStudentByCodeRq, tokenAdministrativeRq } from '../../models/payment/payment-rq.model';\nimport { IReportExcelRq } from '../../models/commercial/commercial.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService extends IPTGeneralService{\n private SERVICE_URL = 'users/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n login(userLogin: LoginRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/login';\n this.generateRequestParams(userLogin);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n resetPassword(resetPassword: ForgotPasswordRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'reset/password';\n this.generateRequestParams(resetPassword);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n register(user: RegisterRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/create/web';\n this.generateRequestParams(user);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n registerIndex(register: RegisterIndexRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/create/marketing';\n this.generateRequestParams(register);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n registerDashboard(user: RegisterDashboardRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/create/dashboard';\n this.generateRequestParams(user);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAvailableTeachers(token: UserTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/teachers';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllAdvisor(userToken: getStrategyByUserCommercialRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/commercial';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getByRoleUser(codeRole: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/by/role/user/' + codeRole;\n return this.http.get(serviceUrl);\n }\n\n getUserStatistics(userToken: getStrategyByUserCommercialRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/statistics';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getRoutesForRole(token: UserTokenRq2): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/routes/role';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getStudents(token: UserTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/students';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getStudent(token: getStudentRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/student';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllAdministrative(userToken: tokenAdministrativeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/administrative';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getAllMarketing(userToken: tokenAdministrativeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/marketing';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getStudenbyCode(parans: GetStudentByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/student/by/code';\n this.generateRequestParams(parans);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getTeachersbyCode(parans: TeacherByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/teachers/by/code';\n this.generateRequestParams(parans);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllUserByRole(userToken: userTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/by/role';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getUserRoleByCode(codeRole: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/user/role/by/code/' + codeRole;\n return this.http.get(serviceUrl);\n }\n\n getUserAllBudget(userToken: tokenAdministrativeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/budget';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getObtainPossibleStudents(userToken: tokenAdministrativeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/possibleStudents';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllUserByRoleValidate(token: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/by/rol/all/user/validated';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateUserValidated(params: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/update/user/validated';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n deletedUserValidated(params: IUpdtaeUserValidatedRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/deleted/user/validated';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainStudentByDocumentEmail(params: IObtainUserByEmailDocRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/student/by/document/email';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainDataByUserLoged(params: IReportExcelRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/user/commercial/loged';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n obtainStudentOrUserEktByConcept(params: IStudentOrUserEktByConceptRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/students/by/type/concept/in/payments';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainReferralUsers(token: getStudentRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/referral/users';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n obtainUsersThreeDptoCommercialAndAdministrativeAndBudget(token: getStrategyByUserCommercialRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/user/commercial/administrative/budgets';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainTeachersAvailableToTeach(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/teachers/available/to/teach';\n return this.http.get(serviceUrl);\n }\n\n searchUser(param: ParamsUser): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'post/search/user';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n // construye los headers y params\n}\n","import { Injectable } from \"@angular/core\";\nimport { Session } from \"../../models/session/session.model\";\nimport { UserRs } from \"../../models/user/user-rs.model\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StorageService {\n\n private localStorageService;\n private currentSession : Session | null= null;\n\n constructor() {\n this.localStorageService = localStorage;\n this.currentSession = this.loadSessionData();\n }\n\n setCurrentSession(session: Session): void {\n this.currentSession = session;\n this.localStorageService.setItem('606a7d4e73650b75ebb06972e77d6cc4', JSON.stringify(session));\n }\n\n loadSessionData(): Session | null {\n var sessionStr = this.localStorageService.getItem('606a7d4e73650b75ebb06972e77d6cc4');\n return (sessionStr) ? <Session> JSON.parse(sessionStr) : null;\n }\n\n getCurrentSession(): Session | null {\n return this.currentSession;\n }\n\n removeCurrentSession(): void {\n this.localStorageService.removeItem('606a7d4e73650b75ebb06972e77d6cc4');\n this.currentSession = null;\n }\n\n getCurrentUser(): UserRs | null {\n var session: Session | null = this.getCurrentSession();\n return (session && session.user) ? session.user : null;\n };\n\n isAuthenticated(): boolean {\n return (this.getCurrentToken() != null) ? true : false;\n };\n\n getCurrentToken(): string | null{\n var session = this.getCurrentSession();\n return (session && session.token) ? session.token : null;\n };\n\n logout(): void{\n this.removeCurrentSession();\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { eventqueryRq } from '../../models/calendar/calendar-rq.models';\nimport { AddNewEventRq, AvailabilityQueryRq, AvailabilityQueryRqs, GetEventByDateTimeRq, GetEventsByCourseRq, IObtainAvailableCourseDayRq } from '../../models/cronogram/cronogram.models';\nimport { Response } from '../../models/response/response.interface';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CalendarService extends IPTGeneralService{\n private SERVICE_URL = 'calendar/api/'\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n postCreateQueryEvent(params: AvailabilityQueryRq): Observable<Response>{\n let serviceUrl = this.SERVICE_URL + 'post/event/create/query';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getEventByIdCalendar(idCalendar: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/event/calendar/idcalendar/all/' + idCalendar;\n return this.http.get(serviceUrl);\n }\n\n postEventByDayTime(params: eventqueryRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/event/calendar/idcalendar/by/datetime';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getEventsByCourse(params: GetEventsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/event/calendar/idcalendar/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getEventByDateTime(params: GetEventByDateTimeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/event/calendar/idcalendar/by/datetime';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n\n //duplicida de ep\n getAvailability(params: AvailabilityQueryRqs): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/event/create/query';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n addNewEvent(params: AddNewEventRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/add/event/calendar/by/daytime';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n newCreateEvents(params: AddNewEventRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/create/new/events';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n ObtainUnitsNameCourseType(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/unitsname/by/coursetype';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllEventByCourse(params: GetEventsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/all/event/calendar/idcalendar/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainAvailableCourseDays(params: IObtainAvailableCourseDayRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/available/course/days';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainAvailableClassroomsInCalendar(params: AvailabilityQueryRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/available/classrooms/in/calendar';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { LoginRq, RegisterDashboardRq } from '../../models/user/user-rq.model';\nimport { UserService } from '../../services/user-service/user-service';\nimport Swal from 'sweetalert2';\nimport { Session } from '../../models/session/session.model';\nimport { StorageService } from '../../services/storage-service/storage-service';\nimport { AvailabilityQueryRq } from '../../models/cronogram/cronogram.models';\nimport { CalendarService } from '../../services/calendar-service/calendar.service';\nimport { Response } from '../../models/response/response.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BaseService {\n\n constructor(\n private userService: UserService,\n private storageService: StorageService,\n private calendarService: CalendarService\n ) {}\n\n webLogin(user: string, password: string): Promise<boolean>{\n let request: LoginRq = {\n user: user,\n password: password\n }\n let service = this.userService;\n let storage = this.storageService;\n let appUser = this.isAnAppUser();\n\n return new Promise(function(resolve, reject) {\n service.login(request).subscribe( response => {\n switch (response.message.code) {\n case 1:\n if(!appUser) {\n Swal.fire ({\n 'title': '<p style=\"font-family: Poppins\"\">Perfect!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">Succesfull login</p>',\n 'icon':'success',\n });\n }\n const loginRegisterUser: Session = {\n token: response.data.token,\n user: response.data,\n };\n\n storage.setCurrentSession(loginRegisterUser);\n resolve(true);\n break;\n case 2:\n Swal.fire({\n 'title': '<p style=\"font-family: Poppins\"\">Warning!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">The data does not correspond to a user registered in our system, please review them.</p>',\n 'icon':'warning',\n });\n\n resolve(false);\n break;\n case 3:\n Swal.fire({\n 'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">The input data does not meet the established parameters.</p>',\n 'icon':'error',\n });\n\n resolve(false);\n break;\n case 4:\n Swal.fire({\n title: '<p style=\"font-family: Poppins\">Warning!</p>',\n html: '<div style=\"text-align: center; font-family: Poppins;\">' +\n '<i class=\"fas fa-exclamation-triangle\" style=\"color: red; font-size: 24px;\"></i>' +\n '<p>Your account is in inactive status. Contact support.</p>' +\n '</div>',\n showConfirmButton: true,\n });\n resolve(false);\n break;\n default:\n Swal.fire({\n 'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">An unexpected error has occurred</p>',\n 'icon':'error',\n });\n\n resolve(false);\n break;\n }\n reject('Unhandled exception');\n });\n })\n }\n\n getCronogramAvailability(isTeacher: boolean, code: number, startDate: string, numClass: number, weekDays: any[], startTime: string, endTime: string): Promise<any>{\n let request: AvailabilityQueryRq = {\n isTeacher: isTeacher,\n code: code,\n startDate: startDate,\n numClass: numClass,\n weekDays: weekDays,\n startTime: startTime,\n endTime: endTime,\n };\n\n let service = this.calendarService;\n\n return new Promise(function(resolve, reject) {\n service.postCreateQueryEvent(request).subscribe( (response: Response) => {\n switch (response.message.code) {\n case 1:\n resolve(response.data);\n break\n default:\n reject('Unhandled exception');\n }\n reject('Unhandled exception');\n });\n });\n }\n\n isAnAppUser() {\n const userAgent: string = window.navigator.userAgent;\n return userAgent.includes('Flutter IPT APP');\n }\n\n getUserRole(): number {\n let user = this.storageService.getCurrentUser()?.role;\n return user === undefined ? -1 : user;\n }\n\n getUserToken(): string {\n let token = this.storageService.getCurrentUser()?.token;\n return token === undefined ? '-1' : token;\n }\n\n getUserName(): string {\n let user = this.storageService.getCurrentUser();\n let response = user === null ? '' : user.name;\n return response;\n }\n\n getUserCode(): number {\n let user = this.storageService.getCurrentUser();\n let response = user === null ? -1 : user.code;\n return response;\n }\n\n registerUserFromDashboard(registerDashboardRq: RegisterDashboardRq): Promise<boolean>{\n let request = registerDashboardRq;\n let service = this.userService;\n\n return new Promise(function(resolve, reject) {\n service.registerDashboard(request).subscribe((response) => {\n\n switch (response.message.code) {\n case 1:\n Swal.fire ({\n 'title': '<p style=\"font-family: Poppins\"\">Perfect!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">Sucesfull register!</p>',\n 'icon':'success',\n });\n resolve(true);\n break;\n case 3:\n Swal.fire ({\n 'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">The input data does not meet the established parameters.</p>',\n 'icon':'error',\n });\n resolve(false);\n break;\n case 4:\n Swal.fire ({\n 'title': '<p style=\"font-family: Poppins\">Ups!</p>',\n 'html': '<p style=\"font-family: Poppins\">The input data has a high relation with a user that already exists!</p>',\n 'icon': 'warning',\n });\n resolve(false);\n break;\n default:\n Swal.fire ({\n 'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">An unexpected error has occurred</p>',\n 'icon':'error',\n });\n resolve(false);\n break;\n }\n\n reject('Unhandled exception');\n });\n });\n }\n\n jsonToArray(data: any[]): any[][] {\n var response: any[] = [];\n data.forEach((element) => {\n var object: any[] = [];\n for (var clave in element) {\n if (element.hasOwnProperty(clave)) {\n if (typeof element[clave] == 'object') {\n element[clave] = this.subJsonToArray(element[clave]);\n }\n\n object.push(element[clave]);\n }\n }\n response.push(object);\n });\n return response;\n }\n\n subJsonToArray(data: any[]): string {\n var object: string = '';\n for (var clave in data) {\n if (clave != 'code') {\n object += '\\n' + data[clave];\n }\n }\n return object;\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BaseService } from '../../../core/utils/base-service/base.service';\n\n@Component({\n selector: 'ipt-login-form',\n template: `\n <div class=\"form-container\">\n\n <h2 style=\"text-align: center;\">IPT PLATFORM</h2>\n <hr>\n\n <form (ngSubmit)=\"login(loginForm)\" [formGroup]=\"loginForm\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Email'\"\n [validateText]=\"'Debe ser @inglesparatodos.edu.co'\"\n [control]=\"loginForm.controls['email']\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Password'\"\n [control]=\"loginForm.controls['password']\"\n ></ipt-input>\n </form>\n\n <div class=\"button-container\">\n <ipt-button\n [label]=\"'Login'\"\n [primary]=\"true\"\n [isEnabled]=\"loginForm.valid\"\n (onClick)=\"login(loginForm)\"\n ></ipt-button>\n </div>\n\n </div>\n `,\n styleUrls: ['./login-form.css']\n})\n\nexport class LoginFormComponent {\n\n @Output() isLogged = new EventEmitter<boolean>();\n\n loginForm!: FormGroup;\n\n constructor(\n fb: FormBuilder,\n private baseService: BaseService,\n ) {\n this.loginForm = fb.group({\n email: ['', [Validators.required]],\n password: ['', [Validators.required, Validators.minLength(3),Validators.maxLength(15)]],\n });\n }\n\n login(data: FormGroup) {\n this.baseService.webLogin(data.controls['email'].value, data.controls['password'].value).then((isLogged) =>{\n this.isLogged.emit(isLogged);\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ParameterService extends IPTGeneralService{\n private SERVICE_URL = 'parameters/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getIndicatives(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/indicatives';\n return this.http.get(serviceUrl);\n }\n\n getCardTypes(country: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/id/card/type/country/' + country;\n return this.http.get(serviceUrl);\n }\n\n getCountries(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/countries';\n return this.http.get(serviceUrl);\n }\n\n getStatesByCountry(country: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/state/country/iso/' + country;\n return this.http.get(serviceUrl);\n }\n\n getCitiesByState(state: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/cities/state/' + state;\n return this.http.get(serviceUrl);\n }\n\n getAllPlans(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/plans';\n return this.http.get(serviceUrl);\n }\n\n getLevels(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/english/levels';\n return this.http.get(serviceUrl);\n }\n\n getAgreements(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/agreement';\n return this.http.get(serviceUrl);\n }\n\n getAgreementByCategory(typeCategory: any): Observable<any> {\n let serviceUrl =\n this.SERVICE_URL + 'get/agreement/by/category/' + typeCategory;\n return this.http.get(serviceUrl);\n }\n\n getAllClassrooms(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/classroom';\n return this.http.get(serviceUrl);\n }\n\n getCoursesTypes(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/course/type';\n return this.http.get(serviceUrl);\n }\n\n getCoursesTypesByPlan(typePlan: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/course/by/plan/' + typePlan;\n return this.http.get(serviceUrl);\n }\n\n getDegrees(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/degrees';\n return this.http.get(serviceUrl);\n }\n\n getProgramsByDegree(typeDegree: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/programs/by/degree/' + typeDegree;\n return this.http.get(serviceUrl);\n }\n\n getMarketingReasons(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/mkt/reasons';\n return this.http.get(serviceUrl);\n }\n\n getStudyReasons(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/study/reasons';\n return this.http.get(serviceUrl);\n }\n\n getAcademicUnits(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/academic/units';\n return this.http.get(serviceUrl);\n }\n getStatusContact(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/status/all';\n return this.http.get(serviceUrl);\n }\n\n getTypePlan(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/plans';\n return this.http.get(serviceUrl);\n }\n getTypePlanDiscount(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/discount/all/plans';\n return this.http.get(serviceUrl);\n }\n\n getContactedType(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/contacted/all';\n return this.http.get(serviceUrl);\n }\n\n getStatusByCode(codeStatus: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/status/bycode/' + codeStatus;\n return this.http.get(serviceUrl);\n }\n getAllTypeDiscount(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/commercial/typediscounts/all';\n return this.http.get(serviceUrl);\n }\n\n getAllCourseModality(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/course/modality';\n return this.http.get(serviceUrl);\n }\n\n getAllPaymentMethod(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/method/all';\n return this.http.get(serviceUrl);\n }\n\n getAllPaymentService(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/services/all';\n return this.http.get(serviceUrl);\n }\n\n getAllBanks(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/banks/all';\n return this.http.get(serviceUrl);\n }\n\n getAllCampus(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/banks/all';\n return this.http.get(serviceUrl);\n }\n\n getCampusByCode(codeCampu: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/campus/by/code/' + codeCampu;\n return this.http.get(serviceUrl);\n }\n\n getGenders(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/genders';\n return this.http.get(serviceUrl);\n }\n\n getGenderByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/gender/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n getStratums(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/stratums';\n return this.http.get(serviceUrl);\n }\n\n getStratumByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/stratum/by/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n getCivilStatus(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/civil/status';\n return this.http.get(serviceUrl);\n }\n\n getCivilStatusByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/civil/status/by/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n getMulticulturalisms(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/multiculturalisms';\n return this.http.get(serviceUrl);\n }\n\n getMulticulturalismByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/multiculturalism/by/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n getClassRoomByMod(codeModality: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/classroom/by/modality/' + codeModality;\n return this.http.get(serviceUrl);\n }\n\n getConuntryStateByCity(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/country/state/by/city/' + code;\n return this.http.get(serviceUrl);\n }\n\n getAllStates(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/states';\n return this.http.get(serviceUrl);\n }\n\n getAllCities(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/cities';\n return this.http.get(serviceUrl);\n }\n\n getDataCityByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/city/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n getDataCityByCountry(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/city/country/' + code;\n return this.http.get(serviceUrl);\n }\n\n getDataCityByName(name: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/city/name/' + name;\n return this.http.get(serviceUrl);\n }\n\n getDataCityByState(name: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/cities/state/' + name;\n return this.http.get(serviceUrl);\n }\n\n getActionsAdminStudent(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/actions/admin/student';\n return this.http.get(serviceUrl);\n }\n\n getReasonObservationStudent(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/reason/observation/student';\n return this.http.get(serviceUrl);\n }\n\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { RegisterDashboardRq } from '../../../core/models/user/user-rq.model';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { UserService } from '../../../core/services/user-service/user-service';\n\n@Component({\n selector: 'ipt-create-user-form',\n templateUrl: './create-user-form.component.html',\n styleUrls: ['./create-user-form.component.css'],\n animations: [\n trigger('fade', [\n transition('void => *', [\n style({ opacity: 0 }),\n animate(200, style({opacity: 1}))\n ])\n ])\n ]\n})\nexport class CreateUserFormComponent implements OnInit {\n @Input() userType!: string;\n @Input() visibility: boolean = false;\n @Output() userCreated = new EventEmitter<boolean>(false);\n @Output() onHide = new EventEmitter<boolean>(false);\n\n createUserForm!: FormGroup;\n phoneNumberIndicatives: any;\n idTypes: any;\n states: any;\n loader: boolean = false;\n cities: any;\n photo: string = '';\n\n constructor(\n private fb: FormBuilder,\n private parameterService: ParameterService,\n private userService: UserService\n ) {}\n\n ngOnInit() {\n this.initForm();\n this.getParameters();\n }\n\n closeModal() {\n this.visibility = false;\n this.onHide.emit(true);\n }\n\n createUser() {\n this.loader = true;\n\n let request: RegisterDashboardRq = {\n name: this.createUserForm.controls['name'].value,\n last_name: this.createUserForm.controls['last_name'].value,\n id_card_type: this.createUserForm.controls['id_card_type'].value,\n id_card: this.createUserForm.controls['id_card'].value,\n phone_indicative: this.createUserForm.controls['phone_indicative'].value,\n phone_number: this.createUserForm.controls['phone_number'].value,\n email: this.createUserForm.controls['email'].value,\n city: this.createUserForm.controls['city'].value,\n service_hour: this.createUserForm.controls['service_hour'].value,\n role: this.createUserForm.controls['role'].value,\n password: this.createUserForm.controls['password'].value,\n };\n\n this.userService.registerDashboard(request).subscribe((response) => {\n switch (response.message.code) {\n case 1:\n this.userCreated.emit(true);\n this.initForm();\n break;\n case 2:\n throw new Error(\"Los datos ingresados no corresponden a un usuario registrado en nuestro sistema, por favor reviselos.\");\n case 3:\n throw new Error(\"Los datos ingresados no cumplen los parámetros establecidos\");\n default:\n break;\n }\n this.loader = false;\n });\n }\n\n getParameters() {\n this.parameterService.getIndicatives().subscribe((response: { data: any; }) => {\n this.phoneNumberIndicatives = response.data;\n });\n this.parameterService.getCardTypes('col').subscribe((response: { data: any; }) => {\n this.idTypes = response.data;\n });\n this.parameterService.getStatesByCountry('col').subscribe((response): void => {\n this.states = response.data;\n });\n }\n\n getRolesOptions(): any {\n // Estudiante\n if (this.userType === 'student') {\n this.setPhoto('student');\n return [\n { code: '13', name: 'Student' },\n ];\n }\n\n // Académico\n if (this.userType === 'academic') {\n this.setPhoto('academic');\n return [\n { code: '11', name: 'Academic Coordinator' },\n { code: '12', name: 'Teacher' },\n ];\n }\n\n // Administrativo\n if (this.userType === 'administrative') {\n this.setPhoto('administrative');\n return [\n { code: '31', name: 'Administrative Coordinator' },\n { code: '32', name: 'Administrative Advisor' },\n ];\n }\n\n // Marketing\n if (this.userType === 'marketing') {\n this.setPhoto('marketing');\n return [\n { code: '21', name: 'Marketing Coordinator' },\n { code: '22', name: 'Marketing Advisor' },\n ];\n }\n\n // Comercial\n if (this.userType === 'commercial') {\n this.setPhoto('commercial');\n return [\n { code: '41', name: 'Commercial Coordinator' },\n { code: '42', name: 'Commercial Advisor' },\n ];\n }\n\n // Cartera\n if (this.userType === 'treasure') {\n this.setPhoto('treasure');\n return [\n { code: '51', name: 'Treauser Coordinator' },\n { code: '52', name: 'Treauser Advisor' },\n ];\n }\n }\n\n initForm() {\n this.createUserForm = this.fb.group({\n name: ['',[Validators.required,Validators.minLength(3),Validators.maxLength(32)],],\n last_name: ['',[Validators.required,Validators.minLength(5),Validators.maxLength(32),],],\n email: ['', [Validators.required, Validators.maxLength(300)]],\n id_card_type: ['', [Validators.required]],\n id_card: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(20),]],\n phone_indicative: ['', [Validators.required]],\n city: ['', [Validators.required]],\n role: ['', [Validators.required]],\n service_hour: ['', [Validators.required]],\n phone_number: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(15)]],\n password: ['', [Validators.required, Validators.minLength(7), Validators.maxLength(32)]],\n re_password: ['', [Validators.required, Validators.minLength(7), Validators.maxLength(32)]],\n state: [''],\n });\n }\n\n setPhoto(type: string) {\n if (type === 'student') this.photo = '/platform/academic/assets/student.jpg'\n if (type === 'academic') this.photo = '/platform/academic/assets/academico.png'\n if (type === 'administrative') this.photo = '/platform/administrative/assets/administrativo.jpg'\n if (type === 'marketing') this.photo = '/platform/marketing/assets//marketing.jpg'\n if (type === 'commercial') this.photo = '/platform/commercial/assets/user-form-assets/comercial.jpg'\n if (type === 'treasure') this.photo = '/platform/treasure/assets/administrativo.jpg'\n }\n\n selectRol(role: any) {\n if (role !== 'Seleccione el rol') {\n this.createUserForm.controls['role'].setValue(role);\n } else {\n this.createUserForm.controls['role'].setValue(null);\n }\n }\n\n selectIndicatives(indicative: any) {\n if (indicative !== 'Seleccione el indicativo') {\n this.createUserForm.controls['phone_indicative'].setValue(indicative);\n } else {\n this.createUserForm.controls['phone_indicative'].setValue(null);\n }\n }\n\n selectIdType(idType: any) {\n if (idType !== 'Ingrese el tipo de documento') {\n this.createUserForm.controls['id_card_type'].setValue(idType);\n } else {\n this.createUserForm.controls['id_card_type'].setValue(null);\n }\n }\n\n selectState(state: any) {\n if (state !== 'Seleccione el departamento') {\n this.createUserForm.controls['state'].setValue(state);\n this.parameterService.getCitiesByState(state).subscribe((response) => {\n this.cities = response.data;\n });\n } else {\n this.createUserForm.controls['state'].setValue(null);\n this.createUserForm.controls['city'].setValue(null);\n this.cities = [];\n }\n }\n\n selectCity(city: any) {\n if (city !== 'Ciudad de residencia') {\n this.createUserForm.controls['city'].setValue(city);\n } else {\n this.createUserForm.controls['city'].setValue(null);\n }\n }\n}\n","<main *ngIf=\"visibility\">\n <div @fade class=\"modal_container\">\n <div class=\"header_modal\">\n <h1>Crear usuario de {{ userType | titlecase}}</h1>\n <button (click)=\"closeModal()\">x</button>\n </div>\n <div class=\"grid_container\">\n <div>\n <form autocomplete=\"off\" [formGroup]=\"createUserForm\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"createUserForm.controls['name']\"\n [validateText]=\"'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"createUserForm.controls['last_name']\"\n [validateText]=\"'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Email'\"\n [control]=\"createUserForm.controls['email']\"\n [validateText]=\"'Debe tener dominio @inglesparatodos.edu.co'\"\n ></ipt-input>\n <ipt-select\n [isRequired]=\"true\"\n [defaultText]=\"'Rol'\"\n (eventSelect)=\"selectRol($event)\"\n [data]=\"getRolesOptions()\"\n ></ipt-select>\n <ipt-select\n [isRequired]=\"true\"\n [data]=\"phoneNumberIndicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Teléfono'\"\n [control]=\"createUserForm.controls['phone_number']\"\n [validateText]=\"'Debe ingresar un número de teléfono válido'\"\n ></ipt-input>\n <ipt-select\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"createUserForm.controls['id_card']\"\n [validateText]=\"'Debe ingresar el número de documento'\"\n ></ipt-input>\n <ipt-select\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento'\"\n ></ipt-select>\n <ipt-select\n [isRequired]=\"true\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad'\"\n ></ipt-select>\n <ipt-input *ngIf=\"!(userType === 'student')\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Horas de servicio'\"\n [control]=\"createUserForm.controls['service_hour']\"\n [validateText]=\"'Debe ingresar las horas de servicio'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contraseña'\"\n [control]=\"createUserForm.controls['password']\"\n >\n </ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contraseña'\"\n [control]=\"createUserForm.controls['re_password']\"\n >\n </ipt-input>\n </form>\n\n <div class=\"buttons-container\">\n <ipt-button\n [label]=\"'Crear usuario'\"\n [isEnabled]=\"\n !loader &&\n createUserForm.value['re_password'] ===\n createUserForm.value['password']\n \"\n (onClick)=\"createUser()\"\n [primary]=\"true\"\n >\n </ipt-button>\n </div>\n </div>\n <div [ngStyle]=\"{'background-image': 'url(' + photo + ')'}\" class=\"user_type_image\"></div>\n </div>\n </div>\n</main>\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\n\nimport { BaseService } from '../../../core/utils/base-service/base.service';\nimport { UserTokenRq2 } from '../../../core/models/user/user-rq.model';\nimport { StorageService } from '../../../core/services/storage-service/storage-service';\nimport { UserService } from '../../../core/services/user-service/user-service';\n\n@Component({\n selector: 'ipt-sidenav',\n template: `\n <mat-sidenav #sidenav mode=\"push\" >\n <mat-toolbar color=\"primary\" (click)=\"sidenav.toggle()\">\n <span style=\"font-size: 15px;\">{{department}}</span>\n <span class=\"menu-icon-close\"></span>\n </mat-toolbar>\n\n <mat-nav-list *ngFor=\"let route of routes\">\n <nav class=\"flex-container-menu\">\n <ipt-aside-button\n [buttonActive]=\"this.setPage === route.page\"\n [icon]=\"route.icon\"\n [text]=\"route.text\"\n (isClicked)=\"clickPage(route.page)\"\n (click)=\"sidenav.toggle()\"\n >\n </ipt-aside-button>\n </nav>\n </mat-nav-list>\n </mat-sidenav>\n\n <mat-toolbar class=\"header\">\n <div class=\"menu-container\" (click)=\"sidenav.toggle()\">\n <p>Menu</p>\n <div class=\"menu-icon\"></div>\n </div>\n\n <img class=\"img-logo\" src=\"http://qa.iptdev.com.co/assets/logos/IPT-logo.png\" alt=\"\" />\n\n <div class=\"text-container\">\n <span class=\"p1\">{{ currentDay }}</span>\n <span *ngIf=\"hour >= 0 && hour < 12\" class=\"p2\">\n Hey {{ userName }}, Good morning!\n </span>\n <p *ngIf=\"hour >= 12 && hour < 18\" class=\"p2\">\n Hey {{ userName }}, Good afternoon!\n </p>\n <p *ngIf=\"hour >= 18 && hour < 24\" class=\"p2\">\n Hey {{ userName }}, Good evening!\n </p>\n </div>\n\n <div *ngIf=\"!this.appUser\" class=\"logout-container\" (click)=\"logout()\">\n <p class=\"logout-button\">Cerrar sesión</p>\n <div class=\"photo-logout\"></div>\n </div>\n </mat-toolbar>\n `,\n styleUrls: ['./sidenav.css'],\n})\nexport class SidenavComponent implements OnInit {\n @Input() department!: string;\n @Input() setPage!: string;\n @Input() userName!: string;\n @Output() pageChangeEvent = new EventEmitter<string>();\n\n appUser: boolean = false;\n routes: any[] = [];\n options: any = { weekday: 'long', month: 'long', day: 'numeric' };\n currentDay = new Date().toLocaleDateString('en-EN', this.options);\n hour = new Date().getHours();\n\n constructor(\n private userService: UserService,\n private baseService: BaseService,\n private storageService: StorageService\n ) {}\n\n ngOnInit(): void {\n let user = this.storageService.getCurrentUser()?.token;\n let token: string = user === undefined ? '' : user;\n\n let request: UserTokenRq2 = {\n token: token,\n department: this.department\n };\n\n this.userService.getRoutesForRole(request).subscribe((response) => {\n this.routes = response.data;\n });\n\n this.appUser = this.baseService.isAnAppUser();\n }\n\n clickPage(event: string) {\n this.pageChangeEvent.emit(event);\n }\n\n logout() {\n this.storageService.logout();\n this.pageChangeEvent.emit('logout');\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n exports: [MatSidenavModule, MatToolbarModule, MatIconModule, MatListModule, MatButtonModule],\n})\nexport class MaterialModule {}\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'ipt-question-types',\n template: `\n <div\n *ngIf=\"\n this.questionType === 'True or False' ||\n this.questionType === 'Correct or Incorrect'\n \"\n class=\"sectionABCD\"\n >\n <fieldset disabled=\"disabled\">\n <ipt-input\n [control]=\"formGruoup.controls['answer1']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"\n this.questionType === 'True or False' ? 'True' : 'Correct'\n \"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n </fieldset>\n <ipt-input\n [control]=\"formGruoup.controls['value1']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value1\")'\n >\n </ipt-input>\n <fieldset disabled=\"disabled\">\n <ipt-input\n [control]=\"formGruoup.controls['answer2']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"\n this.questionType === 'True or False' ? 'False' : 'Incorrect'\n \"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n </fieldset>\n <ipt-input\n [control]=\"formGruoup.controls['value2']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value2\")'\n >\n </ipt-input>\n </div>\n\n <div\n *ngIf=\"\n this.questionType === 'Relationship' ||\n this.questionType === 'Complete' ||\n this.questionType === 'Conversation'\n \"\n class=\"sectionABCD\"\n >\n <ipt-input\n [control]=\"formGruoup.controls['answer1']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ingrese la opción'\"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n <ipt-input\n [control]=\"formGruoup.controls['value1']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value1\")'\n >\n </ipt-input>\n </div>\n\n <div\n *ngIf=\"\n this.questionType === 'A, B, C' || this.questionType === 'A, B, C, D'\n \"\n class=\"sectionABCD\"\n >\n <ipt-input\n [control]=\"formGruoup.controls['answer1']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Opción A *'\"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n <ipt-input\n [control]=\"formGruoup.controls['value1']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value1\")'\n >\n </ipt-input>\n\n <ipt-input\n [control]=\"formGruoup.controls['answer2']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Opción B *'\"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n <ipt-input\n [control]=\"formGruoup.controls['value2']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value2\")'\n >\n </ipt-input>\n\n <ipt-input\n [control]=\"formGruoup.controls['answer3']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Opción C *'\"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n <ipt-input\n [control]=\"formGruoup.controls['value3']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value3\")'\n >\n </ipt-input>\n\n <ipt-input\n *ngIf=\"this.questionType === 'A, B, C, D'\"\n [control]=\"formGruoup.controls['answer4']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Opción D *'\"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n <ipt-input\n *ngIf=\"this.questionType === 'A, B, C, D'\"\n [control]=\"formGruoup.controls['value4']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value4\")'\n >\n </ipt-input>\n </div>\n `,\n styleUrls: ['./edit-question-types.component.css'],\n})\nexport class QuestionTypeComponent implements OnChanges {\n @Input() questionType!: string;\n @Input() formGruoup!: FormGroup;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['formGruoup']) {\n }\n }\n\n clickDetection(value: string){\n switch (value) {\n case 'value1':\n if(this.formGruoup.controls['value1'].value === 1) {\n this.formGruoup.controls['value2'].value === 0;\n this.formGruoup.controls['value3'].value === 0;\n this.formGruoup.controls['value4'].value === 0;\n }\n break;\n case 'value2': \n if(this.formGruoup.controls['value2'].value === 1) {\n this.formGruoup.controls['value1'].value === 0;\n this.formGruoup.controls['value3'].value === 0;\n this.formGruoup.controls['value4'].value === 0;\n }\n break;\n case 'value3':\n if(this.formGruoup.controls['value3'].value === 1) {\n this.formGruoup.controls['value1'].value === 0;\n this.formGruoup.controls['value2'].value === 0;\n this.formGruoup.controls['value4'].value === 0;\n }\n break;\n case 'value4':\n if(this.formGruoup.controls['value4'].value === 1) {\n this.formGruoup.controls['value1'].value === 0;\n this.formGruoup.controls['value2'].value === 0;\n this.formGruoup.controls['value3'].value === 0;\n }\n break;\n \n default:\n console.log('exception')\n break;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule, CurrencyPipe, TitleCasePipe } from '@angular/common';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { AsideButtonComponent } from './atoms/aside-button/aside-button.component';\nimport { ButtonComponent } from './atoms/button/button.component';\nimport { CheckboxComponent } from './atoms/checkbox/checkbox.component';\nimport { DatalistComponent } from './atoms/datalist/datalist.component';\nimport { InputComponent } from './atoms/input/input.component';\nimport { LevelButtonComponent } from './atoms/level-button/level-button.component';\nimport { LevelTextComponent } from './atoms/level-text/level-text.component';\nimport { LoaderComponent } from './atoms/loader/loader.component';\nimport { RadioComponent } from './atoms/radio/radio.component';\nimport { SelectComponent } from './atoms/select/select.component';\nimport { TextLinkComponent } from './atoms/text-link/text-link.component';\n\nimport { LoginFormComponent } from './forms/login-form/login-form.component';\nimport { CreateUserFormComponent } from './forms/create-user-form/create-user-form.component';\n\nimport { SidenavComponent } from './molecules/sidenav/sidenav.component';\nimport { MaterialModule } from './material.module';\nimport { CurrencyMaskModule } from 'ng2-currency-mask';\nimport { QuestionTypeComponent } from './molecules/question-type/edit-question-types.component';\n\n\n@NgModule({\n declarations: [\n AsideButtonComponent,\n ButtonComponent,\n CheckboxComponent,\n CreateUserFormComponent,\n DatalistComponent,\n InputComponent,\n LevelButtonComponent,\n LevelTextComponent,\n LoginFormComponent,\n LoaderComponent,\n RadioComponent,\n SelectComponent,\n SidenavComponent,\n TextLinkComponent,\n QuestionTypeComponent,\n ],\n imports: [\n CommonModule,\n // BrowserModule, // Para evitar doble carga de BrowserModule\n FormsModule,\n ReactiveFormsModule,\n MaterialModule,\n CurrencyMaskModule\n ],\n exports: [\n AsideButtonComponent,\n ButtonComponent,\n CheckboxComponent,\n CreateUserFormComponent,\n DatalistComponent,\n InputComponent,\n LevelButtonComponent,\n LevelTextComponent,\n LoaderComponent,\n RadioComponent,\n SelectComponent,\n TextLinkComponent,\n LoginFormComponent,\n SidenavComponent,\n CurrencyMaskModule,\n QuestionTypeComponent\n ],\n providers: [\n CurrencyPipe,\n TitleCasePipe\n ]\n})\n\nexport class ComponentsModule { }\n","\n\nimport { Injectable } from '@angular/core';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { MediaRq } from '../../models/media/media.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MediaService extends IPTGeneralService{\n\n private SERVICE_URL = 'media/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n createMedia(request: MediaRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/media';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllDataMedia(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/media/all';\n return this.http.get(serviceUrl);\n }\n\n getMediaByCode(idCode: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/media/code/' + idCode;\n return this.http.get(serviceUrl);\n }\n\n}","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport Swal from 'sweetalert2';\nimport { MediaRq } from '../../core/models/media/media.interfaces';\nimport { MediaService } from '../../core/services/media-service/media.service';\nimport { UserService } from '../../core/services/user-service/user-service';\nimport { BaseService } from '../../core/utils/base-service/base.service';\n@Component({\n selector: 'ipt-cod-documents-section',\n templateUrl: './cod-documents-section.component.html',\n styleUrls: ['./cod-documents-section.component.css'],\n})\nexport class CodDocumentsSectionComponent implements OnInit {\n documentsForm!: FormGroup;\n docStudent: boolean = false;\n docAgreement: boolean = false;\n docParent: boolean = false;\n docConfanorte: boolean = false;\n idPdf: any[] = [];\n code!: number;\n pdfSrc: any;\n numDoc: number = -1;\n value: boolean = false\n nameUserRole: string = '';\n\n constructor(\n private fb: FormBuilder,\n private mediaService: MediaService,\n private userService: UserService,\n private baseService: BaseService,\n ) {\n this.documentsForm = this.fb.group({\n doc_student: ['', [Validators.required], []],\n doc_agreement: [''],\n doc_parent: [''],\n doc_confanorte: [''],\n });\n }\n\n ngOnInit(): void {}\n\n showIdDocument() {\n console.log('abrir modal de cargar pdf');\n }\n\n catchDocument(event: any, visible: string) {\n this.numDoc++;\n this.validateVisibility(visible, true);\n\n const fileCatched = event.target.files[0];\n let reader = new FileReader();\n reader.onload = (e: any) => {\n this.idPdf.push(e.target.result);\n this.pdfSrc = this.idPdf[this.numDoc];\n };\n this.code = 0;\n reader.readAsArrayBuffer(fileCatched);\n }\n\n filesUploaded() {\n Swal.fire({\n title: '<p style=\"font-family: Poppins\">Perfect</p>',\n html: '<p style=\"font-family: Poppins\">Archivos subidos correctamente.</p>',\n icon: 'success',\n });\n this.documentsForm.controls['doc_student'].setValue(null);\n this.documentsForm.controls['doc_agreement'].setValue(null);\n this.documentsForm.controls['doc_parent'].setValue(null);\n this.documentsForm.controls['doc_confanorte'].setValue(null);\n this.docStudent = false;\n this.docAgreement = false;\n this.docParent = false;\n this.docConfanorte = false;\n }\n\n clearDocStudent(typeDoc: any) {\n this.documentsForm.controls[typeDoc].setValue(null);\n this.validateVisibility(typeDoc, false);\n }\n\n validateVisibility(compVisivility: string, value: boolean){\n switch (compVisivility) {\n case 'doc_student': this.docStudent = value;\n break;\n case 'doc_agreement': this.docAgreement = value;\n break;\n case 'doc_parent': this.docParent = value;\n break;\n case 'doc_confanorte': this.docConfanorte = value;\n break;\n default:\n break;\n }\n }\n\n getAllMedia(){\n this.mediaService.getAllDataMedia().subscribe((response) => {\n console.log(response.data);\n });\n }\n\n getUserRole(){\n this.userService.getUserRoleByCode(1).subscribe((response) => {\n this.nameUserRole = response.data[0];\n })\n }\n\n saveDocuments(){\n let request: MediaRq ={\n name : 'jhhgh',\n link : 'khkhk',\n user_autor : 2,\n }\n }\n\n}\n","<div class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">Documentos del COD</span>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Estudiante'\"\n [control]=\"documentsForm.controls['doc_student']\"\n (change)=\"catchDocument($event, 'doc_student')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docStudent\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_student')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Convenio'\"\n [control]=\"documentsForm.controls['doc_agreement']\"\n (change)=\"catchDocument($event, 'doc_agreement')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docAgreement\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_agreement')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Acudiente'\"\n [control]=\"documentsForm.controls['doc_parent']\"\n (change)=\"catchDocument($event, 'doc_parent')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docParent\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_parent')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Confanorte'\"\n [control]=\"documentsForm.controls['doc_confanorte']\"\n (change)=\"catchDocument($event, 'doc_confanorte')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docConfanorte\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_confanorte')\"></button>\n </div>\n </div>\n </div>\n\n <hr>\n <button pButton pRipple type=\"button\" icon=\"pi pi-plus\" label=\"Agregar\" class=\"p-button-rounded p-button-sm ml-auto mt-2\" (click)=\"filesUploaded()\"></button>\n\n</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorageCODService {\n\n constructor() { }\n\n getCodFormData(step: number, control: string): string | null {\n if (step === 1) return localStorage.getItem(`COD FORM - step1(${control})`);\n if (step === 2) return localStorage.getItem(`COD FORM - step2(${control})`);\n if (step === 3) return localStorage.getItem(`COD FORM - step3(${control})`);\n if (step === 4) return localStorage.getItem(`COD FORM - step4(${control})`);\n if (step === 5) return localStorage.getItem(`COD FORM - step5(${control})`);\n\n return null;\n }\n\n setCodFormData(step: number, control: string, value: string) {\n if (step === 1) localStorage.setItem(`COD FORM - step1(${control})`, value);\n if (step === 2) localStorage.setItem(`COD FORM - step2(${control})`, value);\n if (step === 3) localStorage.setItem(`COD FORM - step3(${control})`, value);\n if (step === 4) localStorage.setItem(`COD FORM - step4(${control})`, value);\n if (step === 5) localStorage.setItem(`COD FORM - step5(${control})`, value);\n }\n\n clearData() {\n let keySessionUser = '606a7d4e73650b75ebb06972e77d6cc4';\n let sessionUser: string | null = localStorage.getItem(keySessionUser);\n localStorage.clear();\n\n if(sessionUser !== null) {\n localStorage.setItem(keySessionUser, sessionUser);\n } else {\n console.log('raro que no haya sesion');\n }\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\nexport interface Control {\n name: string;\n required: boolean;\n description: string;\n}\n@Injectable({\n providedIn: 'root'\n})\nexport class CodFormControls {\n\n public controls: Array<Control[]> = [\n [\n { name: 'academic_plan', required: true, description: 'Plan académico' },\n { name: 'course_type', required: true, description: 'Tipo de curso' },\n { name: 'agreement_by_category', required: true, description: 'Convenio' },\n { name: 'english_level', required: true, description: 'Nivel de inglés' },\n { name: 'availible_courses', required: false, description: 'Cursos disponibles' },\n { name: 'course_modality', required: false, description: 'Modalidad del curso' },\n ],\n [\n { name: 'student_address', required: true, description: 'Dirección del estudiante' },\n { name: 'birthdate', required: true, description: 'Fecha de nacimiento del estudiante' },\n { name: 'country', required: true, description: 'País' },\n { name: 'state', required: true, description: 'Departamento o estado' },\n { name: 'city', required: true, description: 'Ciudad de residencia' },\n { name: 'student_id_card_type', required: true, description: 'Tipo de documento del estudiante' },\n { name: 'student_id_card', required: true, description: 'Documento del estudiante' },\n { name: 'student_last_name', required: true, description: 'Apellidos del estudiante' },\n { name: 'student_name', required: true, description: 'Nombres del estudiante' },\n { name: 'student_email', required: true, description: 'Correo del estudiante' },\n { name: 'nickname', required: true, description: 'Alias o nickname' },\n { name: 'gender', required: true, description: 'Género' },\n { name: 'age', required: true, description: 'Edad' },\n { name: 'student_occupation', required: true, description: 'Ocupación del estudiante' },\n { name: 'stratum', required: true, description: 'Estrato del estudiante' },\n { name: 'grade', required: true, description: 'Grado del estudiante' },\n { name: 'civil_status', required: true, description: 'Estado civil del estudiante' },\n { name: 'student_phone_indicative', required: true, description: 'Indicativo del estudiante' },\n { name: 'student_phone_number', required: true, description: 'Teléfono del estudiante' },\n { name: 'password', required: true, description: 'Contraseña del estudiante' },\n { name: 're_password', required: true, description: 'Confirmación de contraseña' },\n ],\n [\n { name: 'parent_id_card_type', required: true, description: 'Tipo de documento del acudiente' },\n { name: 'parent_id_card', required: true, description: 'Documento del acudiente' },\n { name: 'parent_last_name', required: true, description: 'Apellidos del acudiente' },\n { name: 'parent_name', required: true, description: 'Nombres del acudiente' },\n { name: 'needAtendant', required: true, description: '¿Requiere acudiente?' },\n { name: 'parent_phone_indicative', required: true, description: 'Indicativo del acudiente' },\n { name: 'parent_occupation', required: true, description: 'Ocupación del acudiente' },\n { name: 'parent_address', required: true, description: 'Dirección del acudiente' },\n { name: 'parent_phone_number', required: true, description: 'Teléfono del acudiente' }\n ],\n [\n { name: 'payment_date', required: true, description: 'Fecha de pago' },\n { name: 'program_price', required: true, description: 'Valor total del programa' },\n { name: 'payment_method', required: true, description: 'Método de pago' },\n { name: 'quota_times', required: true, description: 'Cantidad de cuotas' },\n { name: 'total_price', required: true, description: 'Precio total de la matricula' },\n { name: 'paid_level', required: true, description: 'Niveles pagos' },\n ],\n [\n { name: 'marketing_reasons', required: true, description: '¿Cómo se enteró del programa?' },\n { name: 'observation', required: false, description: 'Observación' },\n { name: 'study_reasons', required: true, description: 'Motivo' },\n { name: 'terms', required: true, description: 'Términos y condiciones' },\n { name: 'disability', required: false, description: 'Discapacidad' },\n { name: 'multiculturalism_1', required: false, description: 'Multiculturalismo' },\n { name: 'multiculturalism_2', required: false, description: 'Multiculturalismo' },\n { name: 'multiculturalism_3', required: false, description: 'Multiculturalismo' },\n { name: 'multiculturalism_4', required: false, description: 'Multiculturalismo' },\n { name: 'multiculturalism_5', required: false, description: 'Multiculturalismo' },\n { name: 'multiculturalism_6', required: false, description: 'Multiculturalismo' },\n { name: 'health_regimen', required: true, description: 'Régimen de salud' },\n { name: 'code_refers', required: true, description: 'Refiere' },\n { name: 'code_cod', required: false, description: 'Codigo Cod' }\n ],\n ];\n\n private $controls = new BehaviorSubject<Array<Control[]>>([]);\n\n constructor() {\n this.$controls.next(this.controls);\n }\n\n getControlValues(): Observable<Array<Control[]>> {\n return this.$controls.asObservable();\n }\n\n // Cambiar los valores de los controls, ejemplo: true y false del checkbox\n changeValue(step: number, controlName: string, newValue: any) {\n const controls: Array<Control[]> = { ...this.controls };\n let control = controls[step-1].filter(element => element.name === controlName);\n control[0].required = newValue;\n\n this.$controls.next(controls)\n }\n}\n","import { IgetCoursesFinishAndunassignedRq } from './../../models/reports/reports.model';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GetDiscountCouponsRq } from '../../models/payment/payment-rq.model';\nimport { CreateCODRq, FullDataCODRq, GetCodByCourseRq, IUpdateCODRq, IobtaincodCurrrentAndLevelFullDataRenovationsRq } from '../../models/cod/cod-rq.model';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { AdicInfoByCodeRq, CodPricesRq, IGoalInterfaceRq, ParentByCodeRq, IObtainRefersByUserRq, IAssignPosibleStudentForValueRq, IGetContactsadviserRq, IObtainCodPricesRq, IAssigningAdvisorGoalsRq, IReportCodForAdviserRq } from '../../models/commercial/commercial.model';\nimport { UserTokenRq } from '../../models/user/user-rq.model';\nimport { ISocialNetworksRq } from '../../models/marketing/marketing.model';\nimport { IObtainAllCoursewallet } from '../../models/budget/budget.model';\n\n\n@Injectable({providedIn: 'root'})\nexport class CommercialService extends IPTGeneralService {\n\n private SERVICE_URL = 'commercial/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n createCOD(request: CreateCODRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/cod';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getStudentCodHistory(token: string, student_id_card: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/by/student';\n this.generateRequestParams({token, student_id_card});\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodHistoryAll(userToken: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/all';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodHistoryByCourse(request: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/by/course';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodHistoryByCourseExport(request: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/by/course/export';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getDiscountCoupons(params: GetDiscountCouponsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/discount/coupon/search';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodPricesByAgreement(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/cod/prices/by/agreement/' + code;\n this.generateRequestParams(code);\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n getCodParentByCode(params: ParentByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/parent/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAdicInfoByCode(params: AdicInfoByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/aditionalinfo/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getFullDataCodByStudent(params: FullDataCODRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/full/data/cod/by/student';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodPricesByAgreementTypePayment(params: CodPricesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/cod/prices/by/agreement/and/type/payment';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCodByAdvaiser(params: UserTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/by/advaiser';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCodCoursesByAdvisor(params: UserTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/courses/by/advisor';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCodByAdvisorAndCourse(params: GetCodByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/student/by/course/and/advisor';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n createGoal(params: IGoalInterfaceRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/contact/strategy/create/goal';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl,this.httpOptions);\n }\n\n getAllGoals(token: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/contact/strategy/view/goals';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl,this.httpOptions);\n }\n\n createDocument(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/media/document';\n let formData = new FormData();\n formData.append('file', params.file);\n formData.append('user_autor', params.user_autor);\n formData.append('code_user', params.code_user);\n formData.append('type_document', params.type_document);\n formData.append('token', params.token);\n\n return this.http.post(serviceUrl, formData);\n }\n\n getDocumentsByStudent(params:any): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'get/media/document/user';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl,this.httpOptions);\n }\n\n obtainCodStudentByCodeAdviser(params: IReportCodForAdviserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/cod/student/by/adviser';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n ExportFileExcelCodByAdviser(params: IReportCodForAdviserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/export/excel/cod/student/by/adviser';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n ObtainReferralsByUser(params: IObtainRefersByUserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/referrals/by/user/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getPosibleStudentsAll(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/posible/students/all/models';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n postAssignPosibleStuentForValue(params: IAssignPosibleStudentForValueRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/posible/students/value/assing';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getContactsByAdviserCommercial(params: IGetContactsadviserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/contacts/marketing/strategy/assing/by/adviser';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n ObtainCodPrices(params: IObtainCodPricesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/prices';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n postCreatedSocialNetowrks(params: ISocialNetworksRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/new/register/social/network';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n postAssigningAdvisorGoals(params: IAssigningAdvisorGoalsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/assigning/advisory/goals';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n posObtainAdvisorGoals(params: IObtainAllCoursewallet): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/goals/assigned/to/advisor';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n postObtainOveralGoalAdviso(params: IObtainAllCoursewallet): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/overal/goal/of/advisor';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n postObtaininfoCodActuallyByUser(params: IgetCoursesFinishAndunassignedRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/info/cod/user';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtaingLatesCodByStudentCode (codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/latest/cod/by/student/code/' + codeStudent;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n updateCOD(request: IUpdateCODRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/update/cod';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n obtaincodCurrrentAndLevelFullDataRenovations(request: IobtaincodCurrrentAndLevelFullDataRenovationsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/full/data/current/cod/by/code/student/renovation';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getdataCurrentCodBySTudentCode(request: IobtaincodCurrrentAndLevelFullDataRenovationsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/data/current/data/cod/by/student';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n updateCodCurrentInObservationsRenovations(request: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/change/cod/status/observations/renovations';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCodPreviusOrPlacementTestBycode(request: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/register/previous/or/placement/test/by/status';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n}\n","import { Observable } from \"rxjs\";\nimport { Control } from \"./cod-form-controls\";\nimport { LocalStorageCODService } from \"./local-storage-cod.service\";\n\nexport interface localStorageValues {\n control: string,\n value: any\n}\n\nexport abstract class CodFormSteps {\n\n public localStorageCOD = new LocalStorageCODService();\n\n constructor() {}\n\n readAndWriteLS(step: number, control: string): localStorageValues {\n if (this.localStorageCOD.getCodFormData(step, control)) {\n const value = this.localStorageCOD.getCodFormData(step, control);\n return { control, value };\n } else {\n return { control, value: '' }\n }\n }\n\n setDataInLocalStorage(step: number, control: string, value: any) {\n this.localStorageCOD.setCodFormData(step, control, value);\n }\n\n listenFormChanges(step: number, control: string, obs: Observable<any>) {\n obs.subscribe(value => {\n this.setDataInLocalStorage(step, control, value);\n });\n }\n\n resetLocalStorage(controls: Control[]) {\n controls.forEach(control => {\n localStorage.removeItem(control.name);\n });\n }\n\n}\n","const copies: any = {\n \"es\": {\n \"modal_template\": {\n \"inputs\": {\n \"city\":\"Ingrese su ciudad de residencia\",\n \"country\":\"Ingresa tu pais de residencia\",\n \"comments\":\"Ingresa tus comentarios de registro ( Opcional )\",\n \"date_of_birth\":\"Ingresa tu fecha de nacimiento\",\n \"email\": \"Correo electronico\",\n \"id_card\": \"Documento de identidad\",\n \"last_name\": \"Apellidos\",\n \"name\": \"Nombres\",\n \"phone_number\": \"Numero de teléfono\",\n \"password\": \"Contraseña\",\n \"re_password\": \"Repetir contraseña\",\n \"role\": \"Seleccione el rol\",\n \"service_hour\": \"Horas de servicio\",\n \"id_card_type\":\"Ingresa tu tipo de documento\",\n \"phone_indicative\": \"Seleccione su indicativo\",\n \"state\":\"Seleccione su departamento\",\n \"file\": \"Seleccionar archivo\",\n \"contacted_contact\": \"Contactado...\",\n \"status_contact\": \"Status\",\n \"plan_contact\": \"Tipo Plan\",\n \"observations_contact\": \"Observaciones\",\n },\n \"validators\": {\n \"city\":\"Debe ingresar la ciudad de residencia\",\n \"country\":\"Debes ingresar el pais de residencia\",\n \"date_of_birth\":\"Debes ingrese la fecha de nacimiento\",\n \"email\": \"Recuerda usar correos con dominio @inglesparatodos.edu.co\",\n \"id_card\": \"Debes ingresar el número de documento.\",\n \"last_name\": \"Debes ingresar los apellidos del usuario.\",\n \"name\": \"Debes ingresar el nombre del usuario\",\n \"phone_number\": \"Debes ingresar un número de teléfono valido\",\n \"password\": \"Debe ser de minimo 7 digitos\",\n \"re_password\": \"Debe ser de minimo 7 digitos\",\n \"role\": \"Debe seleccionar un rol\",\n \"service_hour\": \"Debe ingresar las horas de servicio\",\n \"id_card_type\":\"Debes ingresar el tipo de documento\",\n \"phone_indicative\": \"Debes seleccionar un indicativo\",\n \"state\":\"Seleccione el departamento\",\n \"id_document\": \"Debe subir un archivo\",\n \"agreement_document\": \"Debe subir un archivo\",\n \"parent_id_document\": \"Debe subir un archivo\",\n \"comfanorte_document\": \"Debe subir un archivo\",\n \"contacted_contact\": \"Debe seleccionar forma de contactar cliente\",\n \"status_contact\": \"Debe seleccionar un estaus.\",\n \"plan_contact\": \"Debe seleccionar un plan\",\n \"observariones_contact\": \"Debe llenar el campo observaciones\",\n\n }\n },\n \"dashboard_template\": {\n \"inputs\": {\n \"agreement_by_category\":\"Convenio por categoria\",\n \"academic_level\": \"Ingrese el nivel academico ( Pregrado / Posgrado )\",\n \"academic_plan\": 'Plan',\n \"address\": \"ingrese su direccion\",\n \"agreement\": \"ingrese el convenio\",\n \"availible_courses\":\"Grupos disponibles\",\n \"birthdate\":\"Ingresa tu fecha de nacimiento\",\n \"city\":\"Ingrese su ciudad de residencia\",\n \"classroom\": \"Grupos Disponibles\",\n \"country\":\"Ingresa tu pais de residencia\",\n \"course_type\": \"Tipo de plan\",\n \"degree\": \"Nivel universitario\",\n \"comments\":\"Ingresa tus comentarios de registro ( Opcional )\",\n \"email\": \"Correo electronico\",\n \"email_ufps\": \"ingresa el correo electronico con dominio ufps.edu.co\",\n \"email_unipamplona\": \"Ingresa el correo con dominio unipamplona.edu.co\",\n \"financing_value\": \"Valor pagado\",\n \"financing_date\": \"Fecha de pago\",\n \"financing_responsable\": \"Recibido por\",\n \"financing_sales_check\": \"Numero de recibo\",\n \"financing_invoice_number\":\"Numero de recibo\",\n \"id_cod\": \"Numero de inscripcion\",\n \"id_card_type\":\"Ingresa tu tipo de documento\",\n \"id_card\": \"Documento de identidad\",\n \"id_financing\": \"Consecutivo\",\n \"id_payment\": \"Ingrese el número de recibo\",\n \"last_name\": \"Apellidos\",\n \"name\": \"Ingrese los nombres\",\n \"nickname\":\"Nickname\",\n \"needAtendant\": \"¿Requiere acudiente?\",\n \"marketing_reasons\": \"¿Cómo se entero del programa?\",\n \"level\": \"Seleccione el nivel\",\n \"code_refers\": \"Seleccionar quien lo refeiere\",\n \"observation\": \"Observaciones\",\n \"occupation\":\"Ocupacion\",\n \"password\": \"Contraseña\",\n \"phone_indicative\": \"Seleccione su indicativo\",\n \"phone_number\": \"Numero de teléfono\",\n \"paymentMethod\": \"Seleccione el metodo de pago\",\n \"payment_date\": \"Ingresa la fecha de pago\",\n \"program\":\"Ingrese el programa academico\",\n \"first_quota_price\": \"Ingrese el valor de la primera cuota\",\n \"quota_times\": \"Ingresar el numero de cuotas\",\n \"role\": \"Seleccione el rol\",\n \"re_password\": \"Repetir contraseña\",\n \"re_total_price\": \"Confirmar el valor total de la matricula\",\n \"service_hour\": \"Horas de servicio\",\n \"semester\": \"Semestre actual\",\n \"school_name\": \"Ingrese el nombre del colegio\",\n \"school_grade\": \"Grado escolar\",\n \"state\":\"Seleccione su departamento\",\n \"study_reasons\":\"Motivo\",\n \"total_price\": \"Ingrese el monto total de la matricula\",\n \"ufps_code\": \"Ingrese el codigo UFPS\",\n \"unipamplona_code\": \"Ingresa tu codigo UniPamplona\",\n \"type_coupon\":\"Ingrese el tipo de cupon\"\n },\n \"validators\": {\n \"academic_level\": \"Ingrese el nivel academico ( Pregrado / Posgrado )\",\n \"academic_plan\": 'Plan',\n \"address\": \"Debes ingresar su direccion\",\n \"agreement_by_category\":\"Convenio por categoria\",\n \"availible_courses\":\"Debes seleccionar el grupo\",\n \"birthdate\":\"Debes ingresar tu fecha de nacimiento\",\n \"city\":\"Debes ingresar la ciudad de residencia\",\n \"classroom\": \"Debe seleccionar los grupos disponibles\",\n \"country\":\"Debes ingresar el pais de residencia\",\n \"degree\": \"Debe seleccionar el nivel universitario\",\n \"email\": \"Recuerda usar correos con dominio @inglesparatodos.edu.co\",\n \"email_ufps\": \"ingresa el correo electronico con dominio ufps.edu.co\",\n \"email_unipamplona\": \"Ingresa el correo con dominio unipamplona.edu.co\",\n \"financing_value\": \"Debe ingresar el valor pagado de la cuota\",\n \"financing_date\": \"Debe ingresar la fecha de realizacion del pago\",\n \"financing_responsable\": \"Debe ingresar el nombre de quien recibe el pago\",\n \"financing_sales_check\": \"Debe ingresar el numero de recibo\",\n \"financing_invoice_number\":\"Debes ingresar el numero de recibo\",\n \"id_cod\": \"Ingrese el numero de inscripcion\",\n \"id_card_type\":\"Debes ingresar el tipo de documento\",\n \"id_card\": \"Debes ingresar el número de documento.\",\n \"id_payment\": \"Debe ingresar el número de recibo\",\n \"last_name\": \"Debes ingresar los apellidos del usuario.\",\n \"name\": \"Debes ingresar el nombre del usuario\",\n \"nickname\":\"Debes ingresar el nickname\",\n \"marketing_reasons\": \"¿Cómo se entero del programa?\",\n \"needAtendant\": \"Debes ingresar si requiere o no acudiente\",\n \"level\": \"Seleccione el nivel\",\n \"code_refers\": \"Seleccionar quien lo refeiere\",\n \"observation\": \"Observaciones\",\n \"occupation\":\"Debes ingresar la ocupacion\",\n \"password\": \"Debe ser de minimo 7 digitos\",\n \"paymentMethod\": \"Seleccione el metodo de pago\",\n \"payment_date\": \"Debe ingresa la fecha de pago\",\n \"phone_number\": \"Debes ingresar un número de teléfono valido\",\n \"phone_indicative\": \"Debes seleccionar un indicativo\",\n \"first_quota_price\": \"Debe ingresar el valor de la primera cuota\",\n \"quota_times\": \"Ingrese un número de cuotas válido\",\n \"program\":\"Debe ingresar el programa academico\",\n \"role\": \"Debe seleccionar un rol\",\n \"re_password\": \"Debe ser de minimo 7 digitos\",\n \"re_total_price\": \"Debe confirmar el valor total de la matricula\",\n \"semester\": \"Debe ingresar el semestre actual\",\n \"service_hour\": \"Debe ingresar las horas de servicio\",\n \"school_name\": \"Debe ingresar el nombre del colegio\",\n \"school_grade\": \"Debes ingresar el grado actual\",\n \"state\":\"Seleccione el departamento\",\n \"study_reasons\":\"Motivo\",\n \"total_price\": \"Debe ingresar el monto total de la matricula\",\n \"ufps_code\": \"Debe ingresar el codigo UFPS\",\n \"unipamplona_code\": \"Debes ingresar tu codigo UniPamplona\"\n },\n },\n \"attendant\": {\n \"inputs\": {\n \"address\": \"ingrese su direccion\",\n \"city\":\"Ingrese su ciudad de residencia\",\n \"country\":\"Ingresa tu pais de residencia\",\n \"id_card_type\":\"Ingresa tu tipo de documento\",\n \"id_card\": \"Documento de identidad\",\n \"last_name\": \"Apellidos\",\n \"name\": \"Ingrese los nombres\",\n \"phone_indicative\": \"Seleccione su indicativo\",\n \"phone_number\": \"Numero de teléfono\",\n \"state\":\"Seleccione su departamento\",\n },\n \"validators\": {\n \"address\": \"Debes ingresar su direccion\",\n \"city\":\"Debes ingresar la ciudad de residencia\",\n \"country\":\"Debes ingresar el pais de residencia\",\n \"id_card_type\":\"Debes ingresar el tipo de documento\",\n \"id_card\": \"Debes ingresar el número de documento.\",\n \"last_name\": \"Debes ingresar los apellidos del usuario.\",\n \"name\": \"Debes ingresar el nombre del usuario\",\n \"phone_number\": \"Debes ingresar un número de teléfono valido\",\n \"phone_indicative\": \"Debes seleccionar un indicativo\",\n \"state\":\"Seleccione el departamento\",\n }\n },\n \"menu\": {\n \"field1\": \"Home\",\n \"field2\": \"Groups\",\n \"field3\": \"Profile\",\n \"field5\": \"Score\",\n \"field4\": \"Search\",\n \"endField\": \"Cerrar Sesión\"\n },\n \"edit_profile\": {\n \"inputs\": {\n \"id_card\": \"Documento de identidad\",\n \"ufps_code\": \"Código de la universidad\",\n \"email\": \"Correo dominio @ufps.edu.co\",\n \"last_name\": \"Ingresa tus apellidos\",\n \"name\": \"Ingresa tus nombres\",\n \"phone\": \"Numero de teléfono\",\n },\n },\n \"en\": {}\n }\n}\n\nexport function getCopies(): any {\n return copies;\n}\n","import { Injectable } from '@angular/core';\nimport { getCopies } from '../utils/copies';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CopiesService {\n\n constructor() { }\n\n public copies: any = getCopies();\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { CreateCourseRq, EditCourseRq, GetAvailibleCoursesRq, GetCourseByCodeRq, GetCoursesByTeacherRq, GetCoursesRq, IChangeCourseStudentNotStartedRq } from '../../models/course/course-rq.model';\nimport { CourseStartDateRq } from '../../models/cronogram/cronogram.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CourseService extends IPTGeneralService{\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n createCourse(course: CreateCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course';\n this.generateRequestParams(course);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n editCourse(course: EditCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'put/course';\n this.generateRequestParams(course);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n getAllCourses(params: GetCoursesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/all/courses';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCoursesByLevel(params: GetCoursesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/level';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAvailibleCourses( availibleCourses: GetAvailibleCoursesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/for/cod';\n this.generateRequestParams(availibleCourses);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourseByCode(params: GetCourseByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourseByCodeAllData(params: GetCourseByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/code/all/data';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCoursesByTeacher(params: GetCoursesByTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/teacher';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getFilteredCoursesByTeacher(params: GetCoursesByTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/filtered/by/teacher';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCoursesByStartDate(params: CourseStartDateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/startdate';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n numberClassByCode(idCode: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/coursetype/numclass/by/code/' + idCode;\n return this.http.get(serviceUrl);\n }\n\n getAvailableCoursesByLevAgreeCType( availibleCourses: GetAvailibleCoursesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/available/courses/by/lev/agree/coursetype';\n this.generateRequestParams(availibleCourses);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n ChangeCourseStudentWhoHasNotStarted( params: IChangeCourseStudentNotStartedRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'change/course/student/who/has/not/started';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class CommunicatorService {\n private $courseType = new BehaviorSubject<string>('');\n private $agreement = new BehaviorSubject<string>('');\n\n constructor() { }\n\n getSelectedCourseType(): Observable<string> {\n return this.$courseType.asObservable();\n }\n\n setCurrentCourseType(value: string) {\n this.$courseType.next(value);\n }\n\n getSelectedAgreement(): Observable<string> {\n return this.$agreement.asObservable();\n }\n\n setCurrentAgreement(value: string) {\n this.$agreement.next(value);\n }\n\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, SimpleChanges, OnChanges, ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { GetAvailibleCoursesRq } from '../../../core/models/course/course-rq.model';\nimport { CopiesService } from '../../../core/services/copies.service';\nimport { CourseService } from '../../../core/services/course-service/course-service.model';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { BaseService } from '../../../core/utils/base-service/base.service';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { CommunicatorService } from '../../logic/communicator.service';\n\n@Component({\n selector: 'app-cod-form-step-one',\n templateUrl: './cod-form-step-one.component.html',\n styleUrls: ['./cod-form-step-one.component.css'],\n})\nexport class CodFormStepOneComponent extends CodFormSteps implements OnChanges {\n\n @Input() initialData?: any;\n @Input() dataPreviusCodData?: any;\n @Input() isEditCod?: boolean;\n @Input() courseSelectRenovation?:any;\n @Input() isRenovation?:any;\n @Output() changeStepEvent = new EventEmitter<number>();\n\n copies: any;\n codFormStepOne!: FormGroup;\n hasAvailableCourse!: boolean;\n\n // Parameters\n agreements: any;\n availibleCourses: any[] = [];\n course_type: any;\n levels: any;\n plans: any;\n isDisabledSel:boolean=false\n // Controls del formulario\n controls = new CodFormControls().controls[0];\n\n constructor(\n private fb: FormBuilder,\n private parameterService: ParameterService,\n private copiesService: CopiesService,\n private baseService: BaseService,\n private courseService: CourseService,\n private communicatorService: CommunicatorService,\n private cdRef: ChangeDetectorRef\n ) {\n super();\n this.copies = this.copiesService.copies;\n }\n\n /* Es necesario recorrer el array de controls de nuestro formulario para:\n ✅ Leer el Local Storage y setear los valores\n ✅ Subscribirse a los cambios del formulario para setear valores nuevos\n\n Nota: la clase CodFormSteps() se encarga de toda la lógica de LS con los pasos del formulario del COD\n */\n\n ngOnChanges(changes: SimpleChanges): void {\n\n this.getParameters();\n this.initForm();\n this.startLocalStorageWork();\n this.setValuesByLocalStorage()\n this.codFormStepOne.controls['course_type'].valueChanges\n .subscribe(value => this.communicatorService.setCurrentCourseType(value));\n\n this.communicatorService.setCurrentAgreement(this.localStorageCOD.getCodFormData(1, 'agreement_by_category')!);\n\n if (changes['initialData'] && this.initialData != null && this.dataPreviusCodData === null || this.dataPreviusCodData != null && this.isEditCod === false && this.isRenovation === false) {\n this.processData(this.initialData);\n this.cdRef.detectChanges();\n }else{\n this.codFormStepOne.controls['academic_plan'].setValue(null);\n this.codFormStepOne.controls['course_type'].setValue(null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n this.codFormStepOne.controls['english_level'].setValue(null);\n this.codFormStepOne.controls['availible_courses'].setValue(null);\n this.codFormStepOne.controls['course_modality'].setValue(null);\n }\n\n if (changes['dataPreviusCodData'] && this.dataPreviusCodData != null && this.isEditCod && this.isRenovation === false ) {\n this.processData(this.dataPreviusCodData);\n\n if (this.isEditCod && !this.dataPreviusCodData.edit_course_payment) {\n this.isDisabledSel = true;\n } else {\n this.isDisabledSel = false;\n }\n\n this.cdRef.detectChanges();\n }else if(changes['dataPreviusCodData'] && this.dataPreviusCodData != null && !this.isEditCod && this.courseSelectRenovation && this.isRenovation === true ){\n this.setDataCodRenovationSelect();\n this.isDisabledSel= true\n this.cdRef.detectChanges();\n }\n\n }\n\n private processData(data: any) {\n const { codFormStepOne } = this;\n this.getAgreementByPlan(data.course_type?.academic_plan.code);\n this.getCourseType(data.course_type?.academic_plan.code);\n codFormStepOne.controls['english_level'].setValue(data.english_level?.code);\n codFormStepOne.controls['agreement_by_category'].setValue(data.agreement?.code);\n codFormStepOne.controls['course_type'].setValue(data.course_type?.code);\n codFormStepOne.controls['academic_plan'].setValue(data.course_type?.academic_plan.code);\n this.getAvailibleCourses();\n\n if (this.isEditCod) {\n this.setDataFromEditCodHistory();\n } else if (!this.isEditCod && this.initialData != null) {\n this.setDataFromUserHistory();\n }\n }\n\n setDataFromUserHistory(){\n this.codFormStepOne.controls['academic_plan'].setValue(this.initialData.course_type.academic_plan.code);\n this.codFormStepOne.controls['course_type'].setValue(this.initialData.course_type.code);\n this.codFormStepOne.controls['agreement_by_category'].setValue(this.initialData.agreement.code);\n this.codFormStepOne.controls['english_level'].setValue(this.initialData.english_level.code);\n this.codFormStepOne.controls['availible_courses'].setValue(this.initialData.code);\n this.codFormStepOne.controls['course_modality'].setValue(this.initialData.course_modality.code);\n }\n\n setDataFromEditCodHistory(){\n\n this.codFormStepOne.controls['academic_plan'].setValue(this.dataPreviusCodData.course_type.academic_plan.code ? this.dataPreviusCodData.course_type.academic_plan.code : null);\n this.codFormStepOne.controls['course_type'].setValue(this.dataPreviusCodData.course_type.code ? this.dataPreviusCodData.course_type.code : null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(this.dataPreviusCodData.agreement.code ? this.dataPreviusCodData.agreement.code : null);\n this.codFormStepOne.controls['english_level'].setValue(this.dataPreviusCodData.english_level.code ? this.dataPreviusCodData.english_level.code : null);\n this.codFormStepOne.controls['availible_courses'].setValue(this.dataPreviusCodData.course.code ? this.dataPreviusCodData.course.code : null);\n this.codFormStepOne.controls['course_modality'].setValue(this.dataPreviusCodData.course.course_modality ? this.dataPreviusCodData.course.course_modality : null);\n }\n setDataCodRenovationSelect(){\n this.getAgreementByPlan(this.courseSelectRenovation.course_type?.academic_plan.code);\n this.getCourseType(this.courseSelectRenovation.course_type?.academic_plan.code);\n this.codFormStepOne.controls['academic_plan'].setValue(this.courseSelectRenovation.course_type?.academic_plan.code ? this.courseSelectRenovation.course_type?.academic_plan.code : null);\n this.codFormStepOne.controls['course_type'].setValue(this.courseSelectRenovation.course_type?.code ? this.courseSelectRenovation.course_type?.code : null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(this.courseSelectRenovation.agreement?.code ? this.courseSelectRenovation.agreement?.code : null);\n this.codFormStepOne.controls['english_level'].setValue(this.courseSelectRenovation.english_level?.code ? this.courseSelectRenovation.english_level?.code : null);\n this.codFormStepOne.controls['availible_courses'].setValue(this.courseSelectRenovation?.code ? this.courseSelectRenovation?.code : null);\n this.codFormStepOne.controls['course_modality'].setValue(this.courseSelectRenovation.course_modality?.code ? this.courseSelectRenovation.course_modality?.code : null);\n this.getAvailibleCourses();\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(1, control.name);\n this.codFormStepOne.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(1, control.name, this.codFormStepOne.controls[control.name].valueChanges);\n });\n }\n\n getParameters() {\n this.parameterService.getAllPlans().subscribe((response) => {\n this.plans = response.data;\n });\n this.parameterService.getLevels().subscribe((response) => {\n this.levels = response.data;\n });\n }\n\n initForm() {\n this.codFormStepOne = this.fb.group({\n academic_plan: ['', [Validators.required]],\n course_type: ['', [Validators.required]],\n agreement_by_category: ['', [Validators.required]],\n english_level: ['', [Validators.required]],\n availible_courses: ['', []],\n course_modality: [''],\n\n });\n }\n\n setValuesByLocalStorage() {\n const academicPlan = this.codFormStepOne.controls['academic_plan'].value || null;\n if (!academicPlan) return;\n this.selectAcademicPlan(academicPlan);\n\n const agreementByCategory = this.codFormStepOne.controls['agreement_by_category'].value || null;\n if (!agreementByCategory) return;\n this.getAvailibleCourses();\n\n const englishLevel = this.codFormStepOne.controls['english_level'].value || null;\n if (!englishLevel) return;\n this.getAvailibleCourses();\n\n const courseModality = this.codFormStepOne.controls['course_modality'].value || null;\n if (!courseModality) return;\n this.getAvailibleCourses();\n }\n\n sendForm() {\n this.codFormStepOne.markAsTouched();\n if (this.codFormStepOne.invalid) return;\n\n // Movernos al paso 2\n this.changeStepEvent.emit(1);\n }\n\n resetForm() {\n this.resetLocalStorage(this.controls);\n this.codFormStepOne.reset();\n }\n\n // Eventos de los selects\n selectAcademicPlan(academic_plan: any) {\n if (academic_plan !== 'Plan') {\n this.codFormStepOne.controls['academic_plan'].setValue(academic_plan);\n // this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n // this.codFormStepOne.controls['school_name'].setValue(null);\n // this.codFormStepOne.controls['course_type'].setValue(null);\n this.getCourseType(academic_plan);\n this.getAgreementByPlan(academic_plan);\n } else {\n this.codFormStepOne.controls['academic_plan'].setValue(null);\n this.codFormStepOne.controls['course_type'].setValue(null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n }\n }\n\n getCourseType(plan: number) {\n this.parameterService.getCoursesTypesByPlan(plan).subscribe((response) => {\n this.course_type = response.data;\n });\n }\n\n getAgreementByPlan(plan: number) {\n this.parameterService.getAgreementByCategory(plan).subscribe((response) => {\n this.agreements = response.data;\n });\n }\n\n selectCoursesTypesByPlan(coursesTypes: any) {\n if (coursesTypes !== 'Tipo de plan') {\n this.codFormStepOne.controls['course_modality'].setValue(null);\n this.codFormStepOne.controls['course_type'].setValue(coursesTypes);\n this.getAvailibleCourses();\n } else {\n this.codFormStepOne.controls['course_type'].setValue(null);\n }\n }\n\n selectAgreementByCategory(agreementByCategories: any) {\n if (agreementByCategories !== 'Convenio por categoria') {\n this.codFormStepOne.controls['course_modality'].setValue(null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(agreementByCategories);\n this.communicatorService.setCurrentAgreement(agreementByCategories);\n this.getAvailibleCourses();\n } else {\n this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n this.codFormStepOne.controls['school_name'].setValue(null);\n }\n }\n\n selectLevel(levels: any) {\n if (levels !== 'Nivel de inglés') {\n this.codFormStepOne.controls['course_modality'].setValue(null);\n this.codFormStepOne.controls['english_level'].setValue(levels);\n this.getAvailibleCourses();\n } else {\n this.codFormStepOne.controls['english_level'].setValue(null);\n }\n }\n\n selectAvailibleCourses(availibleCourses: any) {\n if (availibleCourses !== 'Grupos disponibles') {\n let courseMod = this.availibleCourses.find(objeto => objeto.code === parseInt(availibleCourses, 10));\n this.codFormStepOne.controls['course_modality'].setValue(courseMod.modality);\n this.codFormStepOne.controls['availible_courses'].setValue(availibleCourses);\n } else {\n this.codFormStepOne.controls['availible_courses'].setValue(null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n this.codFormStepOne.controls['course_type'].setValue(null);\n this.codFormStepOne.controls['english_level'].setValue(null);\n }\n }\n\n private validRequest(): boolean {\n return (\n this.codFormStepOne.controls['english_level'].value != '' &&\n this.codFormStepOne.controls['agreement_by_category'].value != '' &&\n this.codFormStepOne.controls['course_type'].value != ''\n );\n }\n\n getAvailibleCourses() {\n this.availibleCourses = [];\n if (this.validRequest()) {\n let request_availibleCourses: GetAvailibleCoursesRq = {\n token: this.baseService.getUserToken(),\n english_level: this.codFormStepOne.controls['english_level'].value,\n agreement: this.codFormStepOne.controls['agreement_by_category'].value,\n course_type: this.codFormStepOne.controls['course_type'].value,\n };\n\n this.courseService.getAvailableCoursesByLevAgreeCType(request_availibleCourses).subscribe((response) => {\n if (response.data) {\n let courses: any[] = response.data;\n this.hasAvailableCourse = true;\n courses.forEach(course => {\n let scheduleParts = course.course_schedule[0].split(\" \");\n let startTime = scheduleParts[2];\n this.availibleCourses.push({\n code: course.code,\n name: `Curso ${course.course_modality.name === 'Presencial' ? 'Presencial' : 'Virtual'} - Teacher ${course.teacher} - Fecha de inicio: ${course.to_start}, Hora de inicio: ${startTime}, Cupos disp: ${course.available_capacity}`,\n modality: course.course_modality.code\n });\n })\n } else {\n this.hasAvailableCourse = false;\n this.codFormStepOne.controls['availible_courses'].setValue(\"\");\n this.setValueStepFour();\n\n }\n });\n }\n }\n\n setValueStepFour(){\n this.setDataInLocalStorage(4, 'program_price', null);\n this.setDataInLocalStorage(4, 'quota_times', null);\n this.setDataInLocalStorage(4, 'total_price', null);\n }\n}\n","<form [formGroup]=\"codFormStepOne\" class=\"grid\">\n <div class=\"col\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['academic_plan'].value\"\n [selectCode]=\"codFormStepOne.controls['academic_plan'].value === null? 'Plan': codFormStepOne.controls['academic_plan'].value\"\n [defaultText]=\"'Plan'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAcademicPlan($event)\"\n [data]=\"plans\"\n [control]=\"codFormStepOne.controls['academic_plan']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['course_type'].value\"\n [selectCode]=\"codFormStepOne.controls['course_type'].value === null? 'Tipo de plan': codFormStepOne.controls['course_type'].value\"\n [defaultText]=\"'Tipo de plan'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectCoursesTypesByPlan($event)\"\n [data]=\"course_type\"\n [control]=\"codFormStepOne.controls['course_type']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <div class=\"col\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['agreement_by_category'].value\"\n [selectCode]=\"codFormStepOne.controls['agreement_by_category'].value === null? 'Convenio por categoria': codFormStepOne.controls['agreement_by_category'].value\"\n [defaultText]=\"'Convenio por categoria'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAgreementByCategory($event)\"\n [data]=\"agreements\"\n [control]=\"codFormStepOne.controls['agreement_by_category']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['english_level'].value\"\n [selectCode]=\"codFormStepOne.controls['english_level'].value === null? 'Nivel de inglés': codFormStepOne.controls['english_level'].value\"\n [defaultText]=\"'Nivel de inglés'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectLevel($event)\"\n [data]=\"levels\"\n [control]=\"codFormStepOne.controls['english_level']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['availible_courses'].value\"\n [selectCode]=\"codFormStepOne.controls['availible_courses'].value === null? 'Grupos disponibles': codFormStepOne.controls['availible_courses'].value\"\n [defaultText]=\"'Grupos disponibles'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAvailibleCourses($event)\"\n [data]=\"availibleCourses\"\n [control]=\"codFormStepOne.controls['availible_courses']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <span *ngIf=\"!hasAvailableCourse\" class=\"mt-1 pl-2 text-red-500\">Todavía no hay cursos con estas características.</span>\n</form>\n\n<div class=\"flex mt-2 align-items-center gap-3\">\n <span *ngIf=\"codFormStepOne.invalid && codFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">Faltan campos por llenar.</span>\n <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { map } from 'rxjs';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\n\n@Component({\n selector: 'app-cod-form-step-two',\n templateUrl: './cod-form-step-two.component.html',\n styleUrls: ['./cod-form-step-two.component.css']\n})\nexport class CodFormStepTwoComponent extends CodFormSteps implements OnChanges {\n @Input() initialData?: any;\n @Input() isEditCod?: boolean;\n @Output() changeStepEvent = new EventEmitter<number>();\n\n codFormStepTwo!: FormGroup;\n countrySelected: any;\n countries: any;\n states: any;\n cities: any;\n errorMessage: string = 'Faltan campos por llenar.';\n hasErrors: boolean = false;\n idTypes: any;\n indicatives: any;\n civilStatus: any;\n genders: any[] = [];\n stratums: any;\n\n // Controls del formulario\n controls = new CodFormControls().controls[1];\n dataCountry: any;\n\n constructor(\n private fb: FormBuilder,\n private parameterService: ParameterService,\n ) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.initForm();\n this.startLocalStorageWork();\n this.validateErrors();\n this.getParameters();\n if (changes['initialData']) {\n if (this.initialData != null) {\n if (this.initialData.student != null) {\n this.setDataFromPreviusCod();\n }else{\n this.setDataFromUserHistory();\n }\n }\n }\n }\n\n setDataFromUserHistory(){\n this.codFormStepTwo.controls['student_name'].setValue(this.initialData.name);\n this.codFormStepTwo.controls['student_last_name'].setValue(this.initialData.last_name);\n this.codFormStepTwo.controls['student_id_card_type'].setValue(this.initialData.id_card_type);\n this.codFormStepTwo.controls['student_id_card'].setValue(this.initialData.id_card);\n this.codFormStepTwo.controls['country'].setValue(this.initialData.city[0]?.country);\n this.codFormStepTwo.controls['state'].setValue(this.initialData.city[0]?.state);\n this.codFormStepTwo.controls['city'].setValue(this.initialData.city[0]?.code);\n this.codFormStepTwo.controls['gender'].setValue(this.initialData.gender);\n this.codFormStepTwo.controls['nickname'].setValue(this.initialData.nick_name);\n this.codFormStepTwo.controls['student_phone_indicative'].setValue(this.initialData.phone_indicative);\n this.codFormStepTwo.controls['student_phone_number'].setValue(this.initialData.phone_number);\n this.codFormStepTwo.controls['birthdate'].setValue(this.initialData.birthdate);\n this.codFormStepTwo.controls['student_email'].setValue(this.initialData.email);\n this.codFormStepTwo.controls['password'].setValue(this.initialData.id_card);\n this.codFormStepTwo.controls['re_password'].setValue(this.initialData.id_card);\n }\n\n setDataFromPreviusCod() {\n this.codFormStepTwo.controls['student_name'].setValue(this.initialData.student.name);\n this.codFormStepTwo.controls['student_last_name'].setValue(this.initialData.student.last_name);\n this.codFormStepTwo.controls['student_id_card_type'].setValue(this.initialData.student.id_card_type);\n this.codFormStepTwo.controls['student_id_card'].setValue(this.initialData.student.id_card);\n this.codFormStepTwo.controls['country'].setValue(this.initialData.student.city[0].country);\n this.codFormStepTwo.controls['state'].setValue(this.initialData.student.city[0].state);\n this.codFormStepTwo.controls['city'].setValue(this.initialData.student.city[0].code);\n this.codFormStepTwo.controls['student_address'].setValue(this.initialData.aditional_information.student_address);\n this.codFormStepTwo.controls['gender'].setValue(this.initialData.student.gender);\n this.codFormStepTwo.controls['nickname'].setValue(this.initialData.student.nick_name);\n this.codFormStepTwo.controls['stratum'].setValue(this.initialData.aditional_information.social_stratum);\n this.codFormStepTwo.controls['student_occupation'].setValue(this.initialData.aditional_information.student_occupation);\n this.codFormStepTwo.controls['grade'].setValue(this.initialData.aditional_information.educational_level);\n this.codFormStepTwo.controls['civil_status'].setValue(this.initialData.aditional_information.civil_status);\n this.codFormStepTwo.controls['student_phone_indicative'].setValue(this.initialData.student.phone_indicative);\n this.codFormStepTwo.controls['student_phone_number'].setValue(this.initialData.student.phone_number);\n this.codFormStepTwo.controls['birthdate'].setValue(this.initialData.student.birthdate);\n this.codFormStepTwo.controls['student_email'].setValue(this.initialData.student.email);\n this.codFormStepTwo.controls['password'].setValue(this.initialData.student.id_card);\n this.codFormStepTwo.controls['re_password'].setValue(this.initialData.student.id_card);\n }\n\n cleanComponent(){\n this.resetLocalStorage(this.controls);\n this.codFormStepTwo.reset();\n }\n\n validateErrors() {\n this.codFormStepTwo.valueChanges.subscribe(changes => {\n if (this.codFormStepTwo.controls['student_name'].hasError('minlength')) {\n this.errorMessage = 'Los nombres deben tener mínimo 3 caracteres';\n } else if (this.codFormStepTwo.controls['student_last_name'].hasError('minlength')) {\n this.errorMessage = 'Los apellidos deben tener mínimo 5 caracteres';\n } else if (this.codFormStepTwo.controls['password'].hasError('minlength')) {\n this.errorMessage = 'La contraseña debe tener mínimo 6 caracteres';\n } else if (this.codFormStepTwo.controls['password'].value !== this.codFormStepTwo.controls['re_password'].value) {\n this.errorMessage = 'Las contraseñas no coinciden';\n } else if (this.codFormStepTwo.controls['age'].errors) {\n this.errorMessage = 'Fecha de nacimiento no válida';\n }\n else {\n this.errorMessage = 'Faltan campos por llenar';\n }\n })\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(2, control.name);\n this.codFormStepTwo.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(2, control.name, this.codFormStepTwo.controls[control.name].valueChanges);\n });\n }\n\n initForm() {\n this.codFormStepTwo = this.fb.group({\n student_address: ['', [Validators.required], []],\n birthdate: ['', [Validators.required], []],\n country: ['', [Validators.required], []],\n state: ['', [Validators.required], []],\n city: ['', [Validators.required], []],\n student_id_card_type: ['', [Validators.required], []],\n student_id_card: [{value: '', disabled: true}, [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],\n student_last_name: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(32)]],\n student_name: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(32)]],\n student_email: ['', [Validators.required, Validators.email]],\n nickname: ['', [Validators.required]],\n gender: ['', [Validators.required]],\n age: ['', [Validators.required], []],\n student_occupation: ['', [Validators.required]],\n stratum: ['', [Validators.required]],\n grade: ['', [Validators.required]],\n civil_status: ['', [Validators.required]],\n student_phone_indicative: ['', [Validators.required], []],\n student_phone_number: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(15)]],\n password: [{ value: '', disabled: this.isEditCod }, [Validators.required, Validators.minLength(6)]],\n re_password: [{ value: '', disabled: this.isEditCod }, [Validators.required, Validators.minLength(6)]],\n });\n\n // Calcular edad y setear valor\n this.codFormStepTwo.controls['birthdate'].valueChanges.subscribe({\n next: (change) => {\n let today = new Date();\n let birthday = new Date(change);\n let age = today.getFullYear() - birthday.getFullYear();\n let month = today.getMonth() - birthday.getMonth();\n\n if (month < 0 || (month === 0 && today.getDate() < birthday.getDate())) {\n age--;\n }\n\n if (age < 3) {\n this.errorMessage = 'Fecha de nacimiento no válida'\n this.codFormStepTwo.controls['birthdate'].setErrors({\n invalidAge: true\n })\n } else {\n this.codFormStepTwo.controls['birthdate'].setErrors(null);\n }\n\n this.codFormStepTwo.controls['age'].setValue(age);\n }\n })\n }\n\n getParameters() {\n this.parameterService.getCardTypes('col').subscribe((response) => {\n this.idTypes = response.data;\n });\n this.parameterService.getIndicatives().subscribe((response) => {\n this.indicatives = response.data;\n });\n this.parameterService.getCountries().subscribe((response) => {\n this.countries = response.data;\n });\n this.parameterService.getStratums().subscribe((response) => {\n this.stratums = response.data;\n });\n this.parameterService.getCivilStatus().subscribe((response) => {\n this.civilStatus = response.data;\n });\n this.parameterService.getAllCities().subscribe((response) => {\n this.cities = response.data;\n });\n this.parameterService.getAllStates().subscribe((response) => {\n this.states = response.data;\n });\n this.parameterService.getGenders().pipe(\n map((response: any) => response.data)\n )\n .subscribe((genders: any[]) => {\n genders.forEach(gender => {\n let genderItem = {\n code: gender.code,\n name: gender.name_spanish\n }\n this.genders.push(genderItem)\n })\n })\n\n }\n\n sendForm() {\n this.codFormStepTwo.markAllAsTouched();\n if (this.codFormStepTwo.invalid) return;\n\n // Movernos al paso 3\n this.changeStepEvent.emit(2);\n }\n\n getState(state: any) {\n this.getCity(state);\n }\n\n getCity(state: any) {\n this.parameterService.getCitiesByState(state).subscribe((response) => {\n this.cities = response.data;\n this.selectCity(this.localStorageCOD.getCodFormData(2, 'city'));\n });\n }\n\n // Eventos de los select\n selectCountry(country: any) {\n let iso = '';\n if (country === '2') iso = 'col';\n else if (country === '3') iso = 'ven';\n else if (country === '4') iso = 'usa';\n else iso = '';\n\n if (iso != '') {\n this.codFormStepTwo.controls['country'].setValue(country);\n\n this.parameterService.getStatesByCountry(iso).subscribe((response) => {\n this.states = response.data;\n this.selectState(this.localStorageCOD.getCodFormData(2, 'state'));\n });\n } else {\n this.codFormStepTwo.controls['country'].setValue(null);\n }\n this.countrySelected = country;\n }\n\n selectState(state: any) {\n if (state !== 'Departamento o estado') {\n this.codFormStepTwo.controls['state'].setValue(state);\n this.getState(state);\n } else {\n this.codFormStepTwo.controls['state'].setValue(null);\n this.codFormStepTwo.controls['city'].setValue(null);\n this.cities = [];\n }\n }\n\n selectCity(city: any) {\n if (city !== 'Ciudad de residencia') {\n this.codFormStepTwo.controls['city'].setValue(city);\n } else {\n this.codFormStepTwo.controls['city'].setValue(null);\n }\n }\n\n selectIdType(idType: any) {\n if (idType !== 'Tipo de documento') {\n this.codFormStepTwo.controls['student_id_card_type'].setValue(idType);\n } else {\n this.codFormStepTwo.controls['student_id_card_type'].setValue(null);\n }\n }\n\n selectIndicatives(indicative: any) {\n if (indicative !== 'Indicativo') {\n this.codFormStepTwo.controls['student_phone_indicative'].setValue(indicative);\n } else {\n this.codFormStepTwo.controls['student_phone_indicative'].setValue(null);\n }\n }\n\n selectGender(gender: any) {\n if (gender !== 'Género') {\n this.codFormStepTwo.controls['gender'].setValue(gender);\n } else {\n this.codFormStepTwo.controls['gender'].setValue(null);\n }\n }\n\n selectStratum(stratum: any) {\n if (stratum !== 'Estrato') {\n this.codFormStepTwo.controls['stratum'].setValue(stratum);\n } else {\n this.codFormStepTwo.controls['stratum'].setValue(null);\n }\n }\n\n selectCivilStatus(civil_status: any) {\n if (civil_status !== 'Estado civil') {\n this.codFormStepTwo.controls['civil_status'].setValue(civil_status);\n } else {\n this.codFormStepTwo.controls['civil_status'].setValue(null);\n }\n }\n}\n","<form autocomplete=\"off\" [formGroup]=\"codFormStepTwo\" class=\"grid\">\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codFormStepTwo.controls['student_name']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_id_card_type'].value\"\n [control]=\"codFormStepTwo.controls['student_id_card_type']\"\n [selectCode]=\"codFormStepTwo.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codFormStepTwo.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['country'].value\"\n [control]=\"codFormStepTwo.controls['country']\"\n [selectCode]=\"codFormStepTwo.controls['country'].value === null ? 'País de residencia' : codFormStepTwo.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'País de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['city'].value\"\n [control]=\"codFormStepTwo.controls['city']\"\n [selectCode]=\"codFormStepTwo.controls['city'].value === null ? 'Ciudad de residencia' : codFormStepTwo.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codFormStepTwo.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['gender'].value\"\n [control]=\"codFormStepTwo.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'Género'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['stratum'].value\"\n [control]=\"codFormStepTwo.controls['stratum']\"\n [data]=\"stratums\"\n (eventSelect)=\"selectStratum($event)\"\n [defaultText]=\"'Estrato'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Grado'\"\n [control]=\"codFormStepTwo.controls['grade']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_phone_indicative'].value\"\n [control]=\"codFormStepTwo.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electrónico'\"\n [control]=\"codFormStepTwo.controls['student_email']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contraseña'\"\n [control]=\"codFormStepTwo.controls['re_password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codFormStepTwo.controls['student_last_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de documento'\"\n [control]=\"codFormStepTwo.controls['student_id_card']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['state'].value\"\n [control]=\"codFormStepTwo.controls['state']\"\n [selectCode]=\"codFormStepTwo.controls['state'].value === null ? 'Departamento o estado' : codFormStepTwo.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Dirección'\"\n [control]=\"codFormStepTwo.controls['student_address']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Edad'\"\n [control]=\"codFormStepTwo.controls['age']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nickname'\"\n [control]=\"codFormStepTwo.controls['nickname']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupación'\"\n [control]=\"codFormStepTwo.controls['student_occupation']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['civil_status'].value\"\n [control]=\"codFormStepTwo.controls['civil_status']\"\n [data]=\"civilStatus\"\n (eventSelect)=\"selectCivilStatus($event)\"\n [defaultText]=\"'Estado civil'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de teléfono'\"\n [control]=\"codFormStepTwo.controls['student_phone_number']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contraseña'\"\n [control]=\"codFormStepTwo.controls['password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\"></div>\n\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"codFormStepTwo.invalid && codFormStepTwo.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\n\n@Component({\n selector: 'app-cod-form-step-three',\n templateUrl: './cod-form-step-three.component.html',\n styleUrls: ['./cod-form-step-three.component.css']\n})\nexport class CodFormStepThreeComponent extends CodFormSteps implements OnChanges {\n @Input() initialData?: any;\n @Input() isEditCod?: boolean;\n @Output() changeStepEvent = new EventEmitter<number>();\n globalControls = new CodFormControls();\n\n idTypes: any;\n indicatives: any;\n codFormStepThree!: FormGroup;\n errorMessage: string = 'Faltan campos por llenar.';\n needAtendants: any[] = [\n { code: '1', name: 'Si requiere acudiente' },\n { code: '2', name: 'No requiere acudiente' },\n ];\n\n // Controls del formulario\n controls = new CodFormControls().controls[2];\n\n constructor(\n private fb: FormBuilder,\n private parameterService: ParameterService,\n private codFormControls: CodFormControls\n ) {\n super();\n }\n\n // ngOnInit(): void {\n // this.getParameters();\n // this.initForm();\n // this.startLocalStorageWork();\n // this.validateErrors();\n // if (this.initialData != null) {\n // this.setValueStepThree();\n // }\n // }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.getParameters();\n this.initForm();\n this.startLocalStorageWork();\n this.validateErrors();\n\n if (changes['initialData']) {\n if (this.initialData != null) {\n if (this.initialData.parent != null) {\n this.selectNeedAtendant(1);\n if (this.initialData.student != null) {\n this.setValueStepThree();\n }else{\n this.setDataFromUserHistory();\n }\n } else {\n this.selectNeedAtendant(null);\n }\n }\n }\n }\n\n validateErrors() {\n this.codFormStepThree.valueChanges.subscribe(changes => {\n if (this.codFormStepThree.controls['parent_name'].hasError('minlength')) {\n this.errorMessage = 'Los nombres deben tener mínimo 3 caracteres';\n } else if (this.codFormStepThree.controls['parent_last_name'].hasError('minlength')) {\n this.errorMessage = 'Los apellidos deben tener mínimo 5 caracteres';\n }\n else {\n this.errorMessage = 'Faltan campos por llenar';\n }\n })\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(3, control.name);\n this.codFormStepThree.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(3, control.name, this.codFormStepThree.controls[control.name].valueChanges);\n });\n }\n\n getParameters() {\n this.parameterService.getCardTypes('col').subscribe((response) => {\n this.idTypes = response.data;\n });\n this.parameterService.getIndicatives().subscribe((response) => {\n this.indicatives = response.data;\n });\n }\n\n initForm() {\n this.codFormStepThree = this.fb.group({\n parent_id_card_type: ['', [Validators.required]],\n parent_id_card: ['',[Validators.required,Validators.minLength(5),Validators.maxLength(20),],],\n parent_last_name: ['',[Validators.required,Validators.minLength(5),Validators.maxLength(32),],],\n parent_name: ['',[Validators.required,Validators.minLength(3),Validators.maxLength(32)],],\n needAtendant: ['', [Validators.required], []],\n parent_phone_indicative: ['', [Validators.required], []],\n parent_occupation: ['', [Validators.required], []],\n parent_address: ['', [Validators.required], []],\n parent_phone_number: ['',[Validators.required,Validators.minLength(10),Validators.maxLength(15),],],\n })\n\n this.listenNeedAtendantField()\n }\n\n listenNeedAtendantField() {\n const control = this.codFormStepThree.get('needAtendant');\n control?.valueChanges.subscribe((change) => {\n if (change === '1') {\n // Poner validaciones\n this.codFormStepThree.controls['parent_id_card_type'].setValidators([Validators.required])\n this.codFormStepThree.controls['parent_id_card'].setValidators([Validators.required,Validators.minLength(5),Validators.maxLength(20)])\n this.codFormStepThree.controls['parent_last_name'].setValidators([Validators.required,Validators.minLength(5),Validators.maxLength(32)])\n this.codFormStepThree.controls['parent_name'].setValidators([Validators.required,Validators.minLength(3),Validators.maxLength(32)])\n this.codFormStepThree.controls['parent_phone_indicative'].setValidators([Validators.required])\n this.codFormStepThree.controls['parent_occupation'].setValidators([Validators.required])\n this.codFormStepThree.controls['parent_address'].setValidators([Validators.required])\n this.codFormStepThree.controls['parent_phone_number'].setValidators([Validators.required,Validators.minLength(10),Validators.maxLength(15)])\n\n // Actualizar para que se tomen los cambios\n this.updateValueAndValidity();\n\n // Actualizar los controls globales\n this.updateGlobalControls(change)\n }\n if (change === '2') {\n // Quitar las validaciones\n this.codFormStepThree.controls['parent_id_card_type'].clearValidators();\n this.codFormStepThree.controls['parent_id_card'].clearValidators();\n this.codFormStepThree.controls['parent_last_name'].clearValidators();\n this.codFormStepThree.controls['parent_name'].clearValidators();\n this.codFormStepThree.controls['parent_phone_indicative'].clearValidators();\n this.codFormStepThree.controls['parent_occupation'].clearValidators();\n this.codFormStepThree.controls['parent_address'].clearValidators();\n this.codFormStepThree.controls['parent_phone_number'].clearValidators();\n\n // Actualizar para que se tomen los cambios\n this.updateValueAndValidity();\n\n // Actualizar los controls globales\n this.updateGlobalControls(change)\n }\n });\n }\n\n updateGlobalControls(change: string) {\n let controls = this.controls.filter(control => control.name !== 'needAtendant');\n controls.forEach(control => {\n if (change === '1') this.codFormControls.changeValue(3, control.name, true)\n if (change === '2') this.codFormControls.changeValue(3, control.name, false)\n });\n }\n\n setValueStepThree(){\n this.codFormStepThree.controls['parent_id_card_type'].setValue(this.initialData.parent.id_card_type);\n this.codFormStepThree.controls['parent_id_card'].setValue(this.initialData.parent.id_card);\n this.codFormStepThree.controls['parent_last_name'].setValue(this.initialData.parent.last_name);\n this.codFormStepThree.controls['parent_name'].setValue(this.initialData.parent.name);\n this.codFormStepThree.controls['parent_phone_indicative'].setValue(this.initialData.parent.phone_indicative);\n this.codFormStepThree.controls['parent_occupation'].setValue(this.initialData.parent.occupation);\n this.codFormStepThree.controls['parent_phone_number'].setValue(this.initialData.parent.phone_number);\n this.codFormStepThree.controls['parent_address'].setValue(this.initialData.parent.office_adrress);\n }\n setDataFromUserHistory(){\n this.codFormStepThree.controls['parent_id_card_type'].setValue(null);\n this.codFormStepThree.controls['parent_id_card'].setValue(null);\n this.codFormStepThree.controls['parent_last_name'].setValue(null);\n this.codFormStepThree.controls['parent_name'].setValue(null);\n this.codFormStepThree.controls['parent_phone_indicative'].setValue(null);\n this.codFormStepThree.controls['parent_occupation'].setValue(null);\n this.codFormStepThree.controls['parent_phone_number'].setValue(null);\n this.codFormStepThree.controls['parent_address'].setValue(null);\n }\n\n updateValueAndValidity() {\n this.codFormStepThree.controls['parent_id_card_type'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_id_card'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_last_name'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_name'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_phone_indicative'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_occupation'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_address'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_phone_number'].updateValueAndValidity();\n }\n\n needAtendant(): boolean {\n return this.codFormStepThree.controls['needAtendant'].value == 1;\n }\n\n sendForm() {\n this.codFormStepThree.markAllAsTouched();\n if (this.codFormStepThree.controls['needAtendant'].value === '1' && this.codFormStepThree.invalid) return;\n\n // Movernos al paso 4\n this.changeStepEvent.emit(3);\n }\n\n // Eventos de los select\n selectNeedAtendant(needAtendant: any) {\n if (needAtendant == 1) {\n this.codFormStepThree.controls['needAtendant'].setValue(needAtendant);\n } else {\n this.cleanComponent();\n this.codFormStepThree.controls['needAtendant'].setValue(null);\n }\n }\n\n selectIdTypeParents(value: string) {\n if (value !== 'Tipo de documento') {\n this.codFormStepThree.controls['parent_id_card_type'].setValue(value);\n } else {\n this.codFormStepThree.controls['parent_id_card_type'].setValue(null);\n }\n }\n\n selectIndicativesParents(value: string) {\n if (value !== 'Indicativo') {\n this.codFormStepThree.controls['parent_phone_indicative'].setValue(value);\n } else {\n this.codFormStepThree.controls['parent_phone_indicative'].setValue(null);\n }\n }\n\n cleanComponent(){\n this.resetLocalStorage(this.controls);\n this.codFormStepThree.reset();\n }\n\n}\n","<form autocomplete=\"off\" [formGroup]=\"codFormStepThree\"class=\"grid\">\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codFormStepThree.controls['needAtendant'].value\"\n [control]=\"codFormStepThree.controls['needAtendant']\"\n (eventSelect)=\"selectNeedAtendant($event)\"\n [data]=\"needAtendants\"\n [defaultText]=\"'Requiere acudiente'\"\n ></ipt-select>\n </div>\n\n <div *ngIf=\"needAtendant()\" class=\"grid col-12\">\n <div class=\"col-12 md:col-6\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codFormStepThree.controls['parent_name']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepThree.controls['parent_id_card_type'].value\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdTypeParents($event)\"\n [defaultText]=\"'Tipo de documento'\"\n [control]=\"codFormStepThree.controls['parent_id_card_type']\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepThree.controls['parent_phone_indicative'].value\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicativesParents($event)\"\n [defaultText]=\"'Indicativo'\"\n [control]=\"codFormStepThree.controls['parent_phone_indicative']\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupación'\"\n [control]=\"codFormStepThree.controls['parent_occupation']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 md:col-6\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codFormStepThree.controls['parent_last_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de documento'\"\n [control]=\"codFormStepThree.controls['parent_id_card']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de teléfono'\"\n [control]=\"codFormStepThree.controls['parent_phone_number']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Dirección - Oficina'\"\n [control]=\"codFormStepThree.controls['parent_address']\"\n ></ipt-input>\n </div>\n </div>\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"(codFormStepThree.invalid && codFormStepThree.touched) && needAtendant()\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n","import { Injectable } from '@angular/core';\nimport Swal from 'sweetalert2';\n\nexport interface CalculateQuotesParams {\n date: Date;\n quotaValues: number;\n quotaTimes: any;\n totalPrice: any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CalculateQuotesService {\n\n monthsDays: number[] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n constructor() { }\n\n calculateQuotes(params: CalculateQuotesParams): any[] {\n let dataFinancing: any[] = [];\n let index = 1; // Indicador de cant. de cuotas\n let dateJs = new Date(params.date);\n let isEndMonth = false;\n\n dateJs.setMilliseconds(dateJs.getMilliseconds() + (1000*3600*24));\n\n isEndMonth = this.monthsDays[dateJs.getMonth()] === dateJs.getDate();\n\n if (dateJs.getDay() === 0) {\n Swal.fire({\n title: 'Fecha inválida',\n text: 'Debe seleccionar un día de la semana diferente al domingo',\n icon: 'error'\n })\n } else {\n\n let enrollment: any[] = [\n index,\n Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0\n }).format(Math.round(parseFloat(params.totalPrice.toString()))),\n this.getStringDate(dateJs)\n ];\n\n let quota: any[] = [\n index,\n Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0\n }).format(Math.round(parseFloat(params.quotaValues.toString()))),\n this.getStringDate(dateJs)\n ];\n dataFinancing.push(enrollment);\n\n dataFinancing.push(quota);\n\n while (index < params.quotaTimes) {\n index = index + 1;\n let newJsDate = this.setPlusOneMonth(dateJs, isEndMonth);\n let row: any[] = [\n index,\n Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0\n }).format(Math.round(parseFloat(params.quotaValues.toString()))),\n this.getStringDate(newJsDate[newJsDate.length - 1])\n ];\n dataFinancing.push(row)\n\n dateJs = newJsDate[0];\n }\n }\n return dataFinancing;\n }\n\n setPlusOneMonth(originDate: Date, isEndMonth: boolean): Date[] {\n let response: Date [] = [];\n\n let oneDayMilis = 1000 * 3600 * 24;\n\n let day = isEndMonth ? this.monthsDays[(originDate.getMonth() + 1)%12]: originDate.getDate();\n let plusMonthDate: Date = new Date(originDate.getFullYear(), originDate.getMonth() + 1, day);\n\n response.push(new Date(originDate.getFullYear(), originDate.getMonth() + 1, day));\n\n while(plusMonthDate.getDay() === 0) {\n plusMonthDate.setMilliseconds(originDate.getMilliseconds() - oneDayMilis);\n }\n\n response.push(plusMonthDate);\n return response;\n }\n\n // setPlusOneMonth2(originDate: Date, isEndMonth: boolean): Date[] {\n // let response: Date[] = [];\n // let oneDayMilis = 1000 * 3600 * 24;\n\n // let day = isEndMonth ? this.monthsDays[(originDate.getMonth() + 1) % 12] : originDate.getDate();\n // let plusMonthDate: Date = new Date(originDate.getFullYear(), originDate.getMonth() + 1, day);\n\n // while (plusMonthDate.getDay() === 0) {\n // plusMonthDate.setMilliseconds(plusMonthDate.getMilliseconds() - oneDayMilis);\n // }\n\n // response.push(plusMonthDate);\n // response.push(new Date(originDate.getFullYear(), originDate.getMonth() + 1, day + 1));\n // return response;\n // }\n\n\n getStringDate(originDate: Date) {\n let month = originDate.getMonth()+1;\n let stringMonth = month < 10 ? '0'+month : month;\n return originDate.getFullYear() + '-' + stringMonth + '-' + originDate.getDate();\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges, OnChanges } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport Swal from 'sweetalert2';\nimport { filter, map } from 'rxjs';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CalculateQuotesParams, CalculateQuotesService } from '../../logic/calculate-quotes.service';\nimport { CommunicatorService } from '../../logic/communicator.service';\nimport { CodPrices, CodPricesRq, IObtainCodPricesRq } from '../../../core/models/commercial/commercial.model';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { CommercialService } from '../../../core/services/commercial-service/comercial.service';\nimport { BaseService } from '../../../core/utils/base-service/base.service';\n\ninterface CourseTypes {\n code: number;\n name: string;\n number_class: number;\n academic_plan: number;\n updated_at: string;\n created_at: string;\n}\n@Component({\n selector: 'app-cod-form-step-four',\n templateUrl: './cod-form-step-four.component.html',\n styleUrls: ['./cod-form-step-four.component.css'],\n})\nexport class CodFormStepFourComponent extends CodFormSteps implements OnChanges {\n @Input() isEditCod?: boolean;\n @Input() initialData?: any;\n @Output() changeStepEvent = new EventEmitter<number>();\n @Output() financingData = new EventEmitter<any>();\n\n codFormStepFour!: FormGroup;\n isCalculateQuotesButtonClicked: boolean = false;\n errorMessage: string = 'Faltan campos por llenar.';\n paymentMethods: any[] = [\n { code: '1', name: 'Financiado' },\n { code: '2', name: 'Contado' },\n ];\n dataFinancing: any[] = [];\n isFinancing: boolean = false;\n isSemestral: boolean = false;\n codPrices: CodPrices[] = [];\n codPricesFilter: CodPrices[] = [];\n\n dataPrices:any;\n feeResponse: boolean = false;\n thereArePlans: boolean = false;\n isDisabledSel=false;\n // Controls del formulario\n controls = new CodFormControls().controls[3];\n\n constructor(\n private fb: FormBuilder,\n private calculateQuotesService: CalculateQuotesService,\n private communicatorService: CommunicatorService,\n private parameterService: ParameterService,\n private codFormControls: CodFormControls,\n private commercialService: CommercialService,\n private baseService: BaseService\n ) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.initForm();\n this.startLocalStorageWork();\n this.validateErrors();\n // this.getCodPricesByAgreement();\n this.getValuesOfStepOneComponent();\n if (changes['initialData']) {\n if (this.initialData != null) {\n\n if (this.isEditCod && !this.initialData.edit_course_payment){\n this.isDisabledSel = true;\n }else{\n this.isDisabledSel = false;\n }\n if (this.initialData.cod_renovation == true && this.isEditCod == false) {\n this.setDataFromPreviusCodPrices();\n this.isDisabledSel = true;\n }\n if (this.initialData.cod_price != null) {\n this.setDataFromPreviusCodPrices();\n this.showTable();\n }\n }\n }\n if (this.isDisabledSel) {\n this.codFormStepFour.controls['payment_date'].disable();\n } else {\n this.codFormStepFour.controls['payment_date'].enable();\n }\n }\n // ngOnInit(): void {\n // // this.cleanComponent();\n // this.initForm();\n // this.startLocalStorageWork();\n // this.validateErrors();\n // // this.getCodPricesByAgreement();\n // this.getValuesOfStepOneComponent();\n // }\n\n\n getValuesOfStepOneComponent() {\n // Tipo de curso seleccionado\n this.communicatorService.getSelectedCourseType().subscribe(value => {\n this.parameterService.getCoursesTypes().pipe(\n map( (response: any) => {\n const courseTypes: CourseTypes[] = response.data;\n return courseTypes.filter( ({ name }) => name.includes('Semestral') )\n })\n )\n .subscribe( (courseTypes: CourseTypes[]) => {\n for (let i = 0; i < courseTypes.length; i++) {\n if (courseTypes[i].code.toString() === value) {\n this.isSemestral = true;\n break;\n } else {\n this.isSemestral = false;\n }\n }\n })\n });\n\n // Convenio seleccionado\n // this.communicatorService.getSelectedAgreement().subscribe(value => {\n // this.getCodPricesByAgreement(value);\n // });\n }\n\n getCodPricesByAgreement(agreement?: string) {\n let agreementSelected: string | null;\n if (agreement) {\n agreementSelected = agreement;\n } else {\n agreementSelected = this.localStorageCOD.getCodFormData(1, 'agreement_by_category')\n }\n\n if (this.codFormStepFour.controls['payment_method'].value === '1') {\n let request: CodPricesRq = {\n agreement: Number(agreementSelected),\n payment_method: 'cuota'\n }\n this.commercialService.getCodPricesByAgreementTypePayment(request).subscribe((response: any) =>{\n this.codPrices = response.data;\n this.codFormStepFour.controls['quota_times'].setValue(this.codPrices[0].code)\n this.codFormStepFour.controls['program_price'].setValue(this.codPrices[0].normal_price)\n })\n }else {\n if (this.codFormStepFour.controls['payment_method'].value === '2') {\n let request: CodPricesRq = {\n agreement: Number(agreementSelected),\n payment_method: 'conta'\n }\n this.commercialService.getCodPricesByAgreementTypePayment(request).subscribe((response: any) =>{\n this.codPrices = response.data;\n this.codFormStepFour.controls['quota_times'].setValue(this.codPrices[0].code);\n this.codFormStepFour.controls['program_price'].setValue(this.codPrices[0].normal_price)\n this.codFormStepFour.controls['total_price'].setValue(this.codPrices[0].enrollment);\n })\n }\n }\n\n\n // this.commercialService.getCodPricesByAgreement(Number(agreementSelected)).subscribe({\n // next: (response: any) => {\n // if (response.data) {\n // const codPrices: CodPrices[] = response.data;\n // this.codPrices = codPrices;\n // if (this.codFormStepFour.controls['payment_method'].value === '1') {\n // const aux = this.codPrices.filter(codPrice => codPrice.agreement === Number(agreementSelected))[0];\n // this.codFormStepFour.controls['quota_times'].setValue(aux.code)\n // this.codFormStepFour.controls['program_price'].setValue(aux.normal_price)\n // }else {\n // if (this.codFormStepFour.controls['payment_method'].value === '2') {\n // // const aux = this.codPrices.filter(codPrice => codPrice.agreement === Number(agreementSelected))[0];\n // const aux = this.codPrices.filter(codPrice => codPrice.fee_number === 1)[0];\n // this.codFormStepFour.controls['quota_times'].setValue(aux.code);\n // this.codFormStepFour.controls['program_price'].setValue(aux.normal_price)\n // this.codFormStepFour.controls['total_price'].setValue(aux.enrollment);\n // }\n // }\n // }\n // },\n // error: (err) => console.log(err)\n // })\n }\n\n validateErrors() {\n this.codFormStepFour.valueChanges.subscribe(changes => {\n if (this.codFormStepFour.controls['quota_times'].hasError('min')) {\n this.errorMessage = 'La cantidad de cuotas mínimas debe ser 1';\n } else if (this.codFormStepFour.controls['quota_times'].hasError('max')) {\n this.errorMessage = 'La cantidad de cuotas no debe ser superior a 12';\n }\n else {\n this.errorMessage = 'Faltan campos por llenar';\n }\n })\n }\n\n searchPriceByTypePayment(agreementSelected: any, type: string, change: string){\n let request: CodPricesRq = {\n agreement: Number(agreementSelected),\n payment_method: type\n }\n this.commercialService.getCodPricesByAgreementTypePayment(request).subscribe((response: any) =>{\n this.codPrices = response.data;\n })\n }\n\n initForm() {\n this.codFormStepFour = this.fb.group({\n program_price: [{ value: '', disabled: true }, [Validators.required]],\n payment_date: ['', [Validators.required]],\n payment_method: ['', [Validators.required]],\n quota_times: [{ value: '', disabled: true }, [Validators.required]],\n total_price: [{ value: '', disabled: true }, [Validators.required]],\n paid_level: ['', [Validators.required]],\n quota_price: ['', [Validators.required]],\n fee_number: ['', [Validators.required]],\n });\n\n this.listenPaymentMethodField();\n }\n\n listenPaymentMethodField() {\n const control = this.codFormStepFour.get('payment_method');\n control?.valueChanges.subscribe((change) => {\n // Financiado\n if (change === '1') {\n // Poner validaciones\n this.codFormStepFour.controls['program_price'].setValidators([Validators.required]);\n this.codFormStepFour.controls['payment_date'].setValidators([Validators.required]);\n this.codFormStepFour.controls['quota_times'].setValidators([Validators.required]);\n this.codFormStepFour.controls['total_price'].setValidators([Validators.required]);\n\n // Actualizar para que se tomen los cambios\n this.updateValueAndValidity();\n\n // Actualizar los controls globales\n this.updateGlobalControls(change)\n }\n\n // de contado\n if (change === '2') {\n // Quitar las validaciones\n this.codFormStepFour.controls['program_price'].setValidators([Validators.required]);\n this.codFormStepFour.controls['payment_date'].setValidators([Validators.required]);\n this.codFormStepFour.controls['quota_times'].clearValidators();\n this.codFormStepFour.controls['total_price'].setValidators([Validators.required]);\n\n // Actualizar para que se tomen los cambios\n this.updateValueAndValidity();\n\n // Actualizar los controls globales\n this.updateGlobalControls(change)\n }\n });\n }\n\n updateGlobalControls(change: string) {\n let controls = this.controls.filter(control => control.name !== 'payment_method');\n controls.forEach(control => {\n if (change === '1') this.codFormControls.changeValue(4, control.name, true)\n if (change === '2') {\n if (control.name === 'quota_times') this.codFormControls.changeValue(4, control.name, false);\n }\n });\n }\n\n updateValueAndValidity() {\n this.codFormStepFour.controls['program_price'].updateValueAndValidity();\n this.codFormStepFour.controls['payment_date'].updateValueAndValidity();\n this.codFormStepFour.controls['quota_times'].updateValueAndValidity();\n this.codFormStepFour.controls['total_price'].updateValueAndValidity();\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(4, control.name);\n this.codFormStepFour.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(4, control.name, this.codFormStepFour.controls[control.name].valueChanges);\n });\n }\n\n showTable() {\n this.isCalculateQuotesButtonClicked = true;\n const total_price = this.codFormStepFour.controls['total_price'].value;\n if ((total_price === 'null') || this.codFormStepFour.invalid) {\n Swal.fire({\n title: 'Error table',\n text: 'Debes ingresar el monto total de la matrícula y la cuota inicial',\n icon: 'error'\n })\n return;\n }\n\n // Calcular cuotas\n this.dataFinancing = [];\n // const quotaValues = this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].quota_price;\n // let params: CalculateQuotesParams = {\n // date: new Date(this.codFormStepFour.controls['payment_date'].value),\n // quotaValues,\n // quotaTimes: this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].fee_number,\n // totalPrice: this.codFormStepFour.controls['total_price'].value,\n // }\n\n let params: CalculateQuotesParams = {\n date: new Date(this.codFormStepFour.controls['payment_date'].value),\n quotaValues: Number(this.codFormStepFour.controls['quota_price'].value),\n quotaTimes: Number(this.codFormStepFour.controls['fee_number'].value),\n totalPrice: this.codFormStepFour.controls['total_price'].value,\n }\n\n this.dataFinancing = this.calculateQuotesService.calculateQuotes(params);\n this.isFinancing = true;\n this.financingData.emit(this.dataFinancing);\n }\n\n calculateNewQuotes() {\n this.isCalculateQuotesButtonClicked = false;\n this.isFinancing = false;\n this.financingData.emit(null);\n }\n\n sendForm() {\n this.codFormStepFour.markAllAsTouched();\n if (this.codFormStepFour.invalid) return;\n // Movernos al paso 5\n this.changeStepEvent.emit(4);\n }\n\n isFinanced(): boolean {\n return this.codFormStepFour.controls['payment_method'].value == 1;\n }\n\n // Eventos del select\n selectPaymentMethod(paymentMethod: any) {\n this.feeResponse = true;\n this.thereArePlans = false;\n\n if (paymentMethod !== '') {\n const request: IObtainCodPricesRq = {\n token: this.baseService.getUserToken(),\n course_type: Number(this.localStorageCOD.getCodFormData(1, 'course_type')),\n agreement: Number(this.localStorageCOD.getCodFormData(1, 'agreement_by_category')),\n course_modality: Number(this.localStorageCOD.getCodFormData(1, 'course_modality')),\n payment_method: parseInt(paymentMethod)\n }\n this.commercialService.ObtainCodPrices(request).subscribe((response)=> {\n if (response.data != null) {\n this.dataPrices = response.data;\n this.feeResponse = false;\n this.thereArePlans = true;\n }else {\n this.thereArePlans = false;\n this.feeResponse = false;\n Swal.fire({\n position: 'center',\n icon: 'warning',\n title:\n '<p style=\"font-family: Poppins\"\">Oops.. no hay planes de pagos, \\n en el curso elegido.</p>',\n showConfirmButton: false,\n timer: 3000,\n });\n this.clearInputPayment();\n }\n });\n this.codFormStepFour.controls['payment_method'].setValue(paymentMethod);\n // this.getCodPricesByAgreement();\n } else {\n this.codFormStepFour.controls['payment_method'].setValue(null);\n }\n }\n\n selectQuotas(quotas: string) {\n if (quotas !== 'Número de cuotas') {\n const codPrice: CodPrices[] = this.codPrices.filter(codPrice => codPrice.code === Number(quotas));\n this.codFormStepFour.controls['quota_times'].setValue(codPrice[0].code);\n this.codFormStepFour.controls['total_price'].setValue(codPrice[0].enrollment);\n this.codFormStepFour.controls['program_price'].setValue(codPrice[0].financed_price);\n } else {\n this.codFormStepFour.controls['quota_times'].setValue(null);\n this.codFormStepFour.controls['total_price'].setValue(null);\n this.codFormStepFour.controls['program_price'].setValue(null);\n }\n }\n\n cleanComponent(){\n this.resetLocalStorage(this.controls);\n }\n\n selectLevels(dataPayment: any){\n if (this.codFormStepFour.get('payment_method')?.value == 1) {\n this.codFormStepFour.controls['quota_times'].setValue(dataPayment.code);\n this.codFormStepFour.controls['total_price'].setValue(dataPayment.enrollment);\n this.codFormStepFour.controls['program_price'].setValue(dataPayment.financed_price);\n this.codFormStepFour.controls['paid_level'].setValue(dataPayment.paid_level - 1);\n this.codFormStepFour.controls['fee_number'].setValue(dataPayment.fee_number);\n this.codFormStepFour.controls['quota_price'].setValue(dataPayment.quota_price);\n this.updateValueAndValidity();\n } else if(this.codFormStepFour.get('payment_method')?.value == 2){\n this.codFormStepFour.controls['quota_times'].setValue(dataPayment.code);\n this.codFormStepFour.controls['total_price'].setValue(dataPayment.enrollment);\n this.codFormStepFour.controls['program_price'].setValue(dataPayment.normal_price);\n this.codFormStepFour.controls['paid_level'].setValue(dataPayment.paid_level - 1);\n this.codFormStepFour.controls['fee_number'].setValue(dataPayment.fee_number);\n this.codFormStepFour.controls['quota_price'].setValue(dataPayment.quota_price);\n this.updateValueAndValidity();\n }\n }\n\n clearInputPayment(){\n this.codFormStepFour.controls['program_price'].setValue(null);\n this.codFormStepFour.controls['quota_times'].setValue(null);\n this.codFormStepFour.controls['total_price'].setValue(null);\n }\n\n setDataFromPreviusCodPrices(){\n this.codFormStepFour.controls['payment_method'].setValue( this.initialData.cod_payment ? ((this.initialData.cod_payment.length == 1) ? 2 : 1) : 2)\n\n if (this.codFormStepFour.get('payment_method')?.value == 1) {\n this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.code : 0);\n this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.enrollment : 0);\n this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.financed_price : 0);\n this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);\n this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment ? this.initialData.cod_payment?.length : 0);\n this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.quota_price: 0);\n this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment ? this.initialData.cod_payment[0]?.timely_date : new Date());\n this.updateValueAndValidity();\n } else if(this.codFormStepFour.get('payment_method')?.value == 2){\n this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.code : 0);\n this.codFormStepFour.controls['total_price'].setValue(0);\n this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.normal_price : 0);\n this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);\n this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment ? 1 : 0);\n this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.normal_price : 0);\n this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment ? this.initialData.cod_payment[0]?.timely_date: new Date());\n this.updateValueAndValidity();\n }\n\n // this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_price.enrollment);\n // this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment.lenght == 1 ? this.initialData.cod_price.normal_price : this.initialData.cod_price.financed_price);\n // this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);\n // this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);\n // this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_price.quota_price);\n // this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment[0].timely_date);\n // this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);\n }\n\n}\n\n","<div *ngIf=\"isSemestral\" class=\"m-1 p-2 border-round-lg bg-blue-500 text-white\">\n <strong>Nota: </strong>\n El tipo de curso seleccionado fue semestral, por lo tanto el estudiante debe pagar matrícula y primera cuota (M&M)\n</div>\n\n<form autocomplete=\"off\" [formGroup]=\"codFormStepFour\" class=\"grid mt-2\">\n\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codFormStepFour.controls['payment_method'].value\"\n [control]=\"codFormStepFour.controls['payment_method']\"\n (eventSelect)=\"selectPaymentMethod($event)\"\n [data]=\"paymentMethods\"\n [defaultText]=\"'Método de pago'\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-loader *ngIf=\"feeResponse\"></ipt-loader>\n\n <div class=\"col-12\" *ngIf=\"thereArePlans\">\n <p-table\n [value]=\"dataPrices\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n Seleccion de niveles a cancelar.\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cancelar</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cuotas</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Admin</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>{{ data.paid_level }} Nivel(es)</td>\n <td>{{ data.fee_number }}</td>\n <td class=\"pt-2 pb-2\">\n <button\n pButton\n pRipple\n icon=\"pi pi-money-bill\"\n class=\"p-button-sm p-button-rounded\"\n (click)=\"selectLevels(data)\"\n\n ></button>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n\n <!-- [initialValue]=\"codFormStepFour.controls['quota_times'].value\" -->\n <!-- <ipt-select *ngIf=\"isFinanced();\"\n [initialValue]=\"'1'\"\n [control]=\"codFormStepFour.controls['quota_times']\"\n (eventSelect)=\"selectQuotas($event)\"\n [defaultText]=\"'Número de cuotas'\"\n [data]=\"codPrices\"\n ></ipt-select> -->\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Monto total de la matrícula'\"\n [control]=\"codFormStepFour.controls['total_price']\"\n [withPipe]=\"true\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [withPipe]=\"true\"\n [inputType]=\"'text'\"\n [control]=\"codFormStepFour.controls['program_price']\"\n [placeHolder]=\"'Valor total del programa'\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codFormStepFour.controls['payment_date']\"\n [placeHolder]=\"'Fecha de pago'\"\n ></ipt-input>\n </div>\n\n <!-- Tabla de financiación -->\n <div class=\"col-12\" *ngIf=\"isFinancing\">\n <p-table\n [value]=\"dataFinancing\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n Cálculo de cuotas\n <button pButton class=\"p-button-sm ml-auto\" label=\"Nuevo cálculo\" (click)=\"calculateNewQuotes()\" [disabled]=\"isDisabledSel\" lab icon=\"pi pi-replay\"></button>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th>#</th>\n <th>Valor</th>\n <th>Fecha</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>{{ data[0] }}</td>\n <td>{{ data[1] }}</td>\n <td>{{ data[2] }}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n <!-- ---------------------- -->\n\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"codFormStepFour.invalid && codFormStepFour.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n <div class=\"flex ml-auto gap-2\">\n <button *ngIf=\"codFormStepFour.controls['payment_method'].value === '1'\" [disabled]=\"isFinancing || codFormStepFour.controls['payment_method'].value !== '1'\"type=\"submit\" class=\"ml-auto p-button-sm p-button-secondary\" (click)=\"showTable()\" pButton label=\"Calcular cuotas\" icon=\"pi pi-sliders-h\"></button>\n <button [disabled]=\"!isFinancing && codFormStepFour.controls['payment_method'].value === '1'\" type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BaseService } from '../../core/utils/base-service/base.service';\nimport { UserService } from '../../core/services/user-service/user-service';\nimport { getStudentRq } from '../../core/models/user/user-rq.model';\nimport Swal from 'sweetalert2';\n\n@Component({\n selector: 'cod-modal-referred',\n templateUrl: './modal-referred.component.html',\n styleUrls: ['./modal-referred.component.css']\n})\nexport class ModalReferredComponent implements OnInit {\n @Input() visibility: boolean = false;\n @Output() userSelect = new EventEmitter<any>();\n\n searchUserForm!: FormGroup;\n userExists: boolean = false;\n allUsers: any;\n loading = [false, false, false, false];\n\n constructor(\n private fb: FormBuilder,\n private baseService: BaseService,\n private userService: UserService\n ) {}\n\n ngOnInit(): void {\n this.initForm();\n }\n\n closeModal() {\n this.visibility = false;\n this.userSelect.emit(null);\n }\n\n initForm() {\n this.searchUserForm = this.fb.group({\n searchUser: ['',[Validators.required,Validators.minLength(4),Validators.maxLength(30)],],\n });\n\n const searchUserControl = this.searchUserForm.get('searchUser');\n if (searchUserControl) {\n searchUserControl.valueChanges.subscribe((value) => {\n // this.modalClose.emit(false);\n });\n }\n }\n\n selectUser(data : any){\n this.userSelect.emit(data);\n }\n\n load(index: any, form: FormGroup) {\n this.loading[index] = true;\n setTimeout(() => (this.loading[index] = false), 1000);\n this.search(form);\n }\n\n search(form: FormGroup) {\n let request: getStudentRq = {\n token: this.baseService.getUserToken(),\n param: form.value.searchUser,\n };\n if (form.value.searchUser != \"\") {\n this.userService.obtainReferralUsers(request).subscribe((response) => {\n if (response.data == null) {\n this.userExists = false;\n Swal.fire({\n title: 'Oops...',\n text: 'No hay usuarios con los parámetros ingresados',\n icon: 'error',\n });\n } else {\n this.userExists = true;\n this.allUsers = response.data;\n }\n });\n } else {\n Swal.fire({\n title: 'Oops...',\n text: 'Debe digitar un parámetro para realizar la búsqueda',\n icon: 'info',\n });\n\n }\n }\n}\n","<main *ngIf=\"visibility\">\n <div class=\"modal_container\">\n <div class=\"header_modal\">\n <h1>Datos de quien lo refiere</h1>\n <button (click)=\"closeModal()\">x</button>\n </div>\n <div class=\"grid_container\">\n <div>\n <section\n id=\"container\"\n class=\"flex flex-column bg-white border-round-2xl\"\n >\n <form\n autocomplete=\"off\"\n (ngSubmit)=\"search(searchUserForm)\"\n class=\"form\"\n [formGroup]=\"searchUserForm\"\n >\n <input\n placeholder=\"Buscar por nombre, documento o teléfono\"\n [formControl]=\"$any(searchUserForm.controls['searchUser'])\"\n type=\"text\"\n pInputText\n />\n <p-button\n type=\"submit\"\n label=\"Buscar\"\n icon=\"pi pi-search\"\n (onClick)=\"load(0, searchUserForm)\"\n ></p-button>\n </form>\n </section>\n\n <div *ngIf=\"userExists\" class=\"referrerInformation\">\n <section class=\"userList\">\n <p-table\n [value]=\"allUsers\"\n [scrollable]=\"true\"\n scrollHeight=\"150px\"\n [tableStyle]=\"{'min-width': '50rem'}\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Documento</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Nombres</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Apellidos</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Email</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Telefono</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Rol</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Admin</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-user>\n <tr>\n <td class=\"pt-2 pb-2 text-sm text-left\">{{user.id_card}}</td>\n <td class=\"pt-2 pb-2 text-sm text-left\">{{user.name}}</td>\n <td class=\"pt-2 pb-2 text-sm text-left\">{{user.last_name}}</td>\n <td class=\"pt-2 pb-2 text-sm text-left\">{{user.email}}</td>\n <td class=\"pt-2 pb-2 text-sm text-right\">{{user.phone_number}}</td>\n <td class=\"pt-2 pb-2 text-sm text-center\">{{user.role}}</td>\n <td class=\"pt-2 pb-2 min-w-min\" style=\"text-align: center\">\n <p-button\n icon=\"pi pi-chevron-circle-right\"\n (click)=\"selectUser(user)\"\n ></p-button>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </section>\n </div>\n </div>\n </div>\n </div>\n</main>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport Swal from 'sweetalert2';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\n\n@Component({\n selector: 'app-cod-form-step-five',\n templateUrl: './cod-form-step-five.component.html',\n styleUrls: ['./cod-form-step-five.component.css']\n})\nexport class CodFormStepFiveComponent extends CodFormSteps implements OnChanges {\n @Input() userRole!: number;\n @Input() initialData?: any;\n @Input() isEditCod?: boolean;\n @Input() isRenovation?: boolean;\n @Output() changeStepEvent = new EventEmitter<number>();\n @Output() action = new EventEmitter<string>();\n\n codFormStepFive!: FormGroup;\n marketingReasons: any;\n studyReasons: any;\n errorMessage: string = 'Faltan campos por llenar.';\n sendFormMsg!: string;\n termsCheckboxStatus: boolean = false;\n multiculturalities: any;\n modalVisible: boolean = false;\n visbleReferred: boolean = false;\n\n // Controls del formulario\n controls = new CodFormControls().controls[4];\n\n constructor(\n private fb: FormBuilder,\n private parameterService: ParameterService,\n ) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.initForm();\n this.startLocalStorageWork();\n this.getParameters();\n this.codFormStepFive.controls['terms'].valueChanges.subscribe(changes => {\n this.termsCheckboxStatus = changes;\n if (!this.termsCheckboxStatus) this.errorMessage = 'Debe marcar la casilla de términos y condiciones.'\n })\n // if (this.userRole === 30 || this.userRole === 31 || this.userRole === 32) this.sendFormMsg = 'Editar COD';\n if (this.userRole === 30 || this.userRole === 31 || this.userRole === 32 ||\n this.userRole === 40 || this.userRole === 41 || this.userRole === 42 ||\n this.userRole === 50 || this.userRole === 51 || this.userRole === 52 ||\n this.userRole === 1\n ) this.isEditCod ? this.sendFormMsg = 'Editar COD' : this.sendFormMsg = 'Crear COD';\n if (changes['initialData']) {\n if (this.initialData != null) {\n if (this.initialData.student != null || this.initialData != null) {\n this.setDataFromPreviusCod();\n }else{\n this.setDataFromUserHistory();\n }\n }\n }\n }\n\n getParameters() {\n this.parameterService.getMarketingReasons().subscribe((response) => {\n this.marketingReasons = response.data;\n });\n this.parameterService.getStudyReasons().subscribe((response) => {\n this.studyReasons = response.data;\n });\n this.parameterService.getMulticulturalisms().subscribe((response) => {\n this.multiculturalities = response.data;\n });\n }\n\n initForm() {\n this.codFormStepFive = this.fb.group({\n marketing_reasons: ['', [Validators.required]],\n observation: [''],\n study_reasons: ['', [Validators.required]],\n terms: [false, [Validators.required]],\n disability: [''],\n multiculturalism_1: [false, []],\n multiculturalism_2: [false, []],\n multiculturalism_3: [false, []],\n multiculturalism_4: [false, []],\n multiculturalism_5: [false, []],\n multiculturalism_6: [false, []],\n multiculturalism_7: [false, []],\n health_regimen: ['', [Validators.required]],\n code_refers: [''],\n code_cod: [''],\n document_refers: [{ value: '', disabled: true }],\n name_refers: [{ value: '', disabled: true }],\n phone_refers: [{ value: '', disabled: true }],\n email_refers: [{ value: '', disabled: true }],\n });\n\n this.codFormStepFive.controls['marketing_reasons'].valueChanges.subscribe(change => {\n if (change === '1') {\n this.modalVisible = true;\n this.codFormStepFive.controls['code_refers'].setValidators([Validators.required]);\n this.codFormStepFive.controls['code_refers'].updateValueAndValidity();\n } else {\n this.codFormStepFive.controls['code_refers'].clearValidators();\n this.codFormStepFive.controls['code_refers'].updateValueAndValidity();\n this.codFormStepFive.controls['code_refers'].setValue(null);\n this.modalVisible = false;\n this.visbleReferred = false;\n }\n })\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(5, control.name);\n\n // Solución al bug del checkbox\n if (localStorageValue.control === 'terms') {\n let nextValue: boolean = localStorageValue.value === 'true' ? true : false;\n this.codFormStepFive.controls['terms'].setValue(nextValue);\n this.termsCheckboxStatus = nextValue;\n }\n // -------------------------- //\n\n this.codFormStepFive.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(5, control.name, this.codFormStepFive.controls[control.name].valueChanges);\n });\n\n this.controls.filter(control => control.description === 'Multiculturalismo').forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(5, control.name);\n let nextValue: boolean = localStorageValue.value === 'true' ? true : false;\n this.codFormStepFive.controls[control.name].setValue(nextValue);\n })\n }\n\n getCheckboxControl(): FormControl {\n return this.codFormStepFive.controls['terms'] as FormControl;\n }\n\n sendForm() {\n this.codFormStepFive.markAllAsTouched();\n if (this.codFormStepFive.invalid || this.termsCheckboxStatus === false) return;\n if (this.userRole == 30 || this.userRole == 31 || this.userRole == 32 ||\n this.userRole == 40 || this.userRole == 41 || this.userRole == 42 ||\n this.userRole == 50 || this.userRole == 51 || this.userRole == 52 ||\n this.userRole == 1) this.isEditCod ? this.action.emit('update') : this.action.emit('create');\n\n }\n\n cleanStorage(){\n sessionStorage.clear();\n this.startLocalStorageWork()\n }\n\n // Eventos del select\n selectMarketingReasons(marketingReasons: any) {\n if (marketingReasons !== '¿Cómo se enteró del programa?') {\n this.codFormStepFive.controls['marketing_reasons'].setValue(marketingReasons);\n } else {\n this.codFormStepFive.controls['marketing_reasons'].setValue(null);\n }\n }\n\n selectStudyReasons(studyReasons: any) {\n if (studyReasons !== 'Motivo') {\n this.codFormStepFive.controls['study_reasons'].setValue(studyReasons);\n } else {\n this.codFormStepFive.controls['study_reasons'].setValue(null);\n }\n }\n\n setDataFromPreviusCod() {\n this.codFormStepFive.controls['marketing_reasons'].setValue(this.initialData.aditional_information?.marketing_reasons);\n this.codFormStepFive.controls['study_reasons'].setValue(this.initialData.aditional_information?.study_reasons);\n this.codFormStepFive.controls['disability'].setValue(this.initialData.aditional_information?.disability);\n this.codFormStepFive.controls['health_regimen'].setValue(this.initialData.aditional_information?.health_regimen);\n this.codFormStepFive.controls['observation'].setValue(this.initialData.aditional_information?.observation);\n this.codFormStepFive.controls['code_refers'].setValue(this.isRenovation === false ? this.initialData.cod_referral?.user_referred.code : null);\n if (this.codFormStepFive.get('marketing_reasons')?.value == 1) {\n this.visbleReferred = true;\n // this.codFormStepFive.controls['code_refers'].setValue(this.initialData.cod_referral?.user_referred.code);\n this.codFormStepFive.controls['document_refers'].setValue(this.initialData.cod_referral?.user_referred.id_card);\n this.codFormStepFive.controls['name_refers'].setValue(this.initialData.cod_referral?.user_referred.name);\n this.codFormStepFive.controls['phone_refers'].setValue(this.initialData.cod_referral?.user_referred.phone_number);\n this.codFormStepFive.controls['email_refers'].setValue(this.initialData.cod_referral?.user_referred.email);\n }else{\n this.visbleReferred = false;\n this.codFormStepFive.controls['code_refers'].setValue(null);\n this.codFormStepFive.controls['document_refers'].setValue(null);\n this.codFormStepFive.controls['name_refers'].setValue(null);\n this.codFormStepFive.controls['phone_refers'].setValue(null);\n this.codFormStepFive.controls['email_refers'].setValue(null);\n }\n this.codFormStepFive.controls['code_cod'].setValue(this.initialData.code);\n }\n setDataFromUserHistory() {\n this.codFormStepFive.controls['marketing_reasons'].setValue(null);\n this.codFormStepFive.controls['study_reasons'].setValue(null);\n this.codFormStepFive.controls['disability'].setValue(null);\n this.codFormStepFive.controls['health_regimen'].setValue(null);\n this.codFormStepFive.controls['observation'].setValue(null);\n this.codFormStepFive.controls['code_refers'].setValue(null);\n this.codFormStepFive.controls['code_cod'].setValue(null);\n }\n\n cleanComponent(){\n this.resetLocalStorage(this.controls);\n this.codFormStepFive.reset();\n }\n\n referredUser(data: any){\n this.modalVisible = false;\n if (data) {\n this.visbleReferred = true;\n this.codFormStepFive.controls['code_refers'].setValue(data['code']);\n this.codFormStepFive.controls['document_refers'].setValue(data['id_card']);\n this.codFormStepFive.controls['name_refers'].setValue(data['name']);\n this.codFormStepFive.controls['phone_refers'].setValue(data['phone_number']);\n this.codFormStepFive.controls['email_refers'].setValue(data['email']);\n } else {\n this.visbleReferred = false;\n this.codFormStepFive.controls['code_refers'].setValue(null);\n this.codFormStepFive.controls['document_refers'].setValue(null);\n this.codFormStepFive.controls['name_refers'].setValue(null);\n this.codFormStepFive.controls['phone_refers'].setValue(null);\n this.codFormStepFive.controls['email_refers'].setValue(null);\n this.codFormStepFive.controls['marketing_reasons'].setValue(null);\n }\n }\n\n openModalReferred(){\n this.modalVisible = true;\n }\n\n\n}\n","<form autocomplete=\"off\" [formGroup]=\"codFormStepFive\" class=\"grid\">\n <div class=\"col-12 md:col-6\">\n <cod-modal-referred\n *ngIf=\"modalVisible\"\n [visibility]=\"modalVisible\"\n (userSelect)=\"referredUser($event)\"\n ></cod-modal-referred>\n\n <div class=\"container_referred flex flex-row justify-content-between align-items-end\">\n <div class=\"containe_select1\">\n <ipt-select\n [control]=\"codFormStepFive.controls['marketing_reasons']\"\n [initialValue]=\"codFormStepFive.controls['marketing_reasons'].value\"\n (eventSelect)=\"selectMarketingReasons($event)\"\n [data]=\"marketingReasons\"\n [defaultText]=\"'¿Cómo se enteró del programa?'\"\n ></ipt-select>\n </div>\n <p-button\n *ngIf=\"visbleReferred\"\n styleClass=\"p-button-sm w-max\"\n label=\"Cambiar Referido\"\n icon=\"pi pi-sync\"\n (onClick)=\"openModalReferred()\"\n ></p-button>\n </div>\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Discapacidad'\"\n [control]=\"codFormStepFive.controls['disability']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 md:col-6\">\n <ipt-select\n [control]=\"codFormStepFive.controls['study_reasons']\"\n [initialValue]=\"codFormStepFive.controls['study_reasons'].value\"\n (eventSelect)=\"selectStudyReasons($event)\"\n [data]=\"studyReasons\"\n [defaultText]=\"'Motivo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Régimen de salud'\"\n [control]=\"codFormStepFive.controls['health_regimen']\"\n ></ipt-input>\n </div>\n <div class=\"col-12\">\n <h3 *ngIf=\"visbleReferred\" class=\"referred_title\">Datos del referido</h3>\n <div *ngIf=\"visbleReferred\" class=\"referred_user_data\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"codFormStepFive.controls['document_refers']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codFormStepFive.controls['name_refers']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Teléfono'\"\n [control]=\"codFormStepFive.controls['phone_refers']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Email'\"\n [control]=\"codFormStepFive.controls['email_refers']\"\n ></ipt-input>\n </div>\n <span class=\"p-float-label\">\n <textarea\n id=\"float-input\"\n rows=\"4\"\n cols=\"30\"\n pInputTextarea\n formControlName=\"observation\"\n ></textarea>\n <label for=\"float-input\">Observaciones</label>\n </span>\n <div class=\"flex flex-wrap justify-content-between gap-2\">\n <div\n *ngFor=\"let option of multiculturalities; index as i\"\n class=\"field-checkbox mt-4 flex align-items-center\"\n >\n <mat-checkbox\n [formControlName]=\"'multiculturalism' + '_' + (i + 1)\"\n class=\"example-margin\"\n ></mat-checkbox>\n <label [for]=\"option.code\">{{ option.name }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 p-4 font-bold\">\n <p>\n * El estudiante o titular se comprometen a cancelar las cuotas\n establecidas en este contrato, los primeros 5 (cinco) días del mes. En\n caso de querer retirarse, deberá informar por escrito 30 (treinta) días\n antes y cancelar lo correspondiente hasta la fecha definida de retiro,\n para poder obtener su paz y salvo.\n </p>\n <br /><br />\n <div class=\"flex gap-2\">\n <mat-checkbox\n formControlName=\"terms\"\n class=\"example-margin\"\n ></mat-checkbox>\n <!-- <p-checkbox [formControl]=\"getCheckboxControl()\"></p-checkbox> -->\n <!-- <ipt-checkbox [control]=\"codFormStepFive.controls['terms']\" [checkboxOption]=\"termsCheckboxStatus\"></ipt-checkbox> -->\n <p>\n DECLARO HABER LEÍDO Y ACEPTO LOS TÉRMINOS Y CONDICIONES DE LAS POLÍTICAS\n ESTABLECIDAS EN LA INSTITUCIÓN.\n </p>\n </div>\n </div>\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span\n *ngIf=\"\n (codFormStepFive.invalid && codFormStepFive.touched) ||\n (!termsCheckboxStatus && codFormStepFive.touched)\n \"\n class=\"\n text-red-500\n font-bold\n text-center\n mt-1\n py-2\n bg-red-100\n w-full\n border-round-xl\n \"\n >{{ errorMessage }}</span\n >\n <button\n type=\"submit\"\n [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-success p-button-sm'\"\n (click)=\"sendForm()\"\n pButton\n [label]=\"sendFormMsg\"\n icon=\"pi pi-check\"\n></button>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport Swal from 'sweetalert2';\nimport { CreateCODRq, IUpdateCODRq } from '../../core/models/cod/cod-rq.model';\nimport { CommercialService } from '../../core/services/commercial-service/comercial.service';\nimport { BaseService } from '../../core/utils/base-service/base.service';\nimport { CodFormControls, Control } from '../logic/cod-form-controls';\nimport { LocalStorageCODService } from '../logic/local-storage-cod.service';\n@Component({\n selector: 'ipt-cod-form',\n templateUrl: './cod-form.component.html',\n styleUrls: []\n})\nexport class CodFormComponent implements OnChanges, OnDestroy {\n\n @Input() dataFromPreviusCodData?: any;\n @Input() courseSelect?: any;\n @Input() isNewCod!: boolean;\n @Input() editCod!: boolean;\n @Input() CourseSelectRenovation!:any;\n @Input() isRenovation!:boolean;\n\n @Output() okCreatedCOD = new EventEmitter<Boolean>();\n subscription?: Subscription;\n\n private allowedRoles: number[] = [\n 1, 30, 31, 32, 40, 41, 42, 50, 51, 52,\n ];\n\n public currentStep: number = 0;\n public formTitle: string = 'Formulario para creación del COD';\n public userRole: number;\n public formSteps: number = 5;\n public financingData?: any[];\n public isLoading: boolean = false;\n public loaderMessage: string = '';\n public codCreationSubscription: Subscription | null = null;\n\n constructor(\n private baseService: BaseService,\n private localStorageCOD: LocalStorageCODService,\n private codFormControls: CodFormControls,\n private commercialService: CommercialService\n ) {\n this.userRole = this.baseService.getUserRole();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['editCod'] && this.dataFromPreviusCodData) {\n if (this.editCod) {\n if (!this.dataFromPreviusCodData.edit_course_payment) {\n Swal.fire({\n title: 'Querido asesor',\n text: 'Solo puede editar Datos del estudiante',\n icon: 'warning'\n })\n }\n this.formTitle = 'Formulario para verificar y editar información del COD actual';\n } else if (this.dataFromPreviusCodData?.cod_renovation == false && this.editCod == false) {\n this.formTitle = 'Formulario para creación del COD';\n }else if(this.dataFromPreviusCodData.cod_renovation == true && this.editCod == false){\n this.formTitle = 'Formulario para la renovacion del COD';\n }\n }\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n allowedRole(): boolean {\n return this.allowedRoles.includes(this.userRole);\n }\n\n getCodbyCode() {\n // TODO: Traer COD por código y pintarlo\n }\n\n\n saveFinancingData(data: any[]) {\n if (data) {\n const dates: string[] = [];\n data.forEach(p => {\n const date = p[2];\n dates.push(date);\n })\n this.financingData = dates;\n }\n }\n\n getFormAction(action: string) {\n if (!this.financingData && this.localStorageCOD.getCodFormData(4, 'payment_method') === '1') {\n Swal.fire({\n title: 'Querido asesor',\n text: 'Debe hacer el cálculo de las cuotas en el paso 4',\n icon: 'error'\n })\n return;\n }\n const totalData: any[] = [];\n\n this.subscription = this.codFormControls.getControlValues().subscribe((controls) => {\n for (let i = 1; i <= this.formSteps; i++) {\n let controlsByStep: Control[] = controls[i-1];\n controlsByStep.forEach(control => {\n let value = this.localStorageCOD.getCodFormData(i, control.name);\n // Cambiar True/False del multiculturalismo 1/0\n if (value === 'false' && control.description === 'Multiculturalismo') {\n totalData.push({\n control: control.name,\n isRequired: control.required,\n value: '0',\n description: control.description\n })\n } else if (value === 'true' && control.description === 'Multiculturalismo') {\n totalData.push({\n control: control.name,\n isRequired: control.required,\n value: '1',\n description: control.description\n })\n } else {\n totalData.push({\n control: control.name,\n isRequired: control.required,\n value,\n description: control.description\n })\n }\n });\n }\n\n // Validar errores\n for (let i = 0; i < totalData.length; i++) {\n const element = totalData[i];\n if (!element.value && element.isRequired) {\n Swal.fire({\n title: 'Error Form Action Validate Error',\n text: `Revisar el campo: \"${element.description}\"`,\n icon: 'error'\n });\n break;\n }\n }\n\n if (action === 'create') this.createCOD(totalData);\n if (action === 'update') this.updateCOD(totalData);\n })\n\n this.subscription.unsubscribe();\n\n }\n\n updateCOD(totalData: any[]) {\n if (this.codCreationSubscription && !this.codCreationSubscription.closed) {\n return;\n }\n this.isLoading = true;\n this.loaderMessage = 'Editando COD, espere un momento'\n let request: IUpdateCODRq = this.getUpdateCOD(totalData);\n this.commercialService.updateCOD(request).subscribe({\n next: (response: any) => {\n if (response.message.code === 1) {\n this.isLoading = false;\n this.loaderMessage = '';\n Swal.fire({\n title: 'Perfecto!',\n text: 'El COD ha sido Editado exitosamente.',\n icon: 'success'\n })\n this.localStorageCOD.clearData();\n this.okCreatedCOD.emit(true);\n } else if (response.message.code === 4) {\n this.isLoading = false;\n this.loaderMessage = '';\n const errorMessages = (response.data.errors as any[]).map(error => `- ${error.message}`).join('<br>');\n\n Swal.fire({\n title: 'Revisar lo seleccionado en los campos',\n html: `${errorMessages}`,\n icon: 'warning'\n });\n } else {\n this.isLoading = false;\n this.loaderMessage = '';\n\n Swal.fire({\n title: 'Warning!',\n text: response.message.message,\n icon: 'error'\n })\n }\n },\n error: (err: any) => {\n this.isLoading = false;\n this.loaderMessage = '';\n Swal.fire({\n title: 'Error in cod creation',\n text: err.message,\n icon: 'error'\n })\n },\n complete: () => {\n this.codCreationSubscription = null;\n }\n })\n\n }\n\n createCOD(totalData: any[]) {\n if (this.codCreationSubscription && !this.codCreationSubscription.closed) {\n return;\n }\n this.isLoading = true;\n this.loaderMessage = 'Creando COD, espere un momento'\n let request: CreateCODRq = this.getCreateCOD(totalData);\n this.commercialService.createCOD(request).subscribe({\n next: (response: any) => {\n if (response.message.code === 1) {\n this.isLoading = false;\n this.loaderMessage = '';\n Swal.fire({\n title: 'Perfecto!',\n text: 'El COD ha sido creado exitosamente.',\n icon: 'success'\n })\n this.localStorageCOD.clearData();\n this.okCreatedCOD.emit(true);\n }else if(response.message.code === 3){\n let alertHtml = `\n <div class=\"my-custom-alert\">\n <h2>Warning!</h2>\n `;\n if (!response.data.warning.average_score) {\n alertHtml += `<p>No pasó el promedio final</p><br>`;\n }\n if (!response.data.warning.non_attendance) {\n alertHtml += `<p>Tiene más del 25% de inasistencias</p><br>`;\n }\n if (!response.data.warning.outstanding_payments) {\n alertHtml += `<p>Tiene pagos pendientes</p>`;\n }\n alertHtml += `</div>`;\n Swal.fire({\n html: alertHtml,\n icon: 'error',\n // showCancelButton: true,\n confirmButtonText: 'Confirmar',\n // cancelButtonText: 'Cancelar',\n })\n this.isLoading = false;\n } else if (response.message.code === 4) {\n this.isLoading = false;\n this.loaderMessage = '';\n const errorMessages = (response.data.errors as any[]).map(error => `- ${error.message}`).join('<br>');\n\n Swal.fire({\n title: 'Revisar lo seleccionado en los campos',\n html: `${errorMessages}`,\n icon: 'warning'\n });\n } else {\n this.isLoading = false;\n this.loaderMessage = '';\n\n Swal.fire({\n title: 'Warning!',\n text: response.message.message,\n icon: 'error'\n })\n }\n },\n error: (err: any) => {\n this.isLoading = false;\n this.loaderMessage = '';\n Swal.fire({\n title: 'Error in cod creation',\n text: err.message,\n icon: 'error'\n })\n },\n complete: () => {\n this.codCreationSubscription = null;\n }\n })\n\n }\n\n getCreateCOD(data: any[]): CreateCODRq {\n let request: CreateCODRq = {\n token: this.baseService.getUserToken(),\n student_name: data.filter(data => data.control === 'student_name')[0].value,\n student_last_name: data.filter(data => data.control === 'student_last_name')[0].value,\n nickname: data.filter(data => data.control === 'nickname')[0].value,\n student_email: data.filter(data => data.control === 'student_email')[0].value,\n student_phone_indicative: data.filter(data => data.control === 'student_phone_indicative')[0].value,\n student_phone_number: data.filter(data => data.control === 'student_phone_number')[0].value,\n gender: data.filter(data => data.control === 'gender')[0].value,\n birthdate: data.filter(data => data.control === 'birthdate')[0].value,\n city: data.filter(data => data.control === 'city')[0].value,\n student_id_card_type: data.filter(data => data.control === 'student_id_card_type')[0].value,\n student_id_card: data.filter(data => data.control === 'student_id_card')[0].value,\n password: data.filter(data => data.control === 'password')[0].value,\n needAtendant: data.filter(data => data.control === 'needAtendant')[0].value,\n parent_name: data.filter(data => data.control === 'parent_name')[0].value,\n parent_last_name: data.filter(data => data.control === 'parent_last_name')[0].value,\n parent_id_card_type: data.filter(data => data.control === 'parent_id_card_type')[0].value,\n parent_id_card: data.filter(data => data.control === 'parent_id_card')[0].value,\n parent_phone_indicative: data.filter(data => data.control === 'parent_phone_indicative')[0].value,\n parent_phone_number: data.filter(data => data.control === 'parent_phone_number')[0].value,\n parent_occupation: data.filter(data => data.control === 'parent_occupation')[0].value,\n parent_office_address: data.filter(data => data.control === 'parent_address')[0].value,\n social_stratum: data.filter(data => data.control === 'stratum')[0].value,\n civil_status: data.filter(data => data.control === 'civil_status')[0].value,\n educational_level: data.filter(data => data.control === 'grade')[0].value,\n student_address: data.filter(data => data.control === 'student_address')[0].value,\n student_occupation: data.filter(data => data.control === 'student_occupation')[0].value,\n disability: data.filter(data => data.control === 'disability')[0].value,\n health_regimen: data.filter(data => data.control === 'health_regimen')[0].value,\n marketing_reasons: data.filter(data => data.control === 'marketing_reasons')[0].value,\n study_reasons: data.filter(data => data.control === 'study_reasons')[0].value,\n observation: data.filter(data => data.control === 'observation')[0].value,\n multiculturalism_1: data.filter(data => data.control === 'multiculturalism_1')[0].value,\n multiculturalism_2: data.filter(data => data.control === 'multiculturalism_2')[0].value,\n multiculturalism_3: data.filter(data => data.control === 'multiculturalism_3')[0].value,\n multiculturalism_4: data.filter(data => data.control === 'multiculturalism_4')[0].value,\n multiculturalism_5: data.filter(data => data.control === 'multiculturalism_5')[0].value,\n multiculturalism_6: data.filter(data => data.control === 'multiculturalism_6')[0].value,\n availible_courses: data.filter(data => data.control === 'availible_courses')[0].value,\n course_type: data.filter(data => data.control === 'course_type')[0].value,\n agreement_by_category: data.filter(data => data.control === 'agreement_by_category')[0].value,\n english_level: data.filter(data => data.control === 'english_level')[0].value,\n payment_method: data.filter(data => data.control === 'payment_method')[0].value,\n quota_times: data.filter(data => data.control === 'quota_times')[0].value,\n payment_date: data.filter(data => data.control === 'payment_date')[0].value,\n payment_dates: this.financingData!,\n program_price: data.filter(data => data.control === 'program_price')[0].value,\n total_price: data.filter(data => data.control === 'total_price')[0].value,\n paid_level: data.filter(data => data.control === 'paid_level')[0].value,\n terms: data.filter(data => data.control === 'terms')[0].value,\n re_password: data.filter(data => data.control === 're_password')[0].value,\n age: data.filter(data => data.control === 'age')[0].value,\n country: data.filter(data => data.control === 'country')[0].value,\n state: data.filter(data => data.control === 'state')[0].value,\n academic_plan: data.filter(data => data.control === 'academic_plan')[0].value,\n code_refers: data.filter(data => data.control === 'code_refers')[0].value,\n }\n return request;\n }\n\n getUpdateCOD(data: any[]): IUpdateCODRq {\n let request: IUpdateCODRq = {\n token: this.baseService.getUserToken(),\n student_name: data.filter(data => data.control === 'student_name')[0].value,\n student_last_name: data.filter(data => data.control === 'student_last_name')[0].value,\n nickname: data.filter(data => data.control === 'nickname')[0].value,\n student_email: data.filter(data => data.control === 'student_email')[0].value,\n student_phone_indicative: data.filter(data => data.control === 'student_phone_indicative')[0].value,\n student_phone_number: data.filter(data => data.control === 'student_phone_number')[0].value,\n gender: data.filter(data => data.control === 'gender')[0].value,\n birthdate: data.filter(data => data.control === 'birthdate')[0].value,\n city: data.filter(data => data.control === 'city')[0].value,\n student_id_card_type: data.filter(data => data.control === 'student_id_card_type')[0].value,\n student_id_card: data.filter(data => data.control === 'student_id_card')[0].value,\n needAtendant: data.filter(data => data.control === 'needAtendant')[0].value,\n parent_name: data.filter(data => data.control === 'parent_name')[0].value,\n parent_last_name: data.filter(data => data.control === 'parent_last_name')[0].value,\n parent_id_card_type: data.filter(data => data.control === 'parent_id_card_type')[0].value,\n parent_id_card: data.filter(data => data.control === 'parent_id_card')[0].value,\n parent_phone_indicative: data.filter(data => data.control === 'parent_phone_indicative')[0].value,\n parent_phone_number: data.filter(data => data.control === 'parent_phone_number')[0].value,\n parent_occupation: data.filter(data => data.control === 'parent_occupation')[0].value,\n parent_office_address: data.filter(data => data.control === 'parent_address')[0].value,\n social_stratum: data.filter(data => data.control === 'stratum')[0].value,\n civil_status: data.filter(data => data.control === 'civil_status')[0].value,\n educational_level: data.filter(data => data.control === 'grade')[0].value,\n student_address: data.filter(data => data.control === 'student_address')[0].value,\n student_occupation: data.filter(data => data.control === 'student_occupation')[0].value,\n disability: data.filter(data => data.control === 'disability')[0].value,\n health_regimen: data.filter(data => data.control === 'health_regimen')[0].value,\n marketing_reasons: data.filter(data => data.control === 'marketing_reasons')[0].value,\n study_reasons: data.filter(data => data.control === 'study_reasons')[0].value,\n observation: data.filter(data => data.control === 'observation')[0].value,\n multiculturalism_1: data.filter(data => data.control === 'multiculturalism_1')[0].value,\n multiculturalism_2: data.filter(data => data.control === 'multiculturalism_2')[0].value,\n multiculturalism_3: data.filter(data => data.control === 'multiculturalism_3')[0].value,\n multiculturalism_4: data.filter(data => data.control === 'multiculturalism_4')[0].value,\n multiculturalism_5: data.filter(data => data.control === 'multiculturalism_5')[0].value,\n multiculturalism_6: data.filter(data => data.control === 'multiculturalism_6')[0].value,\n availible_courses: data.filter(data => data.control === 'availible_courses')[0].value,\n course_type: data.filter(data => data.control === 'course_type')[0].value,\n agreement_by_category: data.filter(data => data.control === 'agreement_by_category')[0].value,\n english_level: data.filter(data => data.control === 'english_level')[0].value,\n payment_method: data.filter(data => data.control === 'payment_method')[0].value,\n quota_times: data.filter(data => data.control === 'quota_times')[0].value,\n payment_date: data.filter(data => data.control === 'payment_date')[0].value,\n payment_dates: this.financingData!,\n program_price: data.filter(data => data.control === 'program_price')[0].value,\n total_price: data.filter(data => data.control === 'total_price')[0].value,\n paid_level: data.filter(data => data.control === 'paid_level')[0].value,\n terms: data.filter(data => data.control === 'terms')[0].value,\n age: data.filter(data => data.control === 'age')[0].value,\n country: data.filter(data => data.control === 'country')[0].value,\n state: data.filter(data => data.control === 'state')[0].value,\n academic_plan: data.filter(data => data.control === 'academic_plan')[0].value,\n code_refers: this.parseNumber(data.filter(data => data.control === 'code_refers')[0].value),\n code_cod: data.filter(data => data.control === 'code_cod')[0].value,\n }\n return request;\n }\n\n changeStep(step: number) {\n this.currentStep = step;\n }\n\n parseNumber(value: any): number | null {\n const parsedValue = parseFloat(value);\n return isNaN(parsedValue) ? null : parsedValue;\n }\n}\n","<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && !dataFromPreviusCodData?.cod_renovation\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && dataFromPreviusCodData?.cod_renovation == true\" class=\"p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"background-color:#1da750; color: white;\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" [courseSelectRenovation]=\"CourseSelectRenovation\" [isRenovation]=\"isRenovation\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" [isRenovation]=\"isRenovation\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comunícate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MessageService } from 'primeng/api';\nimport { TabViewModule } from 'primeng/tabview';\nimport { ComponentsModule } from '../components/components.module';\nimport { CodDocumentsSectionComponent } from './cod-documents-section/cod-documents-section.component';\n\nimport { CodFormComponent } from './cod-form/cod-form.component';\nimport { CodFormStepFiveComponent } from './steps/cod-form-step-five/cod-form-step-five.component';\nimport { CodFormStepFourComponent } from './steps/cod-form-step-four/cod-form-step-four.component';\nimport { CodFormStepOneComponent } from './steps/cod-form-step-one/cod-form-step-one.component';\nimport { CodFormStepTwoComponent } from './steps/cod-form-step-two/cod-form-step-two.component';\nimport { CodFormStepThreeComponent } from './steps/cod-form-step-three/cod-form-step-three.component';\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { TableModule } from 'primeng/table';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { ModalReferredComponent } from './modal-referred/modal-referred.component';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@NgModule({\n imports: [\n CommonModule,\n TabViewModule,\n ComponentsModule,\n MatCheckboxModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n InputTextareaModule,\n InputTextModule\n ],\n exports: [\n CodFormComponent,\n CodDocumentsSectionComponent,\n CodFormStepOneComponent,\n CodFormStepTwoComponent,\n CodFormStepThreeComponent,\n CodFormStepFourComponent,\n CodFormStepFiveComponent,\n ],\n declarations: [\n CodFormComponent,\n CodDocumentsSectionComponent,\n CodFormStepOneComponent,\n CodFormStepTwoComponent,\n CodFormStepThreeComponent,\n CodFormStepFourComponent,\n CodFormStepFiveComponent,\n ModalReferredComponent,\n ],\n providers: [\n MessageService\n ],\n})\nexport class CodModule { }\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\n@Injectable()\nexport class RedirectGuard implements CanActivate {\n constructor(private router: Router) {}\n\n canActivate( route: ActivatedRouteSnapshot, state: RouterStateSnapshot ): boolean {\n window.location.href = route.data['externalUrl'];\n return true;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SwitchService {\n\n constructor() { }\n\n $modal = new EventEmitter<any>();\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n CopyExamRq,\n CreateAnswerRq,\n CreateQuestionRq,\n CreateSectionRq,\n CreateSectionWithAllRq,\n Exam,\n GetAllExamsRq,\n GetAllSectionsRq,\n GetQuestionsBySectionRq,\n getQuestionsBySectionsRq,\n UpdateAnswerRq,\n UpdateExamRq,\n UpdateExamStatusRq,\n UpdateQuestionRq,\n UpdateQuestionStateRq,\n UpdateSectionMediaRq,\n UpdateSectionRq,\n UpdateSectionStateRq,\n} from '../../models/test/test.model';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TestService extends IPTGeneralService{\n private SERVICE_URL = 'test/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n // ---------------------- EXÁMENES ---------------------- //\n createExam(exam: Exam): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/exam';\n this.generateRequestParams(exam);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n //Este servicio solo trae todos los examenes pero del autor que los hizo \n getAllExams(params: GetAllExamsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/all/exam';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateExam(params: UpdateExamRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/exam';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n updateExamStatus(params: UpdateExamStatusRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/exam/status';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n copyExam(params: CopyExamRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'copy/exam';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n getExamByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/exam/by/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n // ---------------------- SECCIONES ---------------------- //\n createSectionWithAll(params: CreateSectionWithAllRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/section/with/all';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n createSection(params: CreateSectionRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/section';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllSections(params: GetAllSectionsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/all/sections';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateSection(params: UpdateSectionRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/section';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n updateSectionMedia(params: UpdateSectionMediaRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/section/media';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateSectionState(params: UpdateSectionStateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/section/state';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n getSectionsByExam(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/sections/by/exam/' + code;\n return this.http.get(serviceUrl);\n }\n\n // ---------------------- PREGUNTAS ---------------------- //\n createQuestion(params: CreateQuestionRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/question';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateQuestion(params: UpdateQuestionRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/question';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n getQuestionsBySections(params: getQuestionsBySectionsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/questions/by/sections';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getQuestionsBySection(params: GetQuestionsBySectionRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/questions/by/section';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n // ---------------------- RESPUESTAS ---------------------- //\n createAnswer(params: CreateAnswerRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/answer';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateAnswer(params: UpdateAnswerRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/answer';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n getAnswersByQuestion(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/answers/by/question/' + code;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n updateQuestionState(params: UpdateQuestionStateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/question/state';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getStrategyByUserCommercialRq, CreateObservationsRq } from '../../models/marketing/marketing.model';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class MarketingService extends IPTGeneralService{\n\n private SERVICE_URL = 'commercial/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getStrategyByUserCommercial(user: getStrategyByUserCommercialRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/contact/strategy/byaviser';\n this.generateRequestParams(user);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getObservationsContact(codeContact: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/observation/strategy/bycode/' + codeContact;\n return this.http.get(serviceUrl);\n }\n\n createObservations(params: CreateObservationsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/contact/observation/create';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getUserStatistics(userToken: getStrategyByUserCommercialRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/statistics';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getTopAdviser(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/topadviser';\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n getMovementStatus(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/movements/status';\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n getgroupSignupStatus(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/group/signup';\n return this.http.get(serviceUrl, this.httpOptions);\n }\n obtainAllTypeSocialNetworks(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/type/social/network';\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getdiscountAllRq, DiscountRq, DiscountUpdateRq, IObtainAllCoursewallet, IAssignRequestRq, IObtainAvailableCourseRs, IGetCodByPaymentPlanRq, IUpdateAmountCodPaymentsRq, IParamsUpdateDateCodPaymentsRq, ICancelStudentReceiptRq, ICancelledReceiptByDateRq, IPaymentsReceivedByUserRq, IObtainCourseByCoodDiffParamRq, NameCommonExpenses, IObtainPaymentTranHistoryRq } from '../../models/budget/budget.model';\nimport { IFullCodStudentOverdueByCoordinatorRq, IPaymentOverdueByCoordinatorCourseRq, IPaymentOverdueByCoordinatorRq, PaymentBillRq, PaymentBillRq2, PriceByTypeServiceRq } from '../../models/payment/payment-rq.model';\nimport { IgetCoursesFinishAndunassignedRq } from '../../models/reports/reports.model';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BudgetService extends IPTGeneralService{\n\n private SERVICE_URL = 'budget/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getAllDiscount(user: getdiscountAllRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/discounts/coupon/all';\n this.generateRequestParams(user);\n return this.http.post(serviceUrl,this.httpOptions);\n }\n createDiscount(params: DiscountRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/discount/coupon/create';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n updateDiscount(params: DiscountUpdateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/discount/coupon/update';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getPaymentStudentsByCode(codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/cod/student/by/code/' + codeStudent;\n return this.http.get(serviceUrl);\n }\n\n getPaymentWalletByCampus(codeCampus: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/wallet/by/campus/' + codeCampus;\n return this.http.get(serviceUrl);\n }\n\n paymentBillDues(params: PaymentBillRq2): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/bill/register/dues';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n paymentBillServices(params: PaymentBillRq2): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/bill/register/services';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getPaymentBillAll(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/bill/canceled/all';\n return this.http.get(serviceUrl);\n }\n\n getPaymentBillByCode(codePayment: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/bill/canceled/by/code/' + codePayment;\n return this.http.get(serviceUrl);\n }\n\n getPaymentBillByStudent(codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/bill/canceled/by/student/' + codeStudent;\n return this.http.get(serviceUrl);\n }\n\n getPriceByTypeService(params: PriceByTypeServiceRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/price/by/type/service';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCoursesByCoordinator(params: IObtainAllCoursewallet): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/wallet/user/by/coordinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getWalletByCodeUser (codeUser: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/wallet/by/code/user/' + codeUser;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n getpaymentBillByWalletCode (codeWallet: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/payment/bill/by/wallets/by/' + codeWallet;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n getpaymentBillIncome (codeWallet: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/bill/wallets/code/filter/income/' + codeWallet;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n getpaymentBillEgress (codeWallet: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/bill/wallets/code/filter/egress/' + codeWallet;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n getPaymentOverdueStudent(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/overdue/all/student';\n return this.http.get(serviceUrl);\n }\n\n getDayPaymentOverdueStudent(codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/day/payment/overdue/student/by/code/' + codeStudent;\n return this.http.get(serviceUrl);\n }\n\n getPaymentOverdueCourseByCoordinator(params: IPaymentOverdueByCoordinatorRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/overdue/course/by/coordinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getPaymentOverdueStudentByCoordinator(params: IPaymentOverdueByCoordinatorRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/overdue/student/by/coodinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getPaymentOverdueStudentByCoordinatorAndCourseCode(params: IPaymentOverdueByCoordinatorCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/overdue/student/by/coodinatorcourse';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getObtainCodStudentByCoordinator(params: IFullCodStudentOverdueByCoordinatorRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/stundent/by/coordinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCoursesFinishAndunassigned(params: IgetCoursesFinishAndunassignedRq): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'get/course/by/user/budget';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n // AssingCourse(params: any): Observable<any> {\n // let serviceUrl = this.SERVICE_URL + 'post/course/by/code/user/budget/assign';\n // this.generateRequestParams(params);\n // return this.http.post(serviceUrl, this.httpOptions);\n // }\n AssingCourse(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/course/assign/detail/by/adviser/budget';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n AssingCourses(params: IAssignRequestRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/user/budget/assign';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainAllAvailableCoursesByStudent(params: IObtainAvailableCourseRs): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/available/courses/by/student';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainObservationByCodStudent(params: IFullCodStudentOverdueByCoordinatorRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/observarion/by/cod/studet';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n adminStudentByCoordinator(params: IFullCodStudentOverdueByCoordinatorRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/admin/student/by/coordinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodbyPaymentPlanRq(params: IGetCodByPaymentPlanRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/stundent/payments/by/code/user';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n UpdateAmountCodPayments(params: IUpdateAmountCodPaymentsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/change/amount/cod/payments';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n UpdateDateCodPayments(params: IParamsUpdateDateCodPaymentsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/change/date/payment/cod';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentReceiptByCode (codeReceipt: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/payment/receipt/by/code/' + codeReceipt;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentsForStudentCode (codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/payments/for/student/code/' + codeStudent;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n obtainStudentPaymentsByGroupingCod (codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/student/payments/by/grouping/cod/' + codeStudent;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n obtainReceiptByCode (codeReceipt: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/receipt/by/code/' + codeReceipt;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentsForReceiptCode (codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/payments/for/receipt/code/' + codeStudent;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n canelStudentReceipt(params: ICancelStudentReceiptRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/cancel/student/receipt';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCancelledReceiptsByDate(params: ICancelledReceiptByDateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/cancelled/receipts/by/date';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentreceivedByUser(params: IPaymentsReceivedByUserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/payments/received/by/user';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getTotalCashReceiptsByDateAndUser(params: IPaymentsReceivedByUserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/total/cash/receipts/by/date/and/user';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCoursesByCoordAndDiffParam(params: IObtainCourseByCoodDiffParamRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/course/wallet/by/coordinator/diffetent/param';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllCommonExpenses(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/common/expenses/all';\n return this.http.get(serviceUrl);\n }\n createCommmonExpenses(param: NameCommonExpenses): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/common/expenses/create';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n obtainCodAndStatusApprovedLevelByGroup(param: NameCommonExpenses): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/student/status/approved/by/group';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainStudentPaymentTransactionHistoryByCourse(param: IObtainPaymentTranHistoryRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/student/payment/transaction/history/by/course';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentTransactionHistoryByCod(param: IObtainPaymentTranHistoryRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/payment/transaction/history/by/cod';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ClassroomByIdCalendarRq, ClassroomByTypeUserRq, ClassroomModalityRq, ClassroomStudentRq, IObatinRoomByModalityCampusRq } from '../../models/classroom/classroom-rq.model';\n\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ClassroomService extends IPTGeneralService{\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getClassroomsByModality(params: ClassroomModalityRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/classroom/by/modality';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n obtainRoomByModalityAndCampus(params: IObatinRoomByModalityCampusRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/rooms/by/modality/and/location';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getClassroomByIdCalendar(params: ClassroomByIdCalendarRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/classroom/by/idcalendar';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getAllClassroomByTypeUser(params: ClassroomByTypeUserRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/classroom/by/user';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getClassroomByStudent(params: ClassroomStudentRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/classroom/by/student';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ActivityService extends IPTGeneralService{\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getActivityByCourse(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/activities/by/course/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getNoticesByCourse(codeCourse: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/notices/by/course/code/' + codeCourse;\n return this.http.get(serviceUrl);\n }\n\n getUnitsByActivity(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/units/by/activity/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getElementsByUnit(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/element/by/unit/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourseTeacherByToken(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/teacher/by/token';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllTypeResource(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/type/resource/template';\n return this.http.get(serviceUrl);\n }\n\n getAllTypeElement(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/type/element/template';\n return this.http.get(serviceUrl);\n }\n\n getElementsByUnitNew(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/element/by/unit/code/new';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateCourseByCronogram(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/update/course/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getTemplateCourseByCourse(codeCourse: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/template/course/by/course/code/' + codeCourse;\n return this.http.get(serviceUrl);\n }\n\n saveMagnageActivity(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/manage/activities/by/course/element';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n postNotesActivityH5P(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/activity/h5p/notes';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getMagnageActivity(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/template/admin/by/course/element';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getNoteActivityH5P(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/note/activity/h5p';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { GetCourseByTypeRq, GetStudentByCourse, GetLastStudentCodRq, GetStudentByTeacherRq, GetAllStudentByTeacherRq, ClassRoomRQI, IManageCreatedScherduleEventsRq, IParamsObtainCoursesByTypeCourseInCreatedCoursesRs } from '../../models/academic/academic.component';\nimport { UserTokenRq } from '../../models/user/user-rq.model';\nimport { GetStudentsByCourseRq } from '../../models/student/student.interface';\nimport { GetCodByStudentCourseRq } from '../../models/cod/cod-rq.model';\nimport { IgetCodBcourseByModalityAndDisponibilityRq, IgetCodBcourseByModalityAndLevelAndCourseTypeRq } from '../../models/course/course-rq.model';\nimport { IObtainCoursesByDifferentParametersRq, IgetCodBcourseByModalityAndStatusAndLevelInglishRq } from '../../models/course/courses.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AcademicService extends IPTGeneralService{\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getCourseByType(params: GetCourseByTypeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/type';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getStudentByCourse(params: GetStudentByCourse): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/students';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainLastStudentCod(params: GetLastStudentCodRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/last/student/cod/by/student';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodGenDataStudent(codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/general/data/student/by/code/' + codeStudent;\n return this.http.get(serviceUrl);\n }\n\n getAllCoursesInitialized(params: UserTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/all/courses/initialized';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getStudentByTeacher(params: GetStudentByTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/students/by/teacher';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllStudentByTeacher(params: GetAllStudentByTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/students/by/teacher';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllStudentByCourse(params: GetStudentsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/students/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainStudentsByTeacher(params: GetStudentByTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/students/by/teacher';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllCodActiveByCourse(params: GetStudentsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/cod/active/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n createClassroom(params: ClassRoomRQI): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/create/classroom';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodByStudentAndCourse(params: GetCodByStudentCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/by/student/and/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodBcourseByModalityAndDisponibility(params: IgetCodBcourseByModalityAndDisponibilityRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/obtain/by/modality';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodBcourseByModalityAndStatusAndLevelInglish(params: IgetCodBcourseByModalityAndStatusAndLevelInglishRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/obtain/by/modality/status';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n manageCreatedScherduleEvents(params: IManageCreatedScherduleEventsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/manage/created/schedule/events';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCoursesByDifferentParameters(params: IObtainCoursesByDifferentParametersRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/courses/by/different/parameters';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getCodBcourseByModalityAndlevelEnglishAndCourseType(params: IgetCodBcourseByModalityAndLevelAndCourseTypeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/courses/by/level/and/type/course/renovation/modality';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCoursesTheoryByDifferentParameters(params: IObtainCoursesByDifferentParametersRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/courses/theory/by/different/parameters';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCourseTheoryByCode(courseCode: number): Observable<any> {\n let serviceUrl = `${this.SERVICE_URL}obtain/course/theory/${courseCode}`;\n return this.http.get<any>(serviceUrl);\n }\n\n obtainCoursesTheoryByDiffParametersForNotes(params: IObtainCoursesByDifferentParametersRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/courses/theory/by/diffparameters/for/notes';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCoursesByTypeCoursesInCreatdCourseRs(params: IParamsObtainCoursesByTypeCourseInCreatedCoursesRs): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/course/by/plan/academic/type/course/modality';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainAllCodAirByCourse(params: GetStudentsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/all/cod/air/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Response } from '../../models/response/response.interface';\nimport { Observable } from 'rxjs';\nimport { AddEventByCourseRq, CourseAttendance, GetEventByCodeRq, GetEventsByCourseCodeRq, GetNotAttendancesByCodRq, IRegisterNewAttendanceRq, IServiceAllDataAttendanceRq, IUpdateAttendacenByCodeRq, RegisterNewAttendanceByEventRq } from '../../models/attendance/attendance.interface';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AttendanceService extends IPTGeneralService{\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n addEventByCourseRq(params: AddEventByCourseRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/event/by/course`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getEventsByCourseCode(params: GetEventsByCourseCodeRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/obtain/events/by/course_code`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getEventByCode(params: GetEventByCodeRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/obtain/event/by/code`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n registerNewAttendanceByEvent(params: RegisterNewAttendanceByEventRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}register/attendance/by/event`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getAttendaceByCourse(courseCode: number): Observable<CourseAttendance> {\n let serviceUrl = `${this.SERVICE_URL}post/obtain/attendances/by/course/${courseCode}`;\n return this.http.get<CourseAttendance>(serviceUrl);\n }\n\n getAttendaceByCourseAssigned(courseCode: number): Observable<CourseAttendance> {\n let serviceUrl = `${this.SERVICE_URL}obtain/attendances/by/course/assigned/${courseCode}`;\n return this.http.get<CourseAttendance>(serviceUrl);\n }\n\n getCODCodeByStudentCode(studentCode: number) {\n let serviceUrl = `${this.SERVICE_URL}get/cod_code/by/student_code/${studentCode}`;\n return this.http.get<any>(serviceUrl);\n }\n\n getAttendanceHistoryByStudent(token: string, cod_code: number): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/obtain/attendance/history/by/student`;\n this.generateRequestParams({token, cod_code});\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getAllNotAttendancesByCod(params: GetNotAttendancesByCodRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}get/all/not/attendances/by/cod`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getNotAttendancesOfLastWeekByCod(params: GetNotAttendancesByCodRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}get/all/not/attendances/lastweek/by/cod`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getAllAttendaceByCourse(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}get/all/data/attendances/by/course/${courseCode}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n newAttendanceByEvent(params: IRegisterNewAttendanceRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/register/new/attendance/by/event`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n obtainAttendancesStustudentByCourse(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}obtain/attendances/students/by/course/${courseCode}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n obtainAttendancessByCourse(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}obtain/attendances/by/course/${courseCode}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n obtainAttendancessByAssigned(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}obtain/attendances/by/assigned/${courseCode}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n obtainCourseEventByCode(code: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}obtain/course/event/by/code/${code}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n obtainFullDataAttendanceByCode(code: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}obtain/full/data/attendance/by/code/${code}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n UpdateIndividualAttendance(params: IUpdateAttendacenByCodeRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}update/individual/attendance/by/code`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n exportExcelAttendance(codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'dowload/excel/attendances/students/by/course/' + codeStudent;\n return this.http.get(serviceUrl);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { GetCertificate } from '../../models/academic/academic.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CertificateService extends IPTGeneralService{\n private SERVICE_URL = 'certificates/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getCertificate(params: GetCertificate): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/kids';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCertificateApiUrl(): string {\n return this.SERVICE_URL + 'post/certificate';\n }\n\n getCertificatesApiUrl(): string {\n return this.SERVICE_URL + 'post/certificates';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserEktService extends IPTGeneralService{\n private SERVICE_URL = 'ekt/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getAllUserEkt(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/users/1161419';\n return this.http.get(serviceUrl);\n }\n\n getAllAnnouncementByUser(codeUser: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/announcement/by/user/' + codeUser;\n return this.http.get(serviceUrl);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CourseService } from './services/course-service/course-service.model';\nimport { ParameterService } from './services/parameters-service/parameters.service';\nimport { RedirectGuard } from './utils/route-service/route.service';\nimport { StorageService } from './services/storage-service/storage-service';\nimport { SwitchService } from './services/switch-service/switch.service';\nimport { UserService } from './services/user-service/user-service';\nimport { BaseService } from './utils/base-service/base.service';\nimport { TestService } from './services/test-service/test.service';\nimport { MarketingService } from './services/marketing-service/marketing-service';\nimport { BudgetService } from './services/budget-service/budget-service';\nimport { ClassroomService } from './services/classroom-service/classroom-service.service';\nimport { ActivityService } from './services/activity-service/activity.service';\nimport { CommercialService } from './services/commercial-service/comercial.service';\nimport { AcademicService } from './services/academic-service/academic.service';\nimport { AttendanceService } from './services/attendance-service/attendance.service';\nimport { CalendarService } from './services/calendar-service/calendar.service';\nimport { CertificateService } from './services/certificate-service/certificate.service';\nimport { UserEktService } from './services/ekt-service/userekt.service';\nimport { CopiesService } from './services/copies.service';\n\n@NgModule({\n providers: [\n CommercialService,\n ParameterService,\n CourseService,\n StorageService,\n UserService,\n SwitchService,\n RedirectGuard,\n BaseService,\n TestService,\n MarketingService,\n ClassroomService,\n BudgetService,\n ActivityService,\n AcademicService,\n AttendanceService,\n CalendarService,\n CertificateService,\n UserEktService,\n CopiesService\n ]\n})\nexport class CoreModule {}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\nexport interface ControlSteps {\n name: string;\n required: boolean;\n description: string;\n}\n@Injectable({\n providedIn: 'root'\n})\nexport class CodSelfManagedControls {\n\n public controls: Array<ControlSteps[]> = [\n [\n { name: 'student_name', required: true, description: 'Nombres del estudiante' },\n { name: 'student_last_name', required: true, description: 'Apellidos del estudiante' },\n { name: 'student_id_card_type', required: true, description: 'Tipo de documento del estudiante' },\n { name: 'student_id_card', required: true, description: 'Documento del estudiante' },\n { name: 'gender', required: true, description: 'Género' },\n { name: 'birthdate', required: true, description: 'Fecha de nacimiento del estudiante' },\n { name: 'age', required: true, description: 'Edad' },\n { name: 'country', required: true, description: 'País' },\n { name: 'state', required: true, description: 'Departamento o estado' },\n { name: 'city', required: true, description: 'Ciudad de residencia' },\n { name: 'student_email', required: true, description: 'Correo del estudiante' },\n { name: 'student_phone_indicative', required: true, description: 'Indicativo del estudiante' },\n { name: 'student_phone_number', required: true, description: 'Teléfono del estudiante' },\n // { name: 'student_address', required: true, description: 'Dirección del estudiante' },\n // { name: 'nickname', required: true, description: 'Alias o nickname' },\n // { name: 'student_occupation', required: true, description: 'Ocupación del estudiante' },\n // { name: 'stratum', required: true, description: 'Estrato del estudiante' },\n // { name: 'grade', required: true, description: 'Grado del estudiante' },\n // { name: 'civil_status', required: true, description: 'Estado civil del estudiante' },\n // { name: 'password', required: true, description: 'Contraseña del estudiante' },\n // { name: 're_password', required: true, description: 'Confirmación de contraseña' },\n ],\n [\n { name: 'schedule', required: true, description: 'horario requerido' },\n // { name: 'academic_plan', required: true, description: 'Plan académico' },\n // { name: 'course_type', required: true, description: 'Tipo de curso' },\n // { name: 'agreement_by_category', required: true, description: 'Convenio' },\n // { name: 'english_level', required: true, description: 'Nivel de inglés' },\n // { name: 'availible_courses', required: false, description: 'Cursos disponibles' },\n // { name: 'course_modality', required: false, description: 'Modalidad del curso' },\n ],\n // [\n // { name: 'parent_id_card_type', required: true, description: 'Tipo de documento del acudiente' },\n // { name: 'parent_id_card', required: true, description: 'Documento del acudiente' },\n // { name: 'parent_last_name', required: true, description: 'Apellidos del acudiente' },\n // { name: 'parent_name', required: true, description: 'Nombres del acudiente' },\n // { name: 'needAtendant', required: true, description: '¿Requiere acudiente?' },\n // { name: 'parent_phone_indicative', required: true, description: 'Indicativo del acudiente' },\n // { name: 'parent_occupation', required: true, description: 'Ocupación del acudiente' },\n // { name: 'parent_address', required: true, description: 'Dirección del acudiente' },\n // { name: 'parent_phone_number', required: true, description: 'Teléfono del acudiente' }\n // ],\n [\n { name: 'payment_date', required: true, description: 'Fecha de pago' },\n { name: 'program_price', required: true, description: 'Valor total del programa' },\n { name: 'payment_method', required: true, description: 'Método de pago' },\n { name: 'quota_times', required: true, description: 'Cantidad de cuotas' },\n { name: 'total_price', required: true, description: 'Precio total de la matricula' },\n { name: 'paid_level', required: true, description: 'Niveles pagos' },\n ],\n // [\n // { name: 'marketing_reasons', required: true, description: '¿Cómo se enteró del programa?' },\n // { name: 'observation', required: false, description: 'Observación' },\n // { name: 'study_reasons', required: true, description: 'Motivo' },\n // { name: 'terms', required: true, description: 'Términos y condiciones' },\n // { name: 'disability', required: false, description: 'Discapacidad' },\n // { name: 'multiculturalism_1', required: false, description: 'Multiculturalismo' },\n // { name: 'multiculturalism_2', required: false, description: 'Multiculturalismo' },\n // { name: 'multiculturalism_3', required: false, description: 'Multiculturalismo' },\n // { name: 'multiculturalism_4', required: false, description: 'Multiculturalismo' },\n // { name: 'multiculturalism_5', required: false, description: 'Multiculturalismo' },\n // { name: 'multiculturalism_6', required: false, description: 'Multiculturalismo' },\n // { name: 'health_regimen', required: true, description: 'Régimen de salud' },\n // { name: 'code_refers', required: true, description: 'Refiere' },\n // { name: 'code_cod', required: false, description: 'Codigo Cod' }\n // ],\n ];\n\n private $controls = new BehaviorSubject<Array<ControlSteps[]>>([]);\n\n constructor() {\n this.$controls.next(this.controls);\n }\n\n getControlValues(): Observable<Array<ControlSteps[]>> {\n return this.$controls.asObservable();\n }\n\n // Cambiar los valores de los controls, ejemplo: true y false del checkbox\n changeValue(step: number, controlName: string, newValue: any) {\n const controls: Array<ControlSteps[]> = { ...this.controls };\n let control = controls[step-1].filter(element => element.name === controlName);\n control[0].required = newValue;\n\n this.$controls.next(controls)\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorageCodSelfMaganedService {\n\n constructor() { }\n\n getCodFormData(step: number, control: string): string | null {\n if (step === 1) return localStorage.getItem(`COD SELF - step1(${control})`);\n if (step === 2) return localStorage.getItem(`COD SELF - step2(${control})`);\n if (step === 3) return localStorage.getItem(`COD SELF - step3(${control})`);\n if (step === 4) return localStorage.getItem(`COD SELF - step4(${control})`);\n\n return null;\n }\n\n setCodFormData(step: number, control: string, value: string) {\n if (step === 1) localStorage.setItem(`COD SELF - step1(${control})`, value);\n if (step === 2) localStorage.setItem(`COD SELF - step2(${control})`, value);\n if (step === 3) localStorage.setItem(`COD SELF - step3(${control})`, value);\n if (step === 4) localStorage.setItem(`COD SELF - step4(${control})`, value);\n }\n\n clearData() {\n let keySessionUser = '606a7d4e73650b75ebb06972e77d6cc4';\n let sessionUser: string | null = localStorage.getItem(keySessionUser);\n localStorage.clear();\n\n if(sessionUser !== null) {\n localStorage.setItem(keySessionUser, sessionUser);\n } else {\n console.log('raro que no haya sesion');\n }\n }\n\n}\n","// import { Control } from './../../cod/logic/cod-form-controls';\nimport { Observable } from \"rxjs\";\nimport { ControlSteps } from \"./cod-self-managed-controls\";\nimport { LocalStorageCodSelfMaganedService } from \"./local-storage-cod.service\";\n\nexport interface localStorageValuesTwo {\n control: string,\n value: any\n}\n\nexport abstract class CodSelfManagedSteps {\n\n public localStorageCOD = new LocalStorageCodSelfMaganedService();\n\n constructor() {}\n\n readAndWriteLS(step: number, control: string): localStorageValuesTwo {\n if (this.localStorageCOD.getCodFormData(step, control)) {\n const value = this.localStorageCOD.getCodFormData(step, control);\n return { control, value };\n } else {\n return { control, value: '' }\n }\n }\n\n setDataInLocalStorage(step: number, control: string, value: any) {\n this.localStorageCOD.setCodFormData(step, control, value);\n }\n\n listenFormChanges(step: number, control: string, obs: Observable<any>) {\n obs.subscribe(value => {\n this.setDataInLocalStorage(step, control, value);\n });\n }\n\n resetLocalStorage(controls: ControlSteps[]) {\n controls.forEach(control => {\n localStorage.removeItem(control.name);\n });\n }\n\n}\n","import { Component, Output, EventEmitter, OnInit, Input, SimpleChanges, OnChanges, ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { map } from 'rxjs';\nimport { CodSelfManagedControls } from '../../logic/cod-self-managed-controls';\nimport { CodSelfManagedSteps, localStorageValuesTwo } from '../../logic/cod-self-managed-steps';\nimport { MessageService } from 'primeng/api';\nimport { IUserIPTRqs } from '../../../core/models/user/user-rs.model';\n\n@Component({\n selector: 'app-cod-self-form-step-one',\n templateUrl: './cod-self-form-step-one.component.html',\n styleUrls: ['./cod-self-form-step-one.component.css'],\n})\nexport class CodSelfFormStepOneComponent extends CodSelfManagedSteps implements OnChanges, OnInit {\n\n @Input() userStudent?: IUserIPTRqs;\n\n @Output() completed = new EventEmitter<number>();\n\n codSelfFormStepOne!: FormGroup\n genders: any[] = [];\n stratums: any;\n idTypes: any;\n indicatives: any;\n civilStatus: any;\n countrySelected: any;\n countries: any;\n states: any;\n cities: any;\n errorMessage: string = 'Faltan campos por llenar.';\n controls = new CodSelfManagedControls().controls[0];\n visible: boolean = false;\n messageInfo='Esta seccion solo es para datos del estudiante.';\n\n constructor(\n private fb: FormBuilder,\n private parameterService: ParameterService,\n private cdRef: ChangeDetectorRef,\n private messageService: MessageService\n ) {\n super();\n this.initForm();\n }\n\n ngOnInit(): void {\n this.getParameters();\n\n }\n ngOnChanges(changes: SimpleChanges): void {\n this.startLocalStorageWork();\n // const currentUser = changes['userStudent'].currentValue;\n // console.log(this.userStudent);\n if (changes['userStudent'] && this.userStudent != null) {\n // console.log('currentUser',currentUser);\n this.setDataUsers();\n }\n }\n\n initForm() {\n this.codSelfFormStepOne = this.fb.group({\n student_name: ['', [Validators.required]],\n student_last_name:['', [Validators.required]],\n student_id_card_type: ['', [Validators.required], []],\n student_id_card: [{value: '', disabled: true}, [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],\n gender: ['', [Validators.required]],\n birthdate: ['', [Validators.required], []],\n age: ['', [Validators.required], []],\n country: ['', [Validators.required], []],\n state: ['', [Validators.required], []],\n city: ['', [Validators.required], []],\n student_email: ['', [Validators.required, Validators.email]],\n student_phone_indicative: ['', [Validators.required], []],\n student_phone_number: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(15)]],\n });\n // Calcular edad y setear valor\n this.codSelfFormStepOne.controls['birthdate'].valueChanges.subscribe({\n next: (change) => {\n let today = new Date();\n let birthday = new Date(change);\n let age = today.getFullYear() - birthday.getFullYear();\n let month = today.getMonth() - birthday.getMonth();\n\n if (month < 0 || (month === 0 && today.getDate() < birthday.getDate())) {\n age--;\n }\n\n if (age < 3) {\n this.errorMessage = 'Fecha de nacimiento no válida'\n this.codSelfFormStepOne.controls['birthdate'].setErrors({\n invalidAge: true\n })\n } else {\n this.codSelfFormStepOne.controls['birthdate'].setErrors(null);\n }\n\n this.codSelfFormStepOne.controls['age'].setValue(age);\n }\n })\n }\n getParameters() {\n this.parameterService.getCardTypes('col').subscribe((response) => {\n this.idTypes = response.data;\n });\n this.parameterService.getIndicatives().subscribe((response) => {\n this.indicatives = response.data;\n });\n this.parameterService.getCountries().subscribe((response) => {\n this.countries = response.data;\n });\n this.parameterService.getAllCities().subscribe((response) => {\n this.cities = response.data;\n });\n this.parameterService.getAllStates().subscribe((response) => {\n this.states = response.data;\n });\n this.parameterService.getGenders().pipe(map((response: any) => response.data)).subscribe((genders: any[]) => {\n genders.forEach(gender => {\n let genderItem = {\n code: gender.code,\n name: gender.name_spanish\n }\n this.genders.push(genderItem)\n })\n })\n }\n\n setDataUsers(){\n this.codSelfFormStepOne.controls['student_name'].setValue(this.userStudent?.name);\n this.codSelfFormStepOne.controls['student_last_name'].setValue(this.userStudent?.last_name);\n this.codSelfFormStepOne.controls['student_id_card_type'].setValue(this.userStudent?.id_card_type);\n this.codSelfFormStepOne.controls['student_id_card'].setValue(this.userStudent?.id_card);\n this.codSelfFormStepOne.controls['country'].setValue(this.userStudent?.city[0]?.country != (1 || null) ? this.userStudent?.city[0]?.country : null);\n this.codSelfFormStepOne.controls['state'].setValue(this.userStudent?.city[0]?.state != (33 || null) ? this.userStudent?.city[0]?.state : null);\n this.codSelfFormStepOne.controls['city'].setValue(this.userStudent?.city[0]?.code != (1 || null) ? this.userStudent?.city[0]?.code : null);\n this.codSelfFormStepOne.controls['gender'].setValue(this.userStudent?.gender);\n this.codSelfFormStepOne.controls['birthdate'].setValue(this.userStudent?.birthdate);\n this.codSelfFormStepOne.controls['student_email'].setValue(this.userStudent?.email);\n this.codSelfFormStepOne.controls['student_phone_indicative'].setValue(this.userStudent?.phone_indicative);\n this.codSelfFormStepOne.controls['student_phone_number'].setValue(this.userStudent?.phone_number);\n\n }\n\n selectCountry(country: any) {\n let iso = '';\n if (country === '2') iso = 'col';\n else if (country === '3') iso = 'ven';\n else if (country === '4') iso = 'usa';\n else iso = '';\n\n if (iso != '') {\n this.codSelfFormStepOne.controls['country'].setValue(country);\n\n this.parameterService.getStatesByCountry(iso).subscribe((response) => {\n this.states = response.data;\n this.selectState(this.localStorageCOD.getCodFormData(2, 'state'));\n });\n } else {\n this.codSelfFormStepOne.controls['country'].setValue(null);\n }\n this.countrySelected = country;\n }\n\n selectState(state: any) {\n if (state !== 'Departamento o estado') {\n this.getState(state);\n this.codSelfFormStepOne.controls['state'].setValue(state);\n } else {\n this.codSelfFormStepOne.controls['state'].setValue(null);\n this.codSelfFormStepOne.controls['city'].setValue(null);\n this.cities = [];\n }\n }\n\n selectCity(city: any) {\n if (city !== 'Ciudad de residencia') {\n this.codSelfFormStepOne.controls['city'].setValue(city);\n } else {\n this.codSelfFormStepOne.controls['city'].setValue(null);\n }\n }\n\n selectIdType(idType: any) {\n if (idType !== 'Tipo de documento') {\n this.codSelfFormStepOne.controls['student_id_card_type'].setValue(idType);\n } else {\n this.codSelfFormStepOne.controls['student_id_card_type'].setValue(null);\n }\n }\n selectGender(gender: any) {\n if (gender !== 'Género') {\n this.codSelfFormStepOne.controls['gender'].setValue(gender);\n } else {\n this.codSelfFormStepOne.controls['gender'].setValue(null);\n }\n }\n selectIndicatives(indicative: any) {\n if (indicative !== 'Indicativo') {\n this.codSelfFormStepOne.controls['student_phone_indicative'].setValue(indicative);\n } else {\n this.codSelfFormStepOne.controls['student_phone_indicative'].setValue(null);\n }\n }\n sendForm() {\n this.codSelfFormStepOne.markAllAsTouched();\n if (this.codSelfFormStepOne.invalid) return;\n\n // Movernos al paso 1\n this.completed.emit(1);\n }\n getState(state: any) {\n this.getCity(state);\n }\n getCity(state: any) {\n this.parameterService.getCitiesByState(state).subscribe((response) => {\n this.cities = response.data;\n this.selectCity(this.localStorageCOD.getCodFormData(1, 'city'));\n });\n }\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValuesTwo = this.readAndWriteLS(1, control.name);\n this.codSelfFormStepOne.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(1, control.name, this.codSelfFormStepOne.controls[control.name].valueChanges);\n });\n }\n showConfirm() {\n if (!this.visible) {\n this.messageService.add({ key: 'confirm', sticky: true, severity: 'success', summary: 'Can you send me the report?', life: 10000 });\n this.visible = true;\n }\n }\n\n onReject() {\n this.messageService.clear('confirm');\n this.visible = false;\n}\n\n\n}\n","<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Datos Personales</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\"></i>\n <form [formGroup]=\"codSelfFormStepOne\">\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepOne.controls['student_name']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_name'].invalid && codSelfFormStepOne.controls['student_name'].touched\">\n <span class=\"error-message\">Por favor ingresa un nombre válido.</span>\n </div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codSelfFormStepOne.controls['student_last_name']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_last_name'].invalid && codSelfFormStepOne.controls['student_last_name'].touched\">\n <span class=\"error-message\">Por favor ingresa un apellido válido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['student_id_card_type'].value\"\n [control]=\"codSelfFormStepOne.controls['student_id_card_type']\"\n [selectCode]=\"codSelfFormStepOne.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codSelfFormStepOne.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['student_id_card_type'].invalid && codSelfFormStepOne.controls['student_id_card_type'].touched\">\n <span class=\"error-message\">Por favor ingresa un tipo de documento válido.</span>\n </div>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de documento'\"\n [control]=\"codSelfFormStepOne.controls['student_id_card']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_id_card'].invalid && codSelfFormStepOne.controls['student_id_card'].touched\">\n <span class=\"error-message\">Por favor ingresa un documento válido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['gender'].value\"\n [control]=\"codSelfFormStepOne.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'Género'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['gender'].invalid && codSelfFormStepOne.controls['gender'].touched\">\n <span class=\"error-message\">Por favor ingresa un genero válido.</span>\n </div>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codSelfFormStepOne.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['birthdate'].invalid && codSelfFormStepOne.controls['birthdate'].touched\">\n <span class=\"error-message\">Por favor ingresa una fecha mayor de 3 años.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['country'].value\"\n [control]=\"codSelfFormStepOne.controls['country']\"\n [selectCode]=\"codSelfFormStepOne.controls['country'].value === null ? 'País de residencia' : codSelfFormStepOne.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'País de residencia'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['country'].invalid && codSelfFormStepOne.controls['country'].touched\">\n <span class=\"error-message\">Por favor ingresa un pais válido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['state'].value\"\n [control]=\"codSelfFormStepOne.controls['state']\"\n [selectCode]=\"codSelfFormStepOne.controls['state'].value === null ? 'Departamento o estado' : codSelfFormStepOne.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['state'].invalid && codSelfFormStepOne.controls['state'].touched\">\n <span class=\"error-message\">Por favor ingresa un departamento válido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['city'].value\"\n [control]=\"codSelfFormStepOne.controls['city']\"\n [selectCode]=\"codSelfFormStepOne.controls['city'].value === null ? 'Ciudad de residencia' : codSelfFormStepOne.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['city'].invalid && codSelfFormStepOne.controls['city'].touched\">\n <span class=\"error-message\">Por favor ingresa una ciudad válido.</span>\n </div>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electrónico'\"\n [control]=\"codSelfFormStepOne.controls['student_email']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_email'].invalid && codSelfFormStepOne.controls['student_email'].touched\">\n <span class=\"error-message\">Por favor ingresa un email valido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['student_phone_indicative'].value\"\n [control]=\"codSelfFormStepOne.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['student_phone_indicative'].invalid && codSelfFormStepOne.controls['student_phone_indicative'].touched\">\n <span class=\"error-message\">Por favor ingresa un indicativo valido.</span>\n </div>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de teléfono'\"\n [control]=\"codSelfFormStepOne.controls['student_phone_number']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_phone_number'].invalid && codSelfFormStepOne.controls['student_phone_number'].touched\">\n <span class=\"error-message\">Por favor ingresa un numero de telefono válido.</span>\n </div>\n </form>\n\n <div class=\"flex mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n [disabled]=\"!codSelfFormStepOne.valid\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n\n</div>\n\n<!-- <div>\n <pre>{{ codSelfFormStepOne.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepOne.valid | json }}</pre>\n </div>\n</div> -->\n","import { Component, Output, EventEmitter, OnChanges, ChangeDetectorRef, OnInit, OnDestroy } from '@angular/core';\nimport { CodSelfManagedSteps, localStorageValuesTwo } from '../../logic/cod-self-managed-steps';\nimport { CodSelfManagedControls } from '../../logic/cod-self-managed-controls';\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\n\n\n\n\n@Component({\n selector: 'app-cod-self-form-step-two',\n templateUrl: './cod-self-form-step-two.component.html',\n styleUrls: ['./cod-self-form-step-two.component.css'],\n})\nexport class CodSelfFormStepTwoComponent extends CodSelfManagedSteps implements OnChanges, OnInit, OnDestroy {\n\n\n @Output() completed = new EventEmitter<number>();\n codSelfFormStepTwo!: FormGroup\n controls = new CodSelfManagedControls().controls[1];\n\n constructor(\n private fb: FormBuilder,\n private cdRef: ChangeDetectorRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.initForm();\n this.startLocalStorageWork();\n }\n ngOnChanges(){\n // this.initForm();\n // this.startLocalStorageWork();\n }\n\n ngOnDestroy(): void {\n this.codSelfFormStepTwo.controls['schedule'].setValue(\"\");\n }\n initForm() {\n\n this.codSelfFormStepTwo = this.fb.group({\n schedule: ['', [Validators.required]],\n // academic_plan: ['', [Validators.required]],\n // course_type:['', [Validators.required]],\n // agreement_by_category: ['', [Validators.required],],\n // english_level: [{value: '', disabled: true}, [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],\n // availible_courses: ['', [Validators.required]],\n // course_modality: ['', [Validators.required],],\n\n });\n }\n back() {\n // Movernos al paso anterior\n this.completed.emit(0);\n }\n sendForm() {\n // this.codSelfFormStepTwo.markAllAsTouched();\n // if (this.codSelfFormStepTwo.invalid) return;\n\n // Movernos al paso 3\n this.completed.emit(2);\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValuesTwo = this.readAndWriteLS(2, control.name);\n this.codSelfFormStepTwo.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(2, control.name, this.codSelfFormStepTwo.controls[control.name].valueChanges);\n });\n }\n\n\n}\n","<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n\n <form [formGroup]=\"codSelfFormStepTwo\">\n\n <div class=\"flex justify-content-around flex-wrap gap-2 m-2\">\n <div class=\"since\">\n <span>Selecciona un Horario deseado</span>\n <p-calendar\n [timeOnly]=\"true\"\n placeholder=\"hh:mm\"\n [hourFormat]=\"'12'\"\n inputId=\"timeonly\"\n [formControl]=\"$any(codSelfFormStepTwo.controls['schedule'])\"\n ></p-calendar>\n </div>\n </div>\n\n </form>\n <div class=\"flex mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n","import { Component } from '@angular/core';\nimport { CodSelfManagedSteps } from '../../logic/cod-self-managed-steps';\n\n\n\n\n@Component({\n selector: 'app-cod-self-form-step-three',\n templateUrl: './cod-self-form-step-three.component.html',\n styleUrls: ['./cod-self-form-step-three.component.css'],\n})\nexport class CodSelfFormStepThreeComponent extends CodSelfManagedSteps {\n\n constructor() {\n super();\n }\n}\n","<span>step 3</span>\n","import { Component } from '@angular/core';\n\n\n\n\n@Component({\n selector: 'app-cod-self-form-step-four',\n templateUrl: './cod-self-form-step-four.component.html',\n styleUrls: ['./cod-self-form-step-four.component.css'],\n})\nexport class CodSelfFormStepFourComponent {\n\n}\n","<span>step 4</span>\n","import { Subscription } from 'rxjs';\nimport { MenuItem } from 'primeng/api';\nimport { IUserIPTRqs } from '../../core/models/user/user-rs.model';\nimport { Component, Input, OnDestroy } from '@angular/core';\nimport { BaseService } from '../../core/utils/base-service/base.service';\n\n\n@Component({\n selector: 'ipt-cod-self-managed',\n templateUrl: './cod-self-managed.component.html',\n styleUrls: ['./cod-self-managed.component.css']\n})\nexport class CodSelfManagedComponent implements OnDestroy {\n\n @Input() user?: IUserIPTRqs;\n public currentStep: number = 0;\n items: MenuItem[]=[\n { label: 'Datos', id: '1'},\n { label: 'Planes', id: '2'},\n { label: 'Pago', id: '3'},\n { label: 'Confirmacion', id: '4'}\n ];\n subscription?: Subscription;\n\n constructor(private baseService: BaseService){}\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n changeStep(step: any) {\n this.currentStep = step;\n // console.log(this.currentStep);\n // this.baseService.getUserCode();\n const request: any = {\n currentStep: this.currentStep,\n user_code: this.baseService.getUserCode()\n }\n console.log(request);\n }\n}\n","<p-steps [model]=\"items\" [(activeIndex)]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" ></p-steps>\n\n<p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\">\n <p-tabPanel [disabled]=\"true\">\n <app-cod-self-form-step-one (completed)=\"changeStep($event)\" [userStudent]=\"user\"></app-cod-self-form-step-one>\n </p-tabPanel>\n <p-tabPanel [disabled]=\"true\">\n <app-cod-self-form-step-two (completed)=\"changeStep($event)\"></app-cod-self-form-step-two>\n </p-tabPanel>\n <p-tabPanel [disabled]=\"true\">\n <app-cod-self-form-step-three (completed)=\"changeStep($event)\"></app-cod-self-form-step-three>\n </p-tabPanel>\n <p-tabPanel [disabled]=\"true\">\n <app-cod-self-form-step-four (completed)=\"changeStep($event)\"></app-cod-self-form-step-four>\n </p-tabPanel>\n</p-tabView>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CodSelfManagedComponent } from './cod-form-self-managed/cod-self-managed.component';\nimport { ComponentsModule } from '../components/components.module';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { CodSelfFormStepOneComponent } from './steps/cod-form-step-one/cod-self-form-step-one.component';\nimport { StepsModule } from 'primeng/steps';\nimport { CodSelfFormStepTwoComponent } from './steps/cod-form-step-two/cod-self-form-step-two.component';\nimport { CodSelfFormStepThreeComponent } from './steps/cod-form-step-three/cod-self-form-step-three.component';\nimport { CodSelfFormStepFourComponent } from './steps/cod-form-step-four/cod-self-form-step-four.component';\nimport { ButtonModule } from 'primeng/button';\nimport { ToastModule } from 'primeng/toast';\nimport { CalendarModule } from 'primeng/calendar';\nimport { TabViewModule } from 'primeng/tabview';\n@NgModule({\n imports:[\n CommonModule,\n ComponentsModule,\n ReactiveFormsModule,\n StepsModule,\n FormsModule,\n ButtonModule,\n ToastModule,\n CalendarModule,\n TabViewModule\n ],\n declarations:[\n CodSelfManagedComponent,\n CodSelfFormStepOneComponent,\n CodSelfFormStepTwoComponent,\n CodSelfFormStepThreeComponent,\n CodSelfFormStepFourComponent,\n ],\n exports:[\n CodSelfManagedComponent,\n CodSelfFormStepOneComponent,\n CodSelfFormStepTwoComponent,\n CodSelfFormStepThreeComponent,\n CodSelfFormStepFourComponent,\n ],\n})\nexport class codSelfManagedModule { }\n","import { NgModule } from '@angular/core';\nimport { CurrencyMaskModule } from 'ng2-currency-mask';\nimport { CodModule } from './cod/cod.module';\n\nimport { ComponentsModule } from './components/components.module';\nimport { CoreModule } from './core/core.module';\nimport { codSelfManagedModule } from './cod-self-managed/cod-self-managed.module';\n\n@NgModule({\n imports: [\n ComponentsModule,\n CoreModule,\n CurrencyMaskModule,\n CodModule,\n codSelfManagedModule\n ],\n exports: [\n ComponentsModule,\n CoreModule,\n CurrencyMaskModule,\n CodModule,\n codSelfManagedModule\n ],\n})\n\nexport class DesignSystemModule { }\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { CreateNewNoteRq, GetNotesByGroupRq, GetNotesByStudentRq, INotesByUCourseAndStudentRq, IServiceCreateNewNoteRq, IServiceUpdateNoteRq, Notes, UpdateStudentNoteRq, calculateFinalNoteRq } from '../../models/notes/notes.interface';\nimport { Observable } from 'rxjs';\nimport { Response } from '../../models/response/response.interface';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotesService extends IPTGeneralService{\n\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n\n getNotesByGroup(params: GetNotesByGroupRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/notes/by/course';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getNotesByStudent(params: GetNotesByStudentRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/notes/by/student';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n createNewNote(params: IServiceCreateNewNoteRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/create/note';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n updateStudentNote(params: UpdateStudentNoteRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'update/note';\n this.generateRequestParams(params);\n return this.http.put<Response>(serviceUrl, this.httpOptions);\n }\n\n calculateFinalNote(params: calculateFinalNoteRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/calculate/final/note';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getNotesByUserCourseStudent(params: INotesByUCourseAndStudentRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/notes/by/courseandstudent';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n updateNoteByTypeAndStudent(params: IServiceUpdateNoteRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'update/note/by/type/and/student';\n this.generateRequestParams(params);\n return this.http.put<Response>(serviceUrl, this.httpOptions);\n }\n\n getNotesByCourseExcel(params: GetNotesByGroupRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/notes/by/course/export' ;\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GetStudentsByCourseRq } from '../../models/student/student.interface';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StudentService extends IPTGeneralService{\n\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getStudentsByCourse(params: GetStudentsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/students/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { FormControl } from '@angular/forms';\n\n\nexport const validateCoupunts = (control: FormControl) => {\n const value: string = control.value.trim();\n};\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { IObtainNoteByDateRq, IObtainNoteByNameRq } from '../../models/PlacementTest/PlacementTest.models';\n\n@Injectable({providedIn: 'root'})\nexport class PlacementService extends IPTGeneralService {\n\n private SERVICE_URL = 'placement/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getAllPlacementTestUsers(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/possible/students';\n return this.http.get(serviceUrl);\n }\n\n getNotePlacementTestByDate(params: IObtainNoteByDateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/note/placement/test/by/date';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getNotePlacementTestByName(params: IObtainNoteByNameRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/note/placement/test/by/name/student';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { ICourseEventRq } from \"../academic/academic.component\";\nimport { longDateAvailabilityRs } from \"../cronogram/cronogram.models\";\nimport { English_Levels } from \"./courses.model\";\n\nexport interface CreateCourseRq {\n token?: string;\n teacher?: number | null;\n academic_plan?: string;\n course_type?: string;\n to_start?: string;\n start_date?: string | null;\n finish_date?: string | null;\n capacity?: string;\n more_days?: string | null;\n english_level?: string;\n agreement?: string;\n time_start_monday: string | null;\n time_end_monday: string | null;\n classroom_monday: string | null;\n time_start_tuesday: string | null;\n time_end_tuesday: string | null;\n classroom_tuesday: string | null;\n time_start_wednesday: string | null;\n time_end_wednesday: string | null;\n classroom_wednesday: string | null;\n time_start_thursday: string | null;\n time_end_thursday: string | null;\n classroom_thursday: string | null;\n time_start_friday: string | null;\n time_end_friday: string | null;\n classroom_friday: string | null;\n time_start_saturday?: string | null;\n time_end_saturday?: string | null;\n classroom_saturday?: string | null;\n}\n\nexport interface EditCourseRq {\n token: string;\n teacher: any;\n capacity: string;\n to_start: Date;\n course_code: number;\n course_schedule: number;\n time_start_monday: string | null;\n time_start_tuesday: string | null;\n time_start_wednesday: string | null;\n time_start_thursday: string | null;\n time_start_friday: string | null;\n time_start_saturday: string | null;\n time_end_monday: string | null;\n time_end_tuesday: string | null;\n time_end_wednesday: string | null;\n time_end_thursday: string | null;\n time_end_friday: string | null;\n time_end_saturday: string | null;\n classroom_monday: string | null;\n classroom_tuesday: string | null;\n classroom_wednesday: string | null;\n classroom_thursday: string | null;\n classroom_friday: string | null;\n classroom_saturday: string | null;\n}\n\nexport interface GetCoursesRq {\n token: string;\n record: number;\n page: number;\n english_level?: number;\n}\n\nexport interface GetCourseByCodeRq {\n token: string;\n course_code: number;\n}\n\nexport interface GetCoursesByLevelRq {\n token: string;\n record: number;\n page: number;\n english_level: number;\n}\n\nexport interface GetAvailibleCoursesRq{\n token:string;\n english_level:number;\n agreement:number;\n course_type:number;\n}\n\nexport interface GetCoursesByTeacherRq {\n token: string;\n page: number;\n record: number;\n teacher_code: number;\n filter_type?: number,\n filter?: number\n}\n\nexport interface DataAllCourseRq {\n code: number;\n course_schedule: CourseScheduleCRq;\n teacher: TeacherCRq;\n course_type: CourseTypeCRq;\n to_start: Date;\n start_date: Date;\n finish_date: Date;\n capacity: number;\n more_days: number | null;\n english_level: EnglishLevelCRq;\n agreement: AgreementCRq;\n course_modality: number;\n}\n\nexport interface AgreementCRq {\n code: number;\n name: string;\n end_time: Date;\n category: number;\n}\n\nexport interface CourseScheduleCRq {\n code: number;\n time_start_monday: string | null;\n time_end_monday: string | null;\n classroom_monday: string | null;\n time_start_tuesday: string | null;\n time_end_tuesday: string | null;\n classroom_tuesday: string | null;\n time_start_wednesday: string | null;\n time_end_wednesday: string | null;\n classroom_wednesday: string | null;\n time_start_thursday: string | null;\n time_end_thursday: string | null;\n classroom_thursday: string | null;\n time_start_friday: string | null;\n time_end_friday: string | null;\n classroom_friday: string | null;\n time_start_saturday: string | null;\n time_end_saturday: string | null;\n classroom_saturday: string | null;\n updated_at: Date;\n created_at: Date;\n}\n\nexport interface CourseTypeCRq {\n code: number;\n name: string;\n number_class: number;\n academic_plan: string;\n}\n\nexport interface EnglishLevelCRq {\n code: number;\n name: string;\n}\n\nexport interface TeacherCRq {\n code: number;\n name: string;\n last_name: string;\n nick_name: string;\n email: string;\n email_ipt: string;\n role: number;\n service_hour: number;\n phone_indicative: number;\n phone_number: string;\n gender: number;\n birthdate: Date | null;\n city: number;\n id_card_type: number;\n id_card: string;\n token: string;\n}\nexport interface IgetCodBcourseByModalityAndDisponibilityRq{\n token: string;\n modality: number;\n english_level: English_Levels[];\n}\nexport interface IgetCodBcourseByModalityAndLevelAndCourseTypeRq{\n token: string;\n modality: number;\n english_level: English_Levels[];\n course_type: number;\n}\n\nexport interface IObtainAvailableCourseDaysRq {\n startDate: string;\n startTime: string;\n endTime: string;\n numClass: number;\n weekDays: string[];\n startDateClub: string;\n startTimeClub: string;\n endTimeClub: string;\n numClassClub: number;\n weekDaysClub: string[];\n courseType: number;\n courseClub: boolean;\n}\n\nexport interface IAvailableCourseDaysRs {\n schoolDays: longDateAvailabilityRs[];\n schoolDaysClub: longDateAvailabilityRs[];\n schoolDaysCombine: ISchoolDaysCombineRs[];\n ShortDateSchoolDays: string[];\n ShortDateSchoolDaysClub: string[];\n ShortDateSchoolDayCombine: string[];\n weeksClass: number;\n completionClass: Date;\n startTime: string;\n endTime: string;\n courseName: ICourseNameUnitRs;\n}\n\nexport interface ICourseNameUnitRs {\n unitNameTheory: string[];\n unitNameClub: IUnitNameClubRs[];\n}\n\nexport enum IUnitNameClubRs {\n Club = \"Club\",\n}\n\nexport interface ISchoolDaysCombineRs {\n longDate: string;\n nameUnit: string;\n}\n\nexport interface ICreatedScheduleEvents {\n token: string;\n courseCode: number;\n codeClassRoom: number;\n codeTeacher: string;\n startTime: string;\n endTime: string;\n weekDays: string[];\n courseCodeClub: number;\n codeClassRoomClub: number;\n codeTeacherClub: string;\n startTimeClub: string;\n endTimeClub: string;\n weekDaysClub: string[];\n course_events: ICourseEventRq[];\n}\n\nexport interface IChangeCourseStudentNotStartedRq {\n token: string;\n cod_code: number;\n current_course: number;\n current_course_event: number;\n new_course: number;\n new_course_event: number;\n number_class: number;\n}\n\n\n","import { UserRs } from '../user/user-rs.model';\n\nexport class Session {\n token!: string;\n user!: UserRs;\n}","import { MessageRq } from \"../attendance/attendance.interface\";\n\nexport class UserRs {\n code!: number;\n name!: string;\n last_name!: string;\n nick_name!: string;\n email!: string;\n email_ipt!: string;\n role!: number;\n service_hour!: number;\n phone_indicative!: number;\n phone_number!: number;\n gender!: string;\n birthdate!: string;\n city!: number;\n id_card_type!: number;\n id_card!: number;\n comment?: string;\n password!: string;\n token!: string;\n}\n\nexport class UserLoginRs {\n code!: number;\n name!: string;\n last_name!: string;\n email!: string;\n id_card!: string;\n id_card_type!: number;\n phone_indicative!: number;\n phone!: string;\n gender!: number;\n city!: number;\n role!: number;\n birthdate!: string;\n token!: string;\n}\n\nexport class IUserFullDataRs {\n code!: number;\n name!: string;\n last_name!: string;\n nick_name!: string;\n email!: string;\n email_ipt!: string;\n role!: number;\n service_hour!: number;\n phone_indicative!: number;\n phone_number!: string;\n gender!: number;\n birthdate!: string;\n city!: number;\n id_card_type!: number;\n id_card!: string;\n password!: string;\n token!: string;\n user_status!: number;\n}\n\nexport interface IUserResetPasswordRs {\n ip_applicant: string;\n status: number;\n message: MessageRq;\n data: IDataUserResetPasswordRs[];\n}\n\nexport interface IDataUserResetPasswordRs {\n code: number;\n name: string;\n last_name: string;\n nick_name: string;\n email: string;\n email_ipt: string;\n role: number;\n service_hour: number;\n phone_indicative: number;\n phone_number: string;\n gender: number;\n birthdate: null;\n city: number;\n id_card_type: number;\n id_card: string;\n token: string;\n user_status: number;\n password_change: number;\n updated_at: Date;\n newPassword: string;\n}\n\nexport interface IUserIPTRqs {\n code: number;\n name: string;\n last_name: string | null;\n nick_name: string | null;\n email: string;\n email_ipt: string | null;\n role: number;\n phone_indicative: number;\n phone_number: string;\n gender: number | null;\n birthdate: Date | null;\n city: ICityRS[];\n id_card_type: number;\n id_card: string | null;\n user_status: number;\n password_change: number;\n status_asing: number;\n}\n\nexport interface ICityRS {\n code: number;\n capital: number;\n state: number;\n country: number;\n}\n","/*\n * Public API Surface of design-system dockerizada\n */\n\nexport * from \"./lib/design-system.module\"\nexport * from \"./lib/cod/cod.module\"\nexport * from \"./lib/components/components.module\"\nexport * from \"./lib/core/core.module\"\n\n// Atomos\nexport * from \"./lib/components/atoms/aside-button/aside-button.component\"\nexport * from \"./lib/components/atoms/button/button.component\"\nexport * from \"./lib/components/atoms/checkbox/checkbox.component\"\nexport * from \"./lib/components/atoms/datalist/datalist.component\"\nexport * from \"./lib/components/atoms/input/input.component\"\nexport * from \"./lib/components/atoms/level-button/level-button.component\"\nexport * from \"./lib/components/atoms/level-text/level-text.component\"\nexport * from \"./lib/components/atoms/loader/loader.component\"\nexport * from \"./lib/components/atoms/radio/radio.component\"\nexport * from \"./lib/components/atoms/select/select.component\"\nexport * from \"./lib/components/atoms/text-link/text-link.component\"\n\n// Formularios\nexport * from \"./lib/components/forms/login-form/login-form.component\"\nexport * from \"./lib/components/molecules/sidenav/sidenav.component\"\nexport * from \"./lib/components/molecules/question-type/edit-question-types.component\"\nexport * from \"./lib/components/forms/create-user-form/create-user-form.component\"\n\n// Servicios\nexport * from \"./lib/core/services/attendance-service/attendance.service\"\nexport * from \"./lib/core/services/budget-service/budget-service\"\nexport * from \"./lib/core/services/course-service/course-service.model\"\nexport * from \"./lib/core/services/calendar-service/calendar.service\"\nexport * from \"./lib/core/services/marketing-service/marketing-service\"\nexport * from \"./lib/core/services/notes-service/notes.service\"\nexport * from \"./lib/core/services/parameters-service/parameters.service\"\nexport * from \"./lib/core/services/student-service/student.service\"\nexport * from \"./lib/core/services/storage-service/storage-service\"\nexport * from \"./lib/core/services/switch-service/switch.service\"\nexport * from \"./lib/core/services/test-service/test.service\"\nexport * from \"./lib/core/services/user-service/user-service\"\nexport * from \"./lib/core/utils/base-service/base.service\"\nexport * from \"./lib/core/utils/route-service/route.service\"\nexport * from \"./lib/core/services/classroom-service/classroom-service.service\"\nexport * from \"./lib/core/services/activity-service/activity.service\"\nexport * from \"./lib/core/services/commercial-service/comercial.service\"\nexport * from \"./lib/core/services/commercial-service/validators\"\nexport * from \"./lib/core/services/academic-service/academic.service\"\nexport * from \"./lib/core/services/certificate-service/certificate.service\"\nexport * from \"./lib/core/services/ekt-service/userekt.service\"\nexport * from \"./lib/core/services/copies.service\"\nexport * from \"./lib/core/services/placement-service/placement.service\"\n\n// Modelos\nexport * from \"./lib/core/models/activities/activities.interface\"\nexport * from \"./lib/core/models/attendance/attendance.interface\"\nexport * from \"./lib/core/models/budget/budget.model\"\nexport * from \"./lib/core/models/cod/cod-rq.model\"\nexport * from \"./lib/core/models/calendar/calendar-rq.models\"\nexport * from \"./lib/core/models/cronogram/cronogram.models\"\nexport * from \"./lib/core/models/course/course-rq.model\"\nexport * from \"./lib/core/models/marketing/marketing.model\"\nexport * from \"./lib/core/models/notes/notes.interface\"\nexport * from \"./lib/core/models/notes/INotesTemplate\"\nexport * from \"./lib/core/models/response/response.interface\"\nexport * from \"./lib/core/models/session/session.model\"\nexport * from \"./lib/core/models/student/student.interface\"\nexport * from \"./lib/core/models/table/table-rs.model\"\nexport * from \"./lib/core/models/test/test.model\"\nexport * from \"./lib/core/models/url/url.model\"\nexport * from \"./lib/core/models/user/user-rq.model\"\nexport * from \"./lib/core/models/user/user-rs.model\"\nexport * from \"./lib/core/models/classroom/classroom-rq.model\"\nexport * from \"./lib/core/models/academic/academic.component\"\nexport * from \"./lib/core/models/course/courses.model\"\nexport * from \"./lib/core/models/payment/payment-rq.model\"\nexport * from \"./lib/core/models/commercial/commercial.model\"\nexport * from \"./lib/core/models/reports/reports.model\"\nexport * from \"./lib/core/models/homeTemplate/homeTemplate.models\"\nexport * from \"./lib/core/models/PlacementTest/PlacementTest.models\"\nexport * from \"./lib/core/models/PossibleStudent/PossibleStudent.models\"\n\n// Librería para máscara de moneda\nexport * from \"./lib/components/components.module\"\n\n// Modulo del COD\nexport * from \"./lib/cod/cod.module\"\n\n// Componentes del COD\nexport * from \"./lib/cod/cod-form/cod-form.component\"\nexport * from \"./lib/cod/cod-documents-section/cod-documents-section.component\"\n\n// Lógica del COD\nexport * from \"./lib/cod/logic/calculate-quotes.service\"\nexport * from \"./lib/cod/logic/cod-form-controls\"\nexport * from \"./lib/cod/logic/cod-form-steps\"\nexport * from \"./lib/cod/logic/communicator.service\"\nexport * from \"./lib/cod/logic/local-storage-cod.service\"\n\n// Pasos del COD\nexport * from \"./lib/cod/steps/cod-form-step-one/cod-form-step-one.component\"\nexport * from \"./lib/cod/steps/cod-form-step-two/cod-form-step-two.component\"\nexport * from \"./lib/cod/steps/cod-form-step-three/cod-form-step-three.component\"\nexport * from \"./lib/cod/steps/cod-form-step-four/cod-form-step-four.component\"\nexport * from \"./lib/cod/steps/cod-form-step-five/cod-form-step-five.component\"\n\n//Module Cod Autogestionado\nexport * from \"./lib/cod-self-managed/cod-self-managed.module\"\n\n//component Cod Autogestionado\nexport * from \"./lib/cod-self-managed/cod-form-self-managed/cod-self-managed.component\"\n\n//Steps Cod Autogestionado\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component\"\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component\"\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component\"\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component\"\n\n// Lógica del Autogestionado\nexport * from \"./lib/cod-self-managed/logic/cod-self-managed-controls\"\nexport * from \"./lib/cod-self-managed/logic/cod-self-managed-steps\"\nexport * from \"./lib/cod-self-managed/logic/local-storage-cod.service\"\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.UserService","i2.StorageService","i3.CalendarService","i2.BaseService","i3.ButtonComponent","i4.InputComponent","i2.ParameterService","i3.UserService","i4","i5.ButtonComponent","i6.InputComponent","i7.SelectComponent","i3.StorageService","i8.AsideButtonComponent","i2.InputComponent","i2.MediaService","i4.BaseService","i5","i7","i3.CopiesService","i5.CourseService","i6.CommunicatorService","i8.SelectComponent","i9","i3","i5.SelectComponent","i6","i3.CodFormControls","i5.InputComponent","i6.SelectComponent","i2.CalculateQuotesService","i3.CommunicatorService","i4.ParameterService","i5.CodFormControls","i6.CommercialService","i7.BaseService","i8","i10.InputComponent","i11.LoaderComponent","i12.SelectComponent","i14","i9.ModalReferredComponent","i1.BaseService","i2.LocalStorageCODService","i4.CommercialService","i7.LoaderComponent","i8.CodFormStepOneComponent","i9.CodFormStepTwoComponent","i10.CodFormStepThreeComponent","i11.CodFormStepFourComponent","i12.CodFormStepFiveComponent","i4.CodSelfFormStepOneComponent","i5.CodSelfFormStepTwoComponent","i6.CodSelfFormStepThreeComponent","i7.CodSelfFormStepFourComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"iptdevs-design-system.mjs","sources":["../../../design-system/src/lib/components/atoms/aside-button/aside-button.component.ts","../../../design-system/src/lib/components/atoms/button/button.component.ts","../../../design-system/src/lib/components/atoms/checkbox/checkbox.component.ts","../../../design-system/src/lib/components/atoms/datalist/datalist.component.ts","../../../design-system/src/lib/components/atoms/input/input.component.ts","../../../design-system/src/lib/components/atoms/level-button/level-button.component.ts","../../../design-system/src/lib/components/atoms/level-text/level-text.component.ts","../../../design-system/src/lib/components/atoms/loader/loader.component.ts","../../../design-system/src/lib/components/atoms/radio/radio.component.ts","../../../design-system/src/lib/components/atoms/select/select.component.ts","../../../design-system/src/lib/components/atoms/text-link/text-link.component.ts","../../../design-system/src/lib/core/services/service-enviroments.ts","../../../design-system/src/lib/core/services/user-service/user-service.ts","../../../design-system/src/lib/core/services/storage-service/storage-service.ts","../../../design-system/src/lib/core/services/calendar-service/calendar.service.ts","../../../design-system/src/lib/core/utils/base-service/base.service.ts","../../../design-system/src/lib/components/forms/login-form/login-form.component.ts","../../../design-system/src/lib/core/services/parameters-service/parameters.service.ts","../../../design-system/src/lib/components/forms/create-user-form/create-user-form.component.ts","../../../design-system/src/lib/components/forms/create-user-form/create-user-form.component.html","../../../design-system/src/lib/core/pipes/parameter-pipes/gender-display.pipe.ts","../../../design-system/src/lib/components/forms/update-user-form/update-user-form.component.ts","../../../design-system/src/lib/components/forms/update-user-form/update-user-form.component.html","../../../design-system/src/lib/components/molecules/sidenav/sidenav.component.ts","../../../design-system/src/lib/components/molecules/question-type/edit-question-types.component.ts","../../../design-system/src/lib/core/pipes/course-pipes/schedule-form.pipe.ts","../../../design-system/src/lib/core/pipes/course-pipes/time-form.pipe.ts","../../../design-system/src/lib/core/pipes/course-pipes/type-level.pipe.ts","../../../design-system/src/lib/components/molecules/card-course/card-course.component.ts","../../../design-system/src/lib/components/molecules/card-course/card-course.component.html","../../../design-system/src/lib/components/molecules/card-select-course/card-select-course.component.ts","../../../design-system/src/lib/components/molecules/card-select-course/card-select-course.component.html","../../../design-system/src/lib/components/material.module.ts","../../../design-system/src/lib/core/pipes/pipe.module.ts","../../../design-system/src/lib/components/components.module.ts","../../../design-system/src/lib/core/services/media-service/media.service.ts","../../../design-system/src/lib/cod/cod-documents-section/cod-documents-section.component.ts","../../../design-system/src/lib/cod/cod-documents-section/cod-documents-section.component.html","../../../design-system/src/lib/cod/logic/local-storage-cod.service.ts","../../../design-system/src/lib/cod/logic/cod-form-controls.ts","../../../design-system/src/lib/core/services/commercial-service/comercial.service.ts","../../../design-system/src/lib/cod/logic/cod-form-steps.ts","../../../design-system/src/lib/core/utils/copies.ts","../../../design-system/src/lib/core/services/copies.service.ts","../../../design-system/src/lib/core/services/course-service/course-service.model.ts","../../../design-system/src/lib/cod/logic/communicator.service.ts","../../../design-system/src/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.html","../../../design-system/src/lib/cod/steps/cod-form-step-two/cod-form-step-two.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-two/cod-form-step-two.component.html","../../../design-system/src/lib/cod/steps/cod-form-step-three/cod-form-step-three.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-three/cod-form-step-three.component.html","../../../design-system/src/lib/cod/logic/calculate-quotes.service.ts","../../../design-system/src/lib/cod/steps/cod-form-step-four/cod-form-step-four.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-four/cod-form-step-four.component.html","../../../design-system/src/lib/cod/modal-referred/modal-referred.component.ts","../../../design-system/src/lib/cod/modal-referred/modal-referred.component.html","../../../design-system/src/lib/cod/steps/cod-form-step-five/cod-form-step-five.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-five/cod-form-step-five.component.html","../../../design-system/src/lib/cod/cod-form/cod-form.component.ts","../../../design-system/src/lib/cod/cod-form/cod-form.component.html","../../../design-system/src/lib/cod/cod.module.ts","../../../design-system/src/lib/core/utils/route-service/route.service.ts","../../../design-system/src/lib/core/services/switch-service/switch.service.ts","../../../design-system/src/lib/core/services/test-service/test.service.ts","../../../design-system/src/lib/core/services/marketing-service/marketing-service.ts","../../../design-system/src/lib/core/services/budget-service/budget-service.ts","../../../design-system/src/lib/core/services/classroom-service/classroom-service.service.ts","../../../design-system/src/lib/core/services/activity-service/activity.service.ts","../../../design-system/src/lib/core/services/academic-service/academic.service.ts","../../../design-system/src/lib/core/services/attendance-service/attendance.service.ts","../../../design-system/src/lib/core/services/certificate-service/certificate.service.ts","../../../design-system/src/lib/core/services/ekt-service/userekt.service.ts","../../../design-system/src/lib/core/services/ePayco/epayco.service.ts","../../../design-system/src/lib/core/core.module.ts","../../../design-system/src/lib/cod-self-managed/logic/cod-self-managed-controls.ts","../../../design-system/src/lib/cod-self-managed/logic/local-storage-cod.service.ts","../../../design-system/src/lib/cod-self-managed/logic/cod-self-managed-steps.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component.html","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.html","../../../design-system/src/lib/cod-self-managed/logic/calculate-quotes.service.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component.html","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component.html","../../../design-system/src/lib/cod-self-managed/cod-form-self-managed/cod-self-managed.component.ts","../../../design-system/src/lib/cod-self-managed/cod-form-self-managed/cod-self-managed.component.html","../../../design-system/src/lib/cod-self-managed/cod-self-managed.module.ts","../../../design-system/src/lib/design-system.module.ts","../../../design-system/src/lib/core/services/notes-service/notes.service.ts","../../../design-system/src/lib/core/services/student-service/student.service.ts","../../../design-system/src/lib/core/services/commercial-service/validators.ts","../../../design-system/src/lib/core/services/placement-service/placement.service.ts","../../../design-system/src/lib/core/services/announcement/announcement.service.ts","../../../design-system/src/lib/core/models/course/course-rq.model.ts","../../../design-system/src/lib/core/models/session/session.model.ts","../../../design-system/src/lib/core/models/user/user-rs.model.ts","../../../design-system/src/lib/core/models/announcement/announcement-user-rs.model.ts","../../../design-system/src/public-api.ts","../../../design-system/src/iptdevs-design-system.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n@Component({\n selector: 'ipt-aside-button',\n template: `\n <div [ngSwitch]=\"buttonActive\">\n <a *ngSwitchCase=\"0\" class=\"flex-item-menu__link\" (click)=\"clickAction()\">\n <img src=\"{{ icon }}\" alt=\"icon_url\" />\n <p>{{ text }}</p>\n </a>\n\n <a *ngSwitchCase=\"1\" class=\"flex-item-menu__link flex-item-active\" (click)=\"clickAction()\">\n <img src=\"{{ icon }}\" alt=\"icon_url\" />\n <p>{{ text }}</p>\n </a>\n </div>\n `,\n styleUrls: ['./aside-button.css']\n})\n\nexport class AsideButtonComponent {\n @Input() icon!: string;\n @Input() text!: string;\n @Input() buttonActive?: boolean;\n @Output() isClicked = new EventEmitter<boolean>();\n\n clickAction() {\n this.isClicked.emit(true);\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ipt-button',\n template: `<button *ngIf=\"isEnabled\"\n type=\"{{ buttonType }}\"\n (click)=\"onClick.emit($event)\"\n [ngClass]=\"classes\"\n >\n {{ label }}\n </button>\n\n <button *ngIf=\"!isEnabled\"\n type=\"{{ buttonType }}\"\n [ngClass]=\"classes\"\n >\n {{ label }}\n </button>`,\n styleUrls: ['./button.css'],\n})\nexport class ButtonComponent {\n\n @Input() primary: boolean = false;\n @Input() size: 'small' | 'medium' | 'large' = 'medium';\n @Input() label: string = 'Button';\n @Input() buttonType?: string;\n @Input() isEnabled: boolean = true;\n\n @Output() onClick = new EventEmitter<Event>();\n\n public get classes(): string[] {\n const mode = this.primary && this.isEnabled === true\n ? 'ipt-button--primary'\n : this.isEnabled === false ? 'ipt-button--primary-disabled'\n : 'ipt-button--secondary';\n\n return ['ipt-button', `ipt-button--${this.size}`, mode];\n }\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { AbstractControl, FormControl } from \"@angular/forms\";\n\n@Component({\n selector: 'ipt-checkbox',\n template: `\n <label class=\"cont\">\n <input\n class=\"checkbox\"\n [formControl]=\"formControl\"\n [checked]=\"checkboxOption\"\n (click)=\"onChecked.emit($event)\"\n type=\"checkbox\">\n <span></span>\n </label>\n `,\n styleUrls: ['./checkbox.css']\n})\n\nexport class CheckboxComponent {\n\n @Input() checkboxOption: boolean = false;\n @Input() set control(value: AbstractControl) {\n if (this.formControl !== value) {\n this.formControl = value as FormControl;\n }\n }\n\n @Output() onChecked = new EventEmitter<Event>();\n\n formControl!: FormControl;\n\n}\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\n\n@Component({\n selector: 'ipt-datalist',\n template: `\n <div class=\"input-container\">\n <label [ngClass]=\"labelClass\">{{ placeHolder }}</label>\n <input\n type=\"text\"\n class=\"input\"\n (click)=\"click($event)\"\n [attr.list]=\"uniqueDatalistId\"\n (change)=\"optionChanged($event)\"\n [disabled]=\"disabledSel\"\n [value]=\"setDataListValue()\"\n />\n\n <datalist [id]=\"uniqueDatalistId\">\n <option *ngFor=\"let item of datalistData; index as i\" [value]=\"label === 'displayName' ? item.displayName : item.name\">\n {{ label === 'displayName' ? item.displayName : (item.id_card ? item.id_card + ' ' : '') + item.name }}\n </option>\n </datalist>\n </div>\n `,\n styleUrls: ['./datalist.css'],\n})\nexport class DatalistComponent implements OnInit {\n @Input() datalistId!: string;\n @Input() datalistData!: any[];\n @Input() placeHolder!: string;\n @Input() validateText!: string;\n @Input() initalData!: string;\n @Input() disabledSel: boolean = false;\n @Input() label: string = '';\n\n @Output() isChanged = new EventEmitter<string>();\n\n clicked: boolean = false;\n uniqueDatalistId: string = '';\n\n private static idCounter = 0; // Contador estático para generar IDs únicos\n\n constructor(fb: FormBuilder) {}\n\n ngOnInit() {\n // Generar un ID único si no se proporciona datalistId\n this.uniqueDatalistId = this.datalistId || `datalist-${DatalistComponent.idCounter++}-${Date.now()}`;\n }\n\noptionChanged(event: any) {\n let selectOption = this.datalistData.find(element =>\n this.label === 'displayName' ? element.displayName === event.target.value : element.name === event.target.value\n );\n if (typeof selectOption !== 'undefined') {\n this.isChanged.emit(selectOption.code);\n } else {\n this.isChanged.emit('-1');\n }\n }\n\n click(value: MouseEvent) {\n this.clicked = value.isTrusted;\n }\n\nsetDataListValue() {\n let selectOption = this.datalistData.find(element => element.code === this.initalData);\n if (typeof selectOption !== 'undefined') {\n return this.label === 'displayName' ? selectOption.displayName : selectOption.name;\n } else {\n return '';\n }\n }\n\n public get labelClass(): string {\n return this.clicked === false ? 'label' : 'labelUp';\n }\n}","import { AbstractControl, FormControl } from '@angular/forms';\nimport { Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\n\n@Component({\n selector: 'ipt-input',\n template: `\n <div class=\"input-container\">\n <!-- Resto del código... -->\n <input *ngIf=\"inputType === 'date'\"\n class=\"input\"\n type=\"{{ inputType ? 'text' : 'date' }}\"\n [formControl]=\"formControl\"\n (ngModelChange)=\"selectedDate($event)\"\n onfocus=\"this.type='date';\"\n onblur=\"javascript: if( !this.value ) this.type='text';\"\n uib-datepicker-popup=\"dd/MM/yyyy\"\n ng-model=\"inputType\"/>\n\n <input *ngIf=\"inputType !== 'date' && inputType !== 'time' && !withPipe\"\n class=\"input\"\n type=\"{{ inputType }}\"\n [formControl]=\"formControl\"\n [attr.list]=\"list\"/>\n\n <input *ngIf=\"inputType === 'text' && withPipe\"\n class=\"input\"\n currencyMask\n [options]=\"{ prefix: prefix, thousands: thousands, decimal: decimal, allowNegative: false }\"\n type=\"{{ inputType }}\"\n [formControl]=\"formControl\"\n [attr.list]=\"list\"/>\n\n <input *ngIf=\"inputType === 'time'\"\n class=\"input\"\n type=\"time\"\n [formControl]=\"formControl\"\n [min]=\"'06:00:00'\"\n max=\"22:00:00\"\n step=\"900\"\n autocomplete=\"on\"\n value=\"08:00:00\"\n (click)=\"click($event)\"\n />\n\n <label [ngClass]=\"{'labelUp': formControl.value !== ''}\">{{ placeHolder }}</label>\n\n <p *ngIf=\"(formControl.invalid && formControl.value !== '')\">\n {{ validateText }}\n </p>\n </div>\n `,\n styleUrls: ['./input.css'],\n})\nexport class InputComponent implements OnInit {\n\n public codeValue!: string;\n data: any[] = [];\n formControl!: FormControl;\n clicked: boolean = false;\n\n @Input() inputType!: string;\n @Input() placeHolder!: string;\n @Input() validateText?: string;\n @Input() withPipe?: boolean = false;\n @Input() list?: string; //Para el datalist\n @Input() iconUrl?: string;\n @Input() set control(value: AbstractControl | string) {\n if (this.formControl !== value) {\n this.formControl = value as FormControl;\n }\n }\n\n @Input() prefix: string = '$';\n @Input() thousands: string = '.';\n @Input() decimal: string = ',';\n @Output() dateSelected = new EventEmitter<string>();\n @Input() disabledSel: boolean = false;\n\n constructor() {}\n\n ngOnInit() {}\n\n selectedDate(evt: string){\n this.dateSelected.emit(evt);\n }\n\n click(value: MouseEvent) {\n this.clicked = value.isTrusted;\n }\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ipt-level-button',\n template: `\n <div [ngSwitch]=\"buttonActive\">\n <button\n *ngSwitchCase=\"0\"\n (click)=\"clickAction()\"\n id=\"level\"\n class=\"courses\"\n >\n <p class=\"p-level\">{{ level }}</p>\n </button>\n\n <button\n *ngSwitchCase=\"1\"\n (click)=\"clickAction()\"\n id=\"{{ idColor }}\"\n class=\"courses\">\n <p class=\"p-level p-level-active\">{{ level }}</p>\n </button>\n </div>\n `,\n styleUrls: ['./level-button.css'],\n})\n\nexport class LevelButtonComponent {\n\n @Input() level!: string;\n @Input() buttonActive!: boolean;\n @Input() idColor!: string;\n @Output() isClicked = new EventEmitter<boolean>();\n\n clickAction() {\n this.isClicked.emit(true);\n }\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ipt-level-button',\n template: `\n <p class=\"p-table-course\">{{ level }}: {{ total }}</p>\n `,\n styleUrls: ['./level-text.css'],\n})\n\nexport class LevelTextComponent {\n\n @Input() level!: string;\n @Input() total!: string;\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ipt-loader',\n template: `\n <div [ngClass]=\"{'dialog': isDialog}\">\n <div [ngClass]=\"{'loader_container' : isDialog}\">\n <span>{{ message }}</span>\n <div class=\"container\">\n <div class=\"spinner\">\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n </div>\n </div>\n </div>\n </div>`,\n styleUrls: ['./loader.css']\n})\nexport class LoaderComponent {\n @Input() message: string = '';\n @Input() isDialog: boolean = false;\n}\n\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { AbstractControl, FormControl } from \"@angular/forms\";\n\n@Component({\n selector: 'ipt-radio',\n template: `\n <label class=\"cont\">\n <input\n class=\"radio\"\n [formControl]=\"formControl\"\n [checked]=\"radioOption\"\n (click)=\"onSelected.emit($event)\"\n type=\"radio\">\n <span></span>\n </label>\n `,\n styleUrls: ['./radio.css']\n})\n\nexport class RadioComponent {\n\n @Input() radioOption: boolean = false;\n @Input() set control(value: AbstractControl) {\n if (this.formControl !== value) {\n this.formControl = value as FormControl;\n }\n }\n\n @Output() onSelected = new EventEmitter<Event>();\n\n formControl!: FormControl;\n\n}\n","import { Component, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n@Component({\n selector: 'ipt-select',\n template: `\n <div class=\"select-container\">\n <label [ngClass]=\"labelClass\">{{ defaultText }}</label>\n <select\n [(ngModel)]=\"binding\"\n (ngModelChange)=\"seleccionar($event)\"\n (click)=\"click($event)\"\n [ngClass]=\"textClass\"\n [disabled]=\"disabledSel\">\n <option *ngFor=\"let item of data; index as i\" [value]=\"item.code\">\n {{ label === 'displayName' ? item.displayName : item.name }} {{ item.prefix }}\n </option>\n </select>\n </div>\n `,\n styleUrls: ['./select.css'],\n})\nexport class SelectComponent {\n\n binding: any;\n boxShadow: number = 0;\n formControl!: FormControl;\n clicked: boolean = false;\n\n @Input() isRequired!: boolean; // temas de validacion\n // objeto que me trae el listado\n @Input() data!: any[]; // recibe un array de cualquier cosa\n @Input() defaultText!: any;\n @Input() selectCode!:string;\n @Input() disabledSel:boolean = false;\n @Input() initialValue!: string;\n @Input() label!: string;\n\n @Output() eventSelect = new EventEmitter<string>();\n // type viene de otro componente -> indica de que tipo es el arreglo si pregrade, posgrade o modo\n @Input() set control(value: AbstractControl) {\n if (this.formControl !== value) {\n this.formControl = value as FormControl;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data']) {\n this.setBinding();\n }\n }\n ngOnInit(): void {\n this.setBinding();\n }\n\n seleccionar(evt: string) {\n if (this.eventSelect.emit(evt) !== this.defaultText) {\n this.boxShadow = 1;\n } else {\n this.boxShadow = 2;\n }\n }\n\n private setBinding() {\n if (this.initialValue !== '') {\n this.binding = this.initialValue;\n } else {\n this.binding = this.defaultText;\n }\n }\n\n click(value: MouseEvent) {\n this.clicked = value.isTrusted;\n }\n\n\n public get textClass(): string {\n return this.defaultText === '' ? 'selected' : 'select';\n }\n\n public get labelClass(): string {\n return (this.clicked || this.initialValue !== '') ? 'labelUp' : 'label';\n }\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ipt-text-link',\n template: `\n <a class=\"text-link\" (click)='isLinkClicked()'>\n <p class=\"text-link__paragraph\">\n <i class=\"{{icon}}\" aria-hidden=\"true\"></i>\n {{text}}\n </p>\n </a>\n `,\n styleUrls: ['./text-link.css'],\n})\n\nexport class TextLinkComponent {\n\n @Input() text!: string;\n @Input() blank?: boolean;\n @Input() icon?: string;\n\n @Output() isClicked = new EventEmitter<boolean>();\n\n\n constructor() {\n }\n\n isLinkClicked() {\n this.isClicked.emit(true);\n }\n\n}\n","import { HttpHeaders } from \"@angular/common/http\";\n\nexport class IPTGeneralService {\n\n httpOptions: any;\n\n baseUrl(): string {\n let url = window.location.href;\n\n if (url.includes('localhost') || url.includes('qa')) {\n return 'https://lab.iptdev.com.co/';\n } else if ( url.includes('inglesparatodos.edu.co')) {\n return 'https://iptdev.com.co/';\n } else if ( url.includes('inglesparatodos.us')) {\n return 'https://iptdev.com.co/';\n } else {\n return 'error.com';\n }\n }\n\n // construye los headers y params\n generateRequestParams(param: any) {\n this.httpOptions = {\n header: new HttpHeaders(),\n params: param,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { RegisterIndexRq, RegisterDashboardRq, UserTokenRq, ForgotPasswordRq, LoginRq, RegisterRq, getStudentRq, TeacherByCodeRq, userTokenRq, IUpdtaeUserValidatedRq, IObtainUserByEmailDocRq, IStudentOrUserEktByConceptRq, UserTokenRq2, ParamsUser, IusersRq, IDeleteTeacherRq,IUpdateDataTeacherRq, IObtainDataFromSuppliersStudentRq, IGeUsersFromDepartmentsRq } from '../../models/user/user-rq.model';\nimport { getStrategyByUserCommercialRq } from '../../models/marketing/marketing.model';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { GetStudentByCodeRq, tokenAdministrativeRq } from '../../models/payment/payment-rq.model';\nimport { IReportExcelRq } from '../../models/commercial/commercial.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService extends IPTGeneralService{\n private SERVICE_URL = 'users/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n login(userLogin: LoginRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/login';\n this.generateRequestParams(userLogin);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n resetPassword(resetPassword: ForgotPasswordRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'reset/password';\n this.generateRequestParams(resetPassword);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n register(user: RegisterRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/create/web';\n this.generateRequestParams(user);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n registerIndex(register: RegisterIndexRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/create/marketing';\n this.generateRequestParams(register);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n registerDashboard(user: RegisterDashboardRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/create/dashboard';\n this.generateRequestParams(user);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAvailableTeachers(token: UserTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/teachers';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllAdvisor(userToken: getStrategyByUserCommercialRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/commercial';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getByRoleUser(codeRole: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/by/role/user/' + codeRole;\n return this.http.get(serviceUrl);\n }\n\n getUserStatistics(userToken: getStrategyByUserCommercialRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/statistics';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getRoutesForRole(token: UserTokenRq2): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/routes/role';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getStudents(token: UserTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/students';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getStudent(token: getStudentRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/student';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllAdministrative(userToken: tokenAdministrativeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/administrative';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getAllMarketing(userToken: tokenAdministrativeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/marketing';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getStudenbyCode(parans: GetStudentByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/student/by/code';\n this.generateRequestParams(parans);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getTeachersbyCode(parans: TeacherByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/teachers/by/code';\n this.generateRequestParams(parans);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllUserByRole(userToken: userTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/by/role';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getUserRoleByCode(codeRole: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/user/role/by/code/' + codeRole;\n return this.http.get(serviceUrl);\n }\n\n getUserAllBudget(userToken: tokenAdministrativeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/budget';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getObtainPossibleStudents(userToken: tokenAdministrativeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/possibleStudents';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllUserByRoleValidate(token: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/by/rol/all/user/validated';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateUserValidated(params: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/update/user/validated';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n deletedUserValidated(params: IUpdtaeUserValidatedRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/deleted/user/validated';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainStudentByDocumentEmail(params: IObtainUserByEmailDocRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/student/by/document/email';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainDataByUserLoged(params: IReportExcelRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/user/commercial/loged';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n obtainStudentOrUserEktByConcept(params: IStudentOrUserEktByConceptRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/students/by/type/concept/in/payments';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainReferralUsers(token: getStudentRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/referral/users';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n obtainUsersThreeDptoCommercialAndAdministrativeAndBudget(token: getStrategyByUserCommercialRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/user/commercial/administrative/budgets';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainTeachersAvailableToTeach(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/teachers/available/to/teach';\n return this.http.get(serviceUrl);\n }\n\n searchUser(param: ParamsUser): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'post/search/user';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getUserByCode(codeUser: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/user/by/code/' + codeUser;\n return this.http.get(serviceUrl);\n }\n createProveedor(param:IusersRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/create/user';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n updateUser(param:any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/data/user/cod/self/managed';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n DeleteTeacherByCode(params: IDeleteTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/delete/teacher/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n UpdateTeacherDataByCode(params: IUpdateDataTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/update/teacher/data/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllUsersCommisions(params: getStrategyByUserCommercialRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/commissions';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainDataFromSuppliersStudent(params: IObtainDataFromSuppliersStudentRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/data/from/suppliers/or/students';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getUsersFromDepartments(params: IGeUsersFromDepartmentsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/users/from/departments';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getUsersAllFromDepartmentsByParams(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/users/all/from/departments/by/parameters';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateUserAndParentByCode(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/user/by/code/and/parent';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n updateUserByCode(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/user/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Session } from \"../../models/session/session.model\";\nimport { UserRs } from \"../../models/user/user-rs.model\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StorageService {\n\n private localStorageService;\n private currentSession : Session | null= null;\n\n constructor() {\n this.localStorageService = localStorage;\n this.currentSession = this.loadSessionData();\n }\n\n setCurrentSession(session: Session): void {\n this.currentSession = session;\n this.localStorageService.setItem('606a7d4e73650b75ebb06972e77d6cc4', JSON.stringify(session));\n }\n\n loadSessionData(): Session | null {\n var sessionStr = this.localStorageService.getItem('606a7d4e73650b75ebb06972e77d6cc4');\n return (sessionStr) ? <Session> JSON.parse(sessionStr) : null;\n }\n\n getCurrentSession(): Session | null {\n return this.currentSession;\n }\n\n removeCurrentSession(): void {\n this.localStorageService.removeItem('606a7d4e73650b75ebb06972e77d6cc4');\n this.currentSession = null;\n }\n\n getCurrentUser(): UserRs | null {\n var session: Session | null = this.getCurrentSession();\n return (session && session.user) ? session.user : null;\n };\n\n isAuthenticated(): boolean {\n return (this.getCurrentToken() != null) ? true : false;\n };\n\n getCurrentToken(): string | null{\n var session = this.getCurrentSession();\n return (session && session.token) ? session.token : null;\n };\n\n logout(): void{\n this.removeCurrentSession();\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { eventqueryRq } from '../../models/calendar/calendar-rq.models';\nimport { AddNewEventRq, AvailabilityQueryRq, AvailabilityQueryRqs, GetEventByDateTimeRq, GetEventsByCourseRq, IObtainAvailableCourseDayRq } from '../../models/cronogram/cronogram.models';\nimport { Response } from '../../models/response/response.interface';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CalendarService extends IPTGeneralService{\n private SERVICE_URL = 'calendar/api/'\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n postCreateQueryEvent(params: AvailabilityQueryRq): Observable<Response>{\n let serviceUrl = this.SERVICE_URL + 'post/event/create/query';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getEventByIdCalendar(idCalendar: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/event/calendar/idcalendar/all/' + idCalendar;\n return this.http.get(serviceUrl);\n }\n\n postEventByDayTime(params: eventqueryRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/event/calendar/idcalendar/by/datetime';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getEventsByCourse(params: GetEventsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/event/calendar/idcalendar/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getEventByDateTime(params: GetEventByDateTimeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/event/calendar/idcalendar/by/datetime';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n\n //duplicida de ep\n getAvailability(params: AvailabilityQueryRqs): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/event/create/query';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n addNewEvent(params: AddNewEventRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/add/event/calendar/by/daytime';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n newCreateEvents(params: AddNewEventRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/create/new/events';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n ObtainUnitsNameCourseType(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/unitsname/by/coursetype';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllEventByCourse(params: GetEventsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/all/event/calendar/idcalendar/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainAvailableCourseDays(params: IObtainAvailableCourseDayRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/available/course/days';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainAvailableClassroomsInCalendar(params: AvailabilityQueryRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/available/classrooms/in/calendar';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { LoginRq, RegisterDashboardRq } from '../../models/user/user-rq.model';\nimport { UserService } from '../../services/user-service/user-service';\nimport Swal from 'sweetalert2';\nimport { Session } from '../../models/session/session.model';\nimport { StorageService } from '../../services/storage-service/storage-service';\nimport { AvailabilityQueryRq } from '../../models/cronogram/cronogram.models';\nimport { CalendarService } from '../../services/calendar-service/calendar.service';\nimport { Response } from '../../models/response/response.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BaseService {\n\n constructor(\n private userService: UserService,\n private storageService: StorageService,\n private calendarService: CalendarService\n ) {}\n\n webLogin(user: string, password: string): Promise<boolean>{\n let request: LoginRq = {\n user: user,\n password: password\n }\n let service = this.userService;\n let storage = this.storageService;\n let appUser = this.isAnAppUser();\n\n return new Promise(function(resolve, reject) {\n service.login(request).subscribe( response => {\n switch (response.message.code) {\n case 1:\n if(!appUser) {\n Swal.fire ({\n 'title': '<p style=\"font-family: Poppins\"\">Perfect!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">Succesfull login</p>',\n 'icon':'success',\n });\n }\n const loginRegisterUser: Session = {\n token: response.data.token,\n user: response.data,\n };\n\n storage.setCurrentSession(loginRegisterUser);\n resolve(true);\n break;\n case 2:\n Swal.fire({\n 'title': '<p style=\"font-family: Poppins\"\">Warning!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">The data does not correspond to a user registered in our system, please review them.</p>',\n 'icon':'warning',\n });\n\n resolve(false);\n break;\n case 3:\n Swal.fire({\n 'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">The input data does not meet the established parameters.</p>',\n 'icon':'error',\n });\n\n resolve(false);\n break;\n case 4:\n Swal.fire({\n title: '<p style=\"font-family: Poppins\">Warning!</p>',\n html: '<div style=\"text-align: center; font-family: Poppins;\">' +\n '<i class=\"fas fa-exclamation-triangle\" style=\"color: red; font-size: 24px;\"></i>' +\n '<p>Your account is in inactive status. Contact support.</p>' +\n '</div>',\n showConfirmButton: true,\n });\n resolve(false);\n break;\n default:\n Swal.fire({\n 'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">An unexpected error has occurred</p>',\n 'icon':'error',\n });\n\n resolve(false);\n break;\n }\n reject('Unhandled exception');\n });\n })\n }\n\n getCronogramAvailability(isTeacher: boolean, code: number, startDate: string, numClass: number, weekDays: any[], startTime: string, endTime: string): Promise<any>{\n let request: AvailabilityQueryRq = {\n isTeacher: isTeacher,\n code: code,\n startDate: startDate,\n numClass: numClass,\n weekDays: weekDays,\n startTime: startTime,\n endTime: endTime,\n };\n\n let service = this.calendarService;\n\n return new Promise(function(resolve, reject) {\n service.postCreateQueryEvent(request).subscribe( (response: Response) => {\n switch (response.message.code) {\n case 1:\n resolve(response.data);\n break\n default:\n reject('Unhandled exception');\n }\n reject('Unhandled exception');\n });\n });\n }\n\n isAnAppUser() {\n const userAgent: string = window.navigator.userAgent;\n return userAgent.includes('Flutter IPT APP');\n }\n\n getUserRole(): number {\n let user = this.storageService.getCurrentUser()?.role;\n return user === undefined ? -1 : user;\n }\n\n getUserToken(): string {\n let token = this.storageService.getCurrentUser()?.token;\n return token === undefined ? '-1' : token;\n }\n\n getUserName(): string {\n let user = this.storageService.getCurrentUser();\n let response = user === null ? '' : user.name;\n return response;\n }\n\n getUserCode(): number {\n let user = this.storageService.getCurrentUser();\n let response = user === null ? -1 : user.code;\n return response;\n }\n\n registerUserFromDashboard(registerDashboardRq: RegisterDashboardRq): Promise<boolean>{\n let request = registerDashboardRq;\n let service = this.userService;\n\n return new Promise(function(resolve, reject) {\n service.registerDashboard(request).subscribe((response) => {\n\n switch (response.message.code) {\n case 1:\n Swal.fire ({\n 'title': '<p style=\"font-family: Poppins\"\">Perfect!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">Sucesfull register!</p>',\n 'icon':'success',\n });\n resolve(true);\n break;\n case 3:\n Swal.fire ({\n 'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">The input data does not meet the established parameters.</p>',\n 'icon':'error',\n });\n resolve(false);\n break;\n case 4:\n Swal.fire ({\n 'title': '<p style=\"font-family: Poppins\">Ups!</p>',\n 'html': '<p style=\"font-family: Poppins\">The input data has a high relation with a user that already exists!</p>',\n 'icon': 'warning',\n });\n resolve(false);\n break;\n default:\n Swal.fire ({\n 'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n 'html': '<p style=\"font-family: Poppins\"\">An unexpected error has occurred</p>',\n 'icon':'error',\n });\n resolve(false);\n break;\n }\n\n reject('Unhandled exception');\n });\n });\n }\n\n jsonToArray(data: any[]): any[][] {\n var response: any[] = [];\n data.forEach((element) => {\n var object: any[] = [];\n for (var clave in element) {\n if (element.hasOwnProperty(clave)) {\n if (typeof element[clave] == 'object') {\n element[clave] = this.subJsonToArray(element[clave]);\n }\n\n object.push(element[clave]);\n }\n }\n response.push(object);\n });\n return response;\n }\n\n subJsonToArray(data: any[]): string {\n var object: string = '';\n for (var clave in data) {\n if (clave != 'code') {\n object += '\\n' + data[clave];\n }\n }\n return object;\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BaseService } from '../../../core/utils/base-service/base.service';\n\n@Component({\n selector: 'ipt-login-form',\n template: `\n <div class=\"form-container\">\n\n <h2 style=\"text-align: center;\">IPT PLATFORM</h2>\n <hr>\n\n <form (ngSubmit)=\"login(loginForm)\" [formGroup]=\"loginForm\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Email'\"\n [validateText]=\"'Debe ser @inglesparatodos.edu.co'\"\n [control]=\"loginForm.controls['email']\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Password'\"\n [control]=\"loginForm.controls['password']\"\n ></ipt-input>\n </form>\n\n <div class=\"button-container\">\n <ipt-button\n [label]=\"'Login'\"\n [primary]=\"true\"\n [isEnabled]=\"loginForm.valid\"\n (onClick)=\"login(loginForm)\"\n ></ipt-button>\n </div>\n\n </div>\n `,\n styleUrls: ['./login-form.css']\n})\n\nexport class LoginFormComponent {\n\n @Output() isLogged = new EventEmitter<boolean>();\n\n loginForm!: FormGroup;\n\n constructor(\n fb: FormBuilder,\n private baseService: BaseService,\n ) {\n this.loginForm = fb.group({\n email: ['', [Validators.required]],\n password: ['', [Validators.required, Validators.minLength(3),Validators.maxLength(15)]],\n });\n }\n\n login(data: FormGroup) {\n this.baseService.webLogin(data.controls['email'].value, data.controls['password'].value).then((isLogged) =>{\n this.isLogged.emit(isLogged);\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ParameterService extends IPTGeneralService{\n private SERVICE_URL = 'parameters/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getIndicatives(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/indicatives';\n return this.http.get(serviceUrl);\n }\n\n getCardTypes(country: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/id/card/type/country/' + country;\n return this.http.get(serviceUrl);\n }\n\n getCountries(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/countries';\n return this.http.get(serviceUrl);\n }\n\n getStatesByCountry(country: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/state/country/iso/' + country;\n return this.http.get(serviceUrl);\n }\n\n getCitiesByState(state: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/cities/state/' + state;\n return this.http.get(serviceUrl);\n }\n\n getAllPlans(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/plans';\n return this.http.get(serviceUrl);\n }\n\n getLevels(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/english/levels';\n return this.http.get(serviceUrl);\n }\n\n getAgreements(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/agreement';\n return this.http.get(serviceUrl);\n }\n\n getAgreementByCategory(typeCategory: any): Observable<any> {\n let serviceUrl =\n this.SERVICE_URL + 'get/agreement/by/category/' + typeCategory;\n return this.http.get(serviceUrl);\n }\n\n getAllClassrooms(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/classroom';\n return this.http.get(serviceUrl);\n }\n\n getCoursesTypes(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/course/type';\n return this.http.get(serviceUrl);\n }\n\n getCoursesTypesByPlan(typePlan: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/course/by/plan/' + typePlan;\n return this.http.get(serviceUrl);\n }\n\n getDegrees(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/degrees';\n return this.http.get(serviceUrl);\n }\n\n getProgramsByDegree(typeDegree: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/programs/by/degree/' + typeDegree;\n return this.http.get(serviceUrl);\n }\n\n getMarketingReasons(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/mkt/reasons';\n return this.http.get(serviceUrl);\n }\n\n getStudyReasons(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/study/reasons';\n return this.http.get(serviceUrl);\n }\n\n getAcademicUnits(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/academic/units';\n return this.http.get(serviceUrl);\n }\n getStatusContact(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/status/all';\n return this.http.get(serviceUrl);\n }\n\n getTypePlan(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/plans';\n return this.http.get(serviceUrl);\n }\n getTypePlanDiscount(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/discount/all/plans';\n return this.http.get(serviceUrl);\n }\n\n getContactedType(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/contacted/all';\n return this.http.get(serviceUrl);\n }\n\n getStatusByCode(codeStatus: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/status/bycode/' + codeStatus;\n return this.http.get(serviceUrl);\n }\n getAllTypeDiscount(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/commercial/typediscounts/all';\n return this.http.get(serviceUrl);\n }\n\n getAllCourseModality(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/course/modality';\n return this.http.get(serviceUrl);\n }\n\n getAllPaymentMethod(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/method/all';\n return this.http.get(serviceUrl);\n }\n\n getAllPaymentService(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/services/all';\n return this.http.get(serviceUrl);\n }\n\n getAllBanks(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/banks/all';\n return this.http.get(serviceUrl);\n }\n\n getAllCampus(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/banks/all';\n return this.http.get(serviceUrl);\n }\n\n getCampusByCode(codeCampu: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/campus/by/code/' + codeCampu;\n return this.http.get(serviceUrl);\n }\n\n getGenders(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/genders';\n return this.http.get(serviceUrl);\n }\n\n getGenderByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/gender/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n getStratums(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/stratums';\n return this.http.get(serviceUrl);\n }\n\n getStratumByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/stratum/by/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n getCivilStatus(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/civil/status';\n return this.http.get(serviceUrl);\n }\n\n getCivilStatusByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/civil/status/by/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n getMulticulturalisms(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/multiculturalisms';\n return this.http.get(serviceUrl);\n }\n\n getMulticulturalismByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/multiculturalism/by/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n getClassRoomByMod(codeModality: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/classroom/by/modality/' + codeModality;\n return this.http.get(serviceUrl);\n }\n\n getConuntryStateByCity(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/country/state/by/city/' + code;\n return this.http.get(serviceUrl);\n }\n\n getAllStates(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/states';\n return this.http.get(serviceUrl);\n }\n\n getAllCities(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/cities';\n return this.http.get(serviceUrl);\n }\n\n getDataCityByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/city/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n getDataCityByCountry(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/city/country/' + code;\n return this.http.get(serviceUrl);\n }\n\n getDataCityByName(name: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/city/name/' + name;\n return this.http.get(serviceUrl);\n }\n\n getDataCityByState(name: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/cities/state/' + name;\n return this.http.get(serviceUrl);\n }\n\n getActionsAdminStudent(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/actions/admin/student';\n return this.http.get(serviceUrl);\n }\n\n getReasonObservationStudent(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/reason/observation/student';\n return this.http.get(serviceUrl);\n }\n GetAllGradeEducation(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/grade';\n return this.http.get(serviceUrl);\n }\n getAllParametersCodForm(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/parameter/cod/form';\n return this.http.get(serviceUrl);\n }\n\n getAllCodStatus (): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/codstatus';\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { RegisterDashboardRq } from '../../../core/models/user/user-rq.model';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { UserService } from '../../../core/services/user-service/user-service';\n\n@Component({\n selector: 'ipt-create-user-form',\n templateUrl: './create-user-form.component.html',\n styleUrls: ['./create-user-form.component.css'],\n animations: [\n trigger('fade', [\n transition('void => *', [\n style({ opacity: 0 }),\n animate(200, style({opacity: 1}))\n ])\n ])\n ]\n})\nexport class CreateUserFormComponent implements OnInit {\n @Input() userType!: string;\n @Input() visibility: boolean = false;\n @Output() userCreated = new EventEmitter<boolean>(false);\n @Output() onHide = new EventEmitter<boolean>(false);\n\n createUserForm!: FormGroup;\n phoneNumberIndicatives: any;\n idTypes: any;\n states: any;\n loader: boolean = false;\n cities: any;\n photo: string = '';\n\n constructor(\n private fb: FormBuilder,\n private parameterService: ParameterService,\n private userService: UserService\n ) {}\n\n ngOnInit() {\n this.initForm();\n this.getParameters();\n }\n\n closeModal() {\n this.visibility = false;\n this.onHide.emit(true);\n }\n\n createUser() {\n this.loader = true;\n\n let request: RegisterDashboardRq = {\n name: this.createUserForm.controls['name'].value,\n last_name: this.createUserForm.controls['last_name'].value,\n id_card_type: this.createUserForm.controls['id_card_type'].value,\n id_card: this.createUserForm.controls['id_card'].value,\n phone_indicative: this.createUserForm.controls['phone_indicative'].value,\n phone_number: this.createUserForm.controls['phone_number'].value,\n email: this.createUserForm.controls['email'].value,\n city: this.createUserForm.controls['city'].value,\n service_hour: this.createUserForm.controls['service_hour'].value,\n role: this.createUserForm.controls['role'].value,\n password: this.createUserForm.controls['password'].value,\n };\n\n this.userService.registerDashboard(request).subscribe((response) => {\n switch (response.message.code) {\n case 1:\n this.userCreated.emit(true);\n this.initForm();\n break;\n case 2:\n throw new Error(\"Los datos ingresados no corresponden a un usuario registrado en nuestro sistema, por favor reviselos.\");\n case 3:\n throw new Error(\"Los datos ingresados no cumplen los parámetros establecidos\");\n default:\n break;\n }\n this.loader = false;\n });\n }\n\n getParameters() {\n this.parameterService.getIndicatives().subscribe((response: { data: any; }) => {\n this.phoneNumberIndicatives = response.data;\n });\n this.parameterService.getCardTypes('col').subscribe((response: { data: any; }) => {\n this.idTypes = response.data;\n });\n this.parameterService.getStatesByCountry('col').subscribe((response): void => {\n this.states = response.data;\n });\n }\n\n getRolesOptions(): any {\n // Estudiante\n if (this.userType === 'student') {\n this.setPhoto('student');\n return [\n { code: '13', name: 'Student' },\n ];\n }\n\n // Académico\n if (this.userType === 'academic') {\n this.setPhoto('academic');\n return [\n { code: '11', name: 'Academic Coordinator' },\n { code: '12', name: 'Teacher' },\n ];\n }\n\n // Administrativo\n if (this.userType === 'administrative') {\n this.setPhoto('administrative');\n return [\n { code: '31', name: 'Administrative Coordinator' },\n { code: '32', name: 'Administrative Advisor' },\n ];\n }\n\n // Marketing\n if (this.userType === 'marketing') {\n this.setPhoto('marketing');\n return [\n { code: '21', name: 'Marketing Coordinator' },\n { code: '22', name: 'Marketing Advisor' },\n ];\n }\n\n // Comercial\n if (this.userType === 'commercial') {\n this.setPhoto('commercial');\n return [\n { code: '41', name: 'Commercial Coordinator' },\n { code: '42', name: 'Commercial Advisor' },\n ];\n }\n\n // Cartera\n if (this.userType === 'treasure') {\n this.setPhoto('treasure');\n return [\n { code: '51', name: 'Treauser Coordinator' },\n { code: '52', name: 'Treauser Advisor' },\n ];\n }\n }\n\n initForm() {\n this.createUserForm = this.fb.group({\n name: ['',[Validators.required,Validators.minLength(3),Validators.maxLength(32)],],\n last_name: ['',[Validators.required,Validators.minLength(5),Validators.maxLength(32),],],\n email: ['', [Validators.required, Validators.maxLength(300)]],\n id_card_type: ['', [Validators.required]],\n id_card: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(20),]],\n phone_indicative: ['', [Validators.required]],\n city: ['', [Validators.required]],\n role: ['', [Validators.required]],\n service_hour: ['', [Validators.required]],\n phone_number: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(15)]],\n password: ['', [Validators.required, Validators.minLength(7), Validators.maxLength(32)]],\n re_password: ['', [Validators.required, Validators.minLength(7), Validators.maxLength(32)]],\n state: [''],\n });\n }\n\n setPhoto(type: string) {\n if (type === 'student') this.photo = '/platform/academic/assets/student.jpg'\n if (type === 'academic') this.photo = '/platform/academic/assets/academico.png'\n if (type === 'administrative') this.photo = '/platform/administrative/assets/administrativo.jpg'\n if (type === 'marketing') this.photo = '/platform/marketing/assets//marketing.jpg'\n if (type === 'commercial') this.photo = '/platform/commercial/assets/user-form-assets/comercial.jpg'\n if (type === 'treasure') this.photo = '/platform/treasure/assets/administrativo.jpg'\n }\n\n selectRol(role: any) {\n if (role !== 'Seleccione el rol') {\n this.createUserForm.controls['role'].setValue(role);\n } else {\n this.createUserForm.controls['role'].setValue(null);\n }\n }\n\n selectIndicatives(indicative: any) {\n if (indicative !== 'Seleccione el indicativo') {\n this.createUserForm.controls['phone_indicative'].setValue(indicative);\n } else {\n this.createUserForm.controls['phone_indicative'].setValue(null);\n }\n }\n\n selectIdType(idType: any) {\n if (idType !== 'Ingrese el tipo de documento') {\n this.createUserForm.controls['id_card_type'].setValue(idType);\n } else {\n this.createUserForm.controls['id_card_type'].setValue(null);\n }\n }\n\n selectState(state: any) {\n if (state !== 'Seleccione el departamento') {\n this.createUserForm.controls['state'].setValue(state);\n this.parameterService.getCitiesByState(state).subscribe((response) => {\n this.cities = response.data;\n });\n } else {\n this.createUserForm.controls['state'].setValue(null);\n this.createUserForm.controls['city'].setValue(null);\n this.cities = [];\n }\n }\n\n selectCity(city: any) {\n if (city !== 'Ciudad de residencia') {\n this.createUserForm.controls['city'].setValue(city);\n } else {\n this.createUserForm.controls['city'].setValue(null);\n }\n }\n}\n","<main *ngIf=\"visibility\">\n <div @fade class=\"modal_container\">\n <div class=\"header_modal\">\n <h1>Crear usuario de {{ userType | titlecase}}</h1>\n <button (click)=\"closeModal()\">x</button>\n </div>\n <div class=\"grid_container\">\n <div>\n <form autocomplete=\"off\" [formGroup]=\"createUserForm\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"createUserForm.controls['name']\"\n [validateText]=\"'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"createUserForm.controls['last_name']\"\n [validateText]=\"'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Email'\"\n [control]=\"createUserForm.controls['email']\"\n [validateText]=\"'Debe tener dominio @inglesparatodos.edu.co'\"\n ></ipt-input>\n <ipt-select\n [isRequired]=\"true\"\n [defaultText]=\"'Rol'\"\n (eventSelect)=\"selectRol($event)\"\n [data]=\"getRolesOptions()\"\n ></ipt-select>\n <ipt-select\n [isRequired]=\"true\"\n [data]=\"phoneNumberIndicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Teléfono'\"\n [control]=\"createUserForm.controls['phone_number']\"\n [validateText]=\"'Debe ingresar un número de teléfono válido'\"\n ></ipt-input>\n <ipt-select\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"createUserForm.controls['id_card']\"\n [validateText]=\"'Debe ingresar el número de documento'\"\n ></ipt-input>\n <ipt-select\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento'\"\n ></ipt-select>\n <ipt-select\n [isRequired]=\"true\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad'\"\n ></ipt-select>\n <ipt-input *ngIf=\"!(userType === 'student')\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Horas de servicio'\"\n [control]=\"createUserForm.controls['service_hour']\"\n [validateText]=\"'Debe ingresar las horas de servicio'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contraseña'\"\n [control]=\"createUserForm.controls['password']\"\n >\n </ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contraseña'\"\n [control]=\"createUserForm.controls['re_password']\"\n >\n </ipt-input>\n </form>\n\n <div class=\"buttons-container\">\n <ipt-button\n [label]=\"'Crear usuario'\"\n [isEnabled]=\"\n !loader &&\n createUserForm.value['re_password'] ===\n createUserForm.value['password']\n \"\n (onClick)=\"createUser()\"\n [primary]=\"true\"\n >\n </ipt-button>\n </div>\n </div>\n <div [ngStyle]=\"{'background-image': 'url(' + photo + ')'}\" class=\"user_type_image\"></div>\n </div>\n </div>\n</main>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'genderDisplay'\n})\nexport class GenderDisplayPipe implements PipeTransform {\n transform(value: number | null): string {\n if (value === 1) {\n return 'Masculino';\n } else if (value === 2) {\n return 'Femenino';\n }\n return 'Seleccione género';\n }\n}","import { Component, EventEmitter, Input, OnInit, OnChanges, SimpleChanges, Output, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { UserService } from '../../../core/services/user-service/user-service';\nimport { BaseService } from '../../../core/utils/base-service/base.service';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { IFormDataRq } from '../../../core/models/user/user-rq.model';\nimport Swal from 'sweetalert2';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'ipt-update-user-form',\n templateUrl: './update-user-form.component.html',\n styleUrls: ['./update-user-form.component.css'],\n providers: []\n})\nexport class updateUserFormComponent implements OnInit, OnChanges, OnDestroy {\n @Input() DataStudent: any;\n @Input() visibleModal: boolean = false;\n @Output() closeModalIS = new EventEmitter<boolean>();\n @Output() userUpdatedEvent = new EventEmitter<void>();\n updateUserForm!: FormGroup;\n confirmForm!: FormGroup;\n photo: string = '';\n phoneNumberIndicatives: any[] = [];\n idTypes: any[] = [];\n loader: boolean = false;\n states: any = [];\n cities: any = [];\n countries: any = [];\n showParentSection: boolean = false;\n showEmailIpt: boolean = false;\n showConfirmSection: boolean = false;\n parametersLoaded: boolean = false;\n parametersAll?: any;\n indicatives: any[] = [];\n civilStatus: any[] = [];\n genders: any[] = [];\n stratums: any[] = [];\n showConfirmDialog: boolean = false;\n userRoleCommercial:boolean =false;\n // userUpdated = false;\n private initialFormValue: any = [];\n private idTypeSubscription?: Subscription;\n private pendingInit: boolean = false;\n \n isStudent: boolean = false;\n justifyOptions: any[] = [];\n \n reasons = [\n { name: 'Corrección de errores en datos personales', code: 1 },\n { name: 'Correccion de documentacion', code: 2 },\n { name: 'Actualización de contacto', code: 3 },\n { name: 'correccion datos de Acudiente', code: 4 },\n { name: 'Cambio de contraseña', code: 5 },\n { name: 'Cambio de residencia', code: 6 },\n { name: 'Suspensión o reactivación de cuenta', code: 7 },\n { name: 'Otro', code: 8 }\n ];\n\n constructor(\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef,\n private parameterService: ParameterService,\n private baseService: BaseService,\n private userService: UserService,\n ) {\n this.initForm();\n this.initConfirmForm();\n this.validationUserRole();\n }\n\n ngOnInit(): void {\n this.getParameters();\n this.trackIdTypeChanges();\n this.setJustifyOptions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['visibleModal'] && changes['visibleModal'].currentValue) {\n if (this.parametersLoaded) {\n this.initializeForm();\n this.setJustifyOptions();\n this.trackIdTypeChanges();\n this.validationUserRole();\n this.cdr.detectChanges();\n }else {\n this.pendingInit = true;\n }\n }\n }\n\n ngOnDestroy(): void {\n if (this.idTypeSubscription) {\n this.idTypeSubscription.unsubscribe();\n }\n }\n private initConfirmForm(): void {\n this.confirmForm = this.fb.group({\n reason: [null, Validators.required],\n observation: ['', [Validators.required, Validators.maxLength(250)]]\n });\n }\n\n private setJustifyOptions(): void {\n this.isStudent = this.DataStudent?.role === 13;\n\n if (this.isStudent) {\n // Lista completa para estudiante\n this.justifyOptions = [\n { name: 'Activo', code: 1 },\n { name: 'Suspendido p/pago', code: 2 },\n { name: 'Pausado proceso', code: 3 },\n { name: 'Removido', code: 4 }\n ];\n this.updateUserForm.get('status')?.disable({ emitEvent: false });\n } else {\n // Lista reducida para otros roles\n this.justifyOptions = [\n { name: 'Activo', code: 1 },\n { name: 'Removido', code: 4 }\n ];\n this.updateUserForm.get('status')?.enable({ emitEvent: false });\n }\n }\n\n getParameters(): void {\n if (this.parametersLoaded) {\n this.setParameters();\n this.initializeForm();\n return;\n }\n this.parameterService.getAllParametersCodForm().subscribe({\n next: (response) => {\n this.parametersAll = response.data;\n this.parametersLoaded = true;\n this.setParameters();\n this.initializeForm();\n this.trackIdTypeChanges();\n this.cdr.detectChanges();\n this.pendingInit = false;\n },\n error: (err) => {\n console.error('Error fetching parameters:', err);\n this.parametersLoaded = false;\n }\n });\n }\n\n setParameters(): void {\n this.idTypes = this.parametersAll?.TypeIdCardByCountryCol;\n this.indicatives = this.parametersAll?.indicatives;\n this.countries = this.parametersAll?.country;\n this.civilStatus = this.parametersAll?.civilStatus;\n this.states = this.parametersAll?.State;\n this.cities = this.parametersAll?.city;\n if (this.parametersAll && this.parametersAll.gender) {\n // Transformar gender en un arreglo de { code, name }\n this.genders = this.parametersAll.gender.map((gender: any) => ({\n code: gender.code,\n name: gender.name_spanish\n }));\n } else {\n this.genders = [];\n }\n }\n\n private initializeForm(): void {\n this.showParentSection = !!this.DataStudent?.cods?.parent?.code;\n this.showEmailIpt = !!this.DataStudent?.email_ipt && this.DataStudent.email_ipt !== false;\n this.initForm();\n this.populateForm();\n }\n\n initForm(): void {\n const baseForm = {\n name: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(32)]],\n last_name: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(32)]],\n email: ['', [Validators.required, Validators.email, Validators.maxLength(300)]],\n gender: ['', [Validators.required]],\n id_card_type: ['', [Validators.required]],\n id_card: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],\n phone_indicative: ['', [Validators.required]],\n phone_number: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(15)]],\n country: ['', [Validators.required]],\n state: ['', [Validators.required]],\n city: ['', [Validators.required]],\n role: [{ value: '', disabled: true }],\n service_hour: ['', Validators.required],\n password: ['', []],\n re_password: ['', []],\n changePassword: [false],\n status: ['', Validators.required]\n };\n\n if (this.showEmailIpt) {\n Object.assign(baseForm, {\n email_ipt: ['', [Validators.required, Validators.email, Validators.maxLength(255)]]\n });\n }\n\n if (this.showParentSection) {\n Object.assign(baseForm, {\n parent_name: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(150)]],\n parent_last_name: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(150)]],\n parent_id_card_type: ['', [Validators.required]],\n parent_id_card: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(30)]],\n parent_phone_indicative: ['', [Validators.required]],\n parent_phone_number: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(20)]],\n parent_occupation: ['', [Validators.required, Validators.maxLength(50)]],\n parent_office_adrress: ['', [Validators.required, Validators.maxLength(150)]],\n parent_email: ['', [Validators.email, Validators.maxLength(255)]]\n });\n }\n\n this.updateUserForm = this.fb.group(baseForm, { validators: this.passwordMatchValidator });\n\n this.updateUserForm.get('changePassword')?.valueChanges.subscribe((checked: boolean) => {\n const passwordControl = this.updateUserForm.get('password');\n const rePasswordControl = this.updateUserForm.get('re_password');\n\n if (checked) {\n passwordControl?.setValidators([Validators.required, Validators.minLength(5), Validators.maxLength(32)]);\n rePasswordControl?.setValidators([Validators.required, Validators.minLength(5), Validators.maxLength(32)]);\n } else {\n passwordControl?.clearValidators();\n rePasswordControl?.clearValidators();\n passwordControl?.setValue('');\n rePasswordControl?.setValue('');\n }\n\n passwordControl?.updateValueAndValidity();\n rePasswordControl?.updateValueAndValidity();\n });\n\n this.updateUserForm.get('password')?.valueChanges.subscribe(() => {\n this.updateUserForm.updateValueAndValidity();\n });\n this.updateUserForm.get('re_password')?.valueChanges.subscribe(() => {\n this.updateUserForm.updateValueAndValidity();\n });\n }\n\n passwordMatchValidator(form: FormGroup): { [key: string]: boolean } | null {\n const changePassword = form.get('changePassword')?.value;\n const password = form.get('password')?.value;\n const rePassword = form.get('re_password')?.value;\n if (!changePassword) {\n return null;\n }\n const mismatch = password && rePassword && password !== rePassword;\n return mismatch ? { mismatch: true } : null;\n }\n\n noWhitespaceValidator(control: AbstractControl): { [key: string]: boolean } | null {\n if (control.value && typeof control.value === 'string') {\n const trimmedValue = control.value.trim();\n if (trimmedValue.length === 0) {\n return { onlyWhitespace: true };\n }\n if (control.value !== trimmedValue) {\n return { hasWhitespace: true };\n }\n }\n return null;\n }\n\n transformRole(role: any): string {\n const roleMap: { [key: number]: string } = {\n 1: 'Super Admin',\n 10: 'Lider Academico',\n 11: 'Coordinador Academico',\n 12: 'Teacher Academico',\n 13: 'Estudiante',\n 15: 'Posible Estudiante',\n 20: 'Lider Marketing',\n 21: 'Coordinador Marketing',\n 22: 'Auxiliar Marketing',\n 30: 'Lider Administrativo',\n 31: 'Coordinador Administrativo',\n 32: 'Auxiliar Administrativo',\n 40: 'Lider Comercial',\n 41: 'Coordinador Comercial',\n 42: 'Asesor Comercial',\n 50: 'Lider Cartera',\n 51: 'Coordinador Cartera',\n 52: 'Asesor Cartera',\n 60: 'Proveedor'\n };\n return roleMap[Number(role)] || '';\n }\n\n populateForm(): void {\n if (this.DataStudent) {\n const formValue: any = {\n name: this.DataStudent.name || '',\n last_name: this.DataStudent.last_name || '',\n email: this.DataStudent.email || '',\n gender: this.DataStudent.gender || null,\n id_card_type: this.DataStudent.id_card_type || '',\n id_card: this.DataStudent.id_card || '',\n phone_indicative: this.DataStudent.phone_indicative || '',\n phone_number: this.DataStudent.phone_number || '',\n country: this.DataStudent.city?.country,\n state: this.DataStudent.city?.state,\n city: this.DataStudent.city?.code,\n role: this.transformRole(this.DataStudent.role) || '',\n service_hour: this.DataStudent.service_hour || 0,\n changePassword: false,\n password: '',\n re_password: '',\n status: this.DataStudent.user_status || ''\n };\n\n if (this.showEmailIpt) {\n formValue.email_ipt = this.DataStudent.email_ipt || '';\n }\n\n if (this.showParentSection) {\n Object.assign(formValue, {\n parent_name: this.DataStudent.cods?.parent?.name || '',\n parent_last_name: this.DataStudent.cods?.parent?.last_name || '',\n parent_id_card_type: this.DataStudent.cods?.parent?.id_card_type || '',\n parent_id_card: this.DataStudent.cods?.parent?.id_card || '',\n parent_phone_indicative: this.DataStudent.cods?.parent?.phone_indicative || '',\n parent_phone_number: this.DataStudent.cods?.parent?.phone_number || '',\n parent_occupation: this.DataStudent.cods?.parent?.occupation || '',\n parent_office_adrress: this.DataStudent.cods?.parent?.office_adrress || '',\n parent_email: this.DataStudent.cods?.parent?.email || ''\n });\n }\n\n this.updateIdCardValidators(this.DataStudent.id_card_type);\n this.updateUserForm.reset();\n this.updateUserForm.patchValue(formValue);\n this.initialFormValue = { ...this.updateUserForm.value };\n if (formValue.country) {\n this.countries = this.parametersAll?.country;\n this.selectCountry(this.DataStudent.city?.country);\n }\n if (formValue.state) {\n this.selectState(this.DataStudent.city?.state);\n }\n if (formValue.city) {\n this.selectCity(this.DataStudent.city?.code);\n }\n if (formValue.id_card_type) {\n this.idTypes = this.parametersAll?.TypeIdCardByCountryCol;\n this.selectIdType('id_card_type',this.DataStudent.id_card_type);\n }\n if (formValue.phone_indicative) {\n this.indicatives = this.parametersAll?.indicatives;\n this.selectIndicative('phone_indicative', this.DataStudent.phone_indicative);\n }\n if (formValue.parent_phone_indicative) {\n this.indicatives = this.parametersAll?.indicatives;\n this.selectIndicative('parent_phone_indicative', this.DataStudent.cods?.parent?.phone_indicative);\n }\n if (formValue.gender) {\n if (this.parametersAll && this.parametersAll.gender) {\n // Transformar gender en un arreglo de { code, name }\n this.genders = this.parametersAll.gender.map((gender: any) => ({\n code: gender.code,\n name: gender.name_spanish\n }));\n } else {\n this.genders = [];\n }\n this.selectGender(this.DataStudent.gender);\n }\n }\n }\n\n validationUserRole(){\n const userRole = this.baseService.getUserRole();\n if (userRole == 40 || userRole == 41 || userRole == 42) {\n this.userRoleCommercial = true;\n }else{\n this.userRoleCommercial = false;\n }\n }\n closeTable(): void {\n this.visibleModal = false;\n this.showConfirmDialog = false;\n this.confirmForm.reset();\n this.updateUserForm.reset();\n this.idTypes = [];\n this.countries = [];\n this.genders = [];\n this.updateIdCardValidators(null);\n this.closeModalIS.emit(false);\n }\n\n private trackIdTypeChanges(): void {\n if (this.idTypeSubscription) {\n this.idTypeSubscription.unsubscribe(); \n }\n this.idTypeSubscription = this.updateUserForm.get('id_card_type')?.valueChanges.subscribe(value => {\n this.updateIdCardValidators(value);\n });\n }\n\n private updateIdCardValidators(idCardType: any): void {\n\n const idCardControl = this.updateUserForm.get('id_card');\n if (!idCardControl) return;\n\n if (idCardType == 7 || idCardType == 5) {\n idCardControl.setValidators([\n Validators.required,\n Validators.minLength(5),\n Validators.maxLength(20),\n Validators.pattern(/^[a-zA-Z0-9]*$/) // Letras y números\n ]);\n } else {\n idCardControl.setValidators([\n Validators.required,\n Validators.minLength(5),\n Validators.maxLength(20),\n Validators.pattern(/^[0-9]*$/) // Solo números\n ]);\n }\n idCardControl.updateValueAndValidity();\n }\n\n selectRol(role: any): void {\n if (role !== null) {\n this.updateUserForm.get('role')?.setValue(this.transformRole(role));\n } else {\n this.updateUserForm.get('role')?.setValue('');\n }\n }\n\n selectIndicative(field: string, indicative: any): void {\n if (indicative !== null) {\n this.updateUserForm.get(field)?.setValue(indicative);\n } else {\n this.updateUserForm.get(field)?.setValue(null);\n }\n }\n\n selectIdType(field: string, idType: any): void {\n if (idType !== null) {\n this.updateUserForm.get(field)?.setValue(idType);\n } else {\n this.updateUserForm.get(field)?.setValue(null);\n }\n }\n\n selectGender(gender: any): void {\n if (gender !== null) {\n this.updateUserForm.get('gender')?.setValue(gender);\n } else {\n this.updateUserForm.get('gender')?.setValue(null);\n }\n }\n\n selectCountry(country: any) {\n const countryNumber = typeof country === 'string' ? parseInt(country, 10) : country;\n if (country != null) {\n this.updateUserForm.controls['country'].setValue(countryNumber);\n if (this.parametersAll && this.parametersAll?.State) {\n this.states = this.parametersAll.State.filter((course: any) => {\n const state = typeof course.country === 'string'\n ? parseInt(course.country, 10)\n : course.country;\n return state === countryNumber;\n });\n } else {\n this.states = [];\n }\n this.updateUserForm.controls['state'].setValue(null);\n this.updateUserForm.controls['city'].setValue(null);\n this.cities = [];\n } else {\n this.updateUserForm.controls['country'].setValue(null);\n this.states = [];\n this.cities = [];\n this.cdr.detectChanges();\n }\n }\n\n selectState(state: any): void {\n const stateNumber = typeof state === 'string' ? parseInt(state, 10) : state;\n if (state !== null) {\n this.updateUserForm.controls['state'].setValue(stateNumber);\n this.updateUserForm.controls['city'].setValue(null);\n this.cities = [];\n this.getState(stateNumber);\n } else {\n this.updateUserForm.controls['state'].setValue(null);\n this.updateUserForm.controls['city'].setValue(null);\n this.cities = [];\n }\n }\n\n getState(state: any): void {\n this.getCity(state);\n }\n\n getCity(state: any): void {\n const stateNumber = typeof state === 'string' ? parseInt(state, 10) : state;\n if (this.parametersAll?.city) {\n this.cities = this.parametersAll.city.filter((course: any) => {\n const cityState = typeof course.state === 'string' ? parseInt(course.state, 10) : course.state;\n return cityState === stateNumber;\n });\n } else {\n this.cities = [];\n }\n }\n\n selectCity(city: any): void {\n const cityNumber = typeof city === 'string' ? parseInt(city, 10) : city;\n if (city !== null) {\n this.updateUserForm.controls['city'].setValue(cityNumber);\n } else {\n this.updateUserForm.controls['city'].setValue(null);\n }\n }\n\n selectReason(reason: any): void {\n this.confirmForm.controls['reason'].setValue(reason ? reason : null);\n }\n \n // updateUser(): void {\n // if (\n // this.updateUserForm.invalid ||\n // this.updateUserForm.hasError('mismatch') ||\n // !this.hasFormChanged()\n // ) {\n // this.updateUserForm.markAllAsTouched();\n // console.log('createUser - Validation failed:', {\n // invalid: this.updateUserForm.invalid,\n // mismatch: this.updateUserForm.hasError('mismatch'),\n // hasChanges: this.hasFormChanged()\n // });\n // return;\n // }\n\n // this.loader = true;\n // const formValue = this.updateUserForm.getRawValue();\n\n // const request:any = {\n // token: this.baseService.getUserToken(),\n // user: {\n // code: this.DataStudent.code,\n // name: formValue.name,\n // last_name: formValue.last_name,\n // id_card_type: formValue.id_card_type,\n // id_card: formValue.id_card,\n // phone_indicative: formValue.phone_indicative,\n // phone_number: formValue.phone_number,\n // email: formValue.email,\n // gender: formValue.gender,\n // city: formValue.city,\n // service_hour: formValue.service_hour,\n // role: this.DataStudent.role,\n // status: formValue.status,\n // ...(this.showEmailIpt ? { email_ipt: formValue.email_ipt } : {}),\n // ...(formValue.changePassword && formValue.password ? { password: formValue.password } : {})\n // },\n // parent: this.showParentSection\n // ? {\n // code: this.DataStudent.cods?.parent?.code || null,\n // name: formValue.parent_name || null,\n // last_name: formValue.parent_last_name || null,\n // id_card_type: formValue.parent_id_card_type || null,\n // id_card: formValue.parent_id_card || null,\n // phone_indicative: formValue.parent_phone_indicative || null,\n // phone_number: formValue.parent_phone_number || null,\n // occupation: formValue.parent_occupation || null,\n // office_adrress: formValue.parent_office_adrress || null,\n // email: formValue.parent_email || null\n // }\n // : null\n // };\n // console.log(request);\n // this.userService.updateUserAndParentByCode(request).subscribe((response) => {\n // // this.courseType = response.data;\n // if (response.message.code === 1) {\n // Swal.fire({\n // position: 'center',\n // icon: 'success',\n // title: 'usuario actualizado satisfactoriamente',\n // showConfirmButton: false,\n // timer: 2500,\n // });\n // // this.userUpdated = true\n // this.userUpdatedEvent.emit();\n // this.closeTable();\n // }else{\n // Swal.fire({\n // position: 'center',\n // icon: 'error',\n // title: 'Ha ocurrido un error inesperado',\n // text: response.data.message,\n // showConfirmButton: false,\n // timer: 2500,\n // });\n // // this.userUpdated = false\n // }\n // });\n\n // this.loader = false;\n // }\n\n hasFormChanged(): boolean {\n if (!this.initialFormValue || !this.DataStudent) {\n return false;\n }\n\n const currentValue = this.updateUserForm.getRawValue();\n\n if (currentValue.changePassword) {\n const password = currentValue.password;\n const rePassword = currentValue.re_password;\n const passwordControl = this.updateUserForm.get('password');\n const rePasswordControl = this.updateUserForm.get('re_password');\n\n if (\n passwordControl?.valid &&\n rePasswordControl?.valid &&\n password === rePassword &&\n password?.trim() !== ''\n ) {\n return true;\n }\n }\n\n const fieldsToCompare: (keyof IFormDataRq)[] = [\n 'name',\n 'last_name',\n 'email',\n 'gender',\n 'id_card_type',\n 'id_card',\n 'phone_indicative',\n 'phone_number',\n 'country',\n 'state',\n 'city',\n 'role',\n 'service_hour',\n 'status'\n ];\n\n if (this.showEmailIpt) {\n fieldsToCompare.push('email_ipt');\n }\n\n if (this.showParentSection) {\n fieldsToCompare.push(\n 'parent_name',\n 'parent_last_name',\n 'parent_id_card_type',\n 'parent_id_card',\n 'parent_phone_indicative',\n 'parent_phone_number',\n 'parent_occupation',\n 'parent_office_adrress',\n 'parent_email'\n );\n }\n\n for (const field of fieldsToCompare) {\n let originalValue: any;\n let currentFieldValue: any = currentValue[field];\n\n switch (field) {\n case 'name':\n originalValue = this.DataStudent.name || '';\n break;\n case 'last_name':\n originalValue = this.DataStudent.last_name || '';\n break;\n case 'email':\n originalValue = this.DataStudent.email || '';\n break;\n case 'email_ipt':\n originalValue = this.DataStudent.email_ipt || '';\n break;\n case 'gender':\n originalValue = this.DataStudent.gender || null;\n break;\n case 'id_card_type':\n originalValue = this.DataStudent.id_card_type || '';\n break;\n case 'id_card':\n originalValue = this.DataStudent.id_card || '';\n break;\n case 'phone_indicative':\n originalValue = this.DataStudent.phone_indicative || '';\n break;\n case 'phone_number':\n originalValue = this.DataStudent.phone_number || '';\n break;\n case 'country':\n originalValue = this.DataStudent.city?.country || '';\n break;\n case 'state':\n originalValue = this.DataStudent.city?.state || '';\n break;\n case 'city':\n originalValue = this.DataStudent.city?.code || '';\n break;\n case 'role':\n originalValue = this.transformRole(this.DataStudent.role) || '';\n break;\n case 'service_hour':\n originalValue = this.DataStudent.service_hour;\n break;\n case 'status':\n originalValue = this.DataStudent.user_status || '';\n break;\n case 'parent_name':\n originalValue = this.DataStudent.cods?.parent?.name || '';\n break;\n case 'parent_last_name':\n originalValue = this.DataStudent.cods?.parent?.last_name || '';\n break;\n case 'parent_id_card_type':\n originalValue = this.DataStudent.cods?.parent?.id_card_type;\n break;\n case 'parent_id_card':\n originalValue = this.DataStudent.cods?.parent?.id_card || '';\n break;\n case 'parent_phone_indicative':\n originalValue = this.DataStudent.cods?.parent?.phone_indicative || '';\n break;\n case 'parent_phone_number':\n originalValue = this.DataStudent.cods?.parent?.phone_number || '';\n break;\n case 'parent_occupation':\n originalValue = this.DataStudent.cods?.parent?.occupation || '';\n break;\n case 'parent_office_adrress':\n originalValue = this.DataStudent.cods?.parent?.office_adrress || '';\n break;\n case 'parent_email':\n originalValue = this.DataStudent.cods?.parent?.email || '';\n break;\n default:\n originalValue = '';\n }\n\n const normalizedCurrent = currentFieldValue != null ? String(currentFieldValue).trim() : '';\n const normalizedOriginal = originalValue != null ? String(originalValue).trim() : '';\n\n if (normalizedCurrent !== normalizedOriginal) {\n return true;\n }\n }\n\n return false;\n }\n\n showConfirmSectionHandler(): void {\n if (\n this.updateUserForm.invalid ||\n this.updateUserForm.hasError('mismatch') ||\n !this.hasFormChanged()\n ) {\n this.updateUserForm.markAllAsTouched();\n console.log('Validation failed:', {\n invalid: this.updateUserForm.invalid,\n mismatch: this.updateUserForm.hasError('mismatch'),\n hasChanges: this.hasFormChanged()\n });\n return;\n }\n this.showConfirmSection = true;\n }\n\n sendUpdateRequest(): void {\n if (this.confirmForm.invalid) {\n this.confirmForm.markAllAsTouched();\n return;\n }\n\n this.loader = true;\n const formValue = this.updateUserForm.getRawValue();\n const confirmValue = this.confirmForm.value;\n\n const request: any = {\n token: this.baseService.getUserToken(),\n user: {\n code: this.DataStudent.code,\n name: formValue.name,\n last_name: formValue.last_name,\n id_card_type: formValue.id_card_type,\n id_card: formValue.id_card,\n phone_indicative: formValue.phone_indicative,\n phone_number: formValue.phone_number,\n email: formValue.email,\n gender: formValue.gender,\n city: formValue.city,\n service_hour: formValue.service_hour,\n role: this.DataStudent.role,\n status: formValue.status,\n ...(this.showEmailIpt ? { email_ipt: formValue.email_ipt } : {}),\n ...(formValue.changePassword && formValue.password ? { password: formValue.password } : {})\n },\n parent: this.showParentSection\n ? {\n code: this.DataStudent.cods?.parent?.code || null,\n name: formValue.parent_name || null,\n last_name: formValue.parent_last_name || null,\n id_card_type: formValue.parent_id_card_type || null,\n id_card: formValue.parent_id_card || null,\n phone_indicative: formValue.parent_phone_indicative || null,\n phone_number: formValue.parent_phone_number || null,\n occupation: formValue.parent_occupation || null,\n office_adrress: formValue.parent_office_adrress || null,\n email: formValue.parent_email || null\n }\n : null,\n reason: confirmValue.reason,\n observation: confirmValue.observation,\n };\n\n console.log(request);\n this.userService.updateUserByCode(request).subscribe({\n next: (response) => {\n if (response.message.code === 1) {\n Swal.fire({\n position: 'center',\n icon: 'success',\n title: 'Usuario actualizado satisfactoriamente',\n showConfirmButton: false,\n timer: 2500,\n });\n this.userUpdatedEvent.emit();\n this.closeTable();\n } else {\n Swal.fire({\n position: 'center',\n icon: 'error',\n title: 'Ha ocurrido un error inesperado',\n text: response.data.message,\n showConfirmButton: false,\n timer: 2500,\n });\n }\n this.loader = false;\n },\n error: (err) => {\n console.error('Error updating user:', err);\n Swal.fire({\n position: 'center',\n icon: 'error',\n title: 'Error al actualizar el usuario',\n showConfirmButton: false,\n timer: 2500,\n });\n this.loader = false;\n }\n });\n }\n\n showConfirmDialogs(): void {\n if (\n this.updateUserForm.invalid ||\n this.updateUserForm.hasError('mismatch') ||\n !this.hasFormChanged()\n ) {\n this.updateUserForm.markAllAsTouched();\n console.log('Validation failed:', {\n invalid: this.updateUserForm.invalid,\n mismatch: this.updateUserForm.hasError('mismatch'),\n hasChanges: this.hasFormChanged()\n });\n return;\n }\n\n this.confirmForm.reset(); \n this.showConfirmDialog = true; \n }\n\n acceptConfirmDialog(): void {\n if (this.confirmForm.invalid) {\n this.confirmForm.markAllAsTouched();\n return;\n }\n this.sendUpdateRequest();\n }\n\n rejectConfirmDialog(): void {\n this.confirmForm.reset();\n }\n\n closeConfirmDialog(): void {\n this.showConfirmDialog = false;\n this.confirmForm.reset();\n this.confirmForm.get('reason')?.setValue('');\n this.confirmForm.get('observation')?.setValue('');\n }\n\n\n}","<main *ngIf=\"visibleModal\">\n <div class=\"modal_container\">\n <div class=\"header_modal yellow-300\">\n <h1>Actualizar usuario</h1>\n <button (click)=\"closeTable()\">x</button>\n </div>\n <div class=\"grid_container\">\n <div>\n <form *ngIf=\"updateUserForm\" autocomplete=\"off\" [formGroup]=\"updateUserForm\">\n <!-- User Information Section -->\n <div class=\"section-header\">\n <h2>Información del usuario</h2>\n </div>\n <div class=\"form-grid\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"updateUserForm.controls['name']\"\n [validateText]=\"updateUserForm.controls['name'].hasError('required') ? 'Debe ingresar el nombre' :\n updateUserForm.controls['name'].hasError('minlength') ? 'Mínimo 3 caracteres' :\n updateUserForm.controls['name'].hasError('maxlength') ? 'Máximo 32 caracteres' :\n updateUserForm.controls['name'].hasError('pattern') ? 'Solo letras, espacios y guiones' :\n updateUserForm.controls['name'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['name'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"updateUserForm.controls['last_name']\"\n [validateText]=\"updateUserForm.controls['last_name'].hasError('required') ? 'Debe ingresar los apellidos' :\n updateUserForm.controls['last_name'].hasError('minlength') ? 'Mínimo 3 caracteres' :\n updateUserForm.controls['last_name'].hasError('maxlength') ? 'Máximo 32 caracteres' :\n updateUserForm.controls['last_name'].hasError('pattern') ? 'Solo letras, espacios y guiones' :\n updateUserForm.controls['last_name'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['last_name'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Email'\"\n [control]=\"updateUserForm.controls['email']\"\n [validateText]=\"updateUserForm.controls['email'].hasError('required') ? 'Debe ingresar un correo válido' :\n updateUserForm.controls['email'].hasError('maxlength') ? 'Máximo 300 caracteres' :\n updateUserForm.controls['email'].hasError('pattern') ? 'Tiene que ser un email correcto' :\n updateUserForm.controls['email'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['email'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar un correo válido'\"\n ></ipt-input>\n <ipt-input\n *ngIf=\"showEmailIpt\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Email IPT'\"\n [control]=\"updateUserForm.controls['email_ipt']\"\n [validateText]=\"updateUserForm.controls['email_ipt'].hasError('required') ? 'Debe ingresar un correo IPT válido' :\n updateUserForm.controls['email_ipt'].hasError('maxlength') ? 'Máximo 255 caracteres' :\n updateUserForm.controls['email_ipt'].hasError('pattern') ? 'Tiene que ser un email correcto' :\n updateUserForm.controls['email_ipt'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['email_ipt'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar un correo IPT válido'\"\n ></ipt-input>\n <ipt-input\n *ngIf=\"showEmailIpt\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Horas de servicio'\"\n [control]=\"updateUserForm.controls['service_hour']\"\n [validateText]=\"'Debe ingresar las horas de servicio'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Rol'\"\n [control]=\"updateUserForm.controls['role']\"\n [validateText]=\"'Rol requerido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['gender'].value\"\n [control]=\"updateUserForm.controls['gender']\"\n [selectCode]=\"updateUserForm.controls['gender'].value === null ? 'Seleccione género' : (updateUserForm.controls['gender'].value | genderDisplay)\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'Seleccione género'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['phone_indicative'].value\"\n [control]=\"updateUserForm.controls['phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicative('phone_indicative', $event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Teléfono'\"\n [control]=\"updateUserForm.controls['phone_number']\"\n [validateText]=\"'Debe ingresar un número de teléfono válido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['id_card_type'].value\"\n [control]=\"updateUserForm.controls['id_card_type']\"\n [selectCode]=\"updateUserForm.controls['id_card_type'].value === null ? 'Tipo de documento' : updateUserForm.controls['id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType('id_card_type', $event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"updateUserForm.controls['id_card']\"\n [validateText]=\"updateUserForm.controls['id_card'].hasError('required') ? 'Debe ingresar el número de documento' :\n updateUserForm.controls['id_card'].hasError('minlength') ? 'Mínimo 5 caracteres' :\n updateUserForm.controls['id_card'].hasError('maxlength') ? 'Máximo 20 caracteres' :\n updateUserForm.controls['id_card'].hasError('pattern') ? (updateUserForm.controls['id_card_type'].value === 7 || updateUserForm.controls['id_card_type'].value === 5 ? 'Solo letras y números permitidos' : 'Solo números permitidos') :\n 'Debe ingresar el número de documento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['country'].value\"\n [control]=\"updateUserForm.controls['country']\"\n [selectCode]=\"updateUserForm.controls['country'].value === null ? 'País de residencia' : updateUserForm.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'País de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['state'].value\"\n [control]=\"updateUserForm.controls['state']\"\n [selectCode]=\"updateUserForm.controls['state'].value === null ? 'Departamento o estado' : updateUserForm.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['city'].value\"\n [control]=\"updateUserForm.controls['city']\"\n [selectCode]=\"updateUserForm.controls['city'].value === null ? 'Ciudad de residencia' : updateUserForm.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <div class=\"card-status\">\n <span class=\"span-status\">Estado</span>\n <p-selectButton \n [options]=\"justifyOptions\" \n formControlName=\"status\" \n optionLabel=\"name\" \n optionValue=\"code\">\n </p-selectButton>\n </div>\n <div *ngIf=\"!userRoleCommercial\" class=\"field\">\n <p-checkbox\n formControlName=\"changePassword\"\n label=\"Cambio de contraseña\"\n [binary]=\"true\"\n ></p-checkbox>\n </div>\n </div>\n <div class=\"form-grid\" *ngIf=\"updateUserForm.controls['changePassword'].value\">\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contraseña'\"\n [control]=\"updateUserForm.controls['password']\"\n [validateText]=\"updateUserForm.controls['password'].hasError('required') ? 'La contraseña es requerida' :\n updateUserForm.controls['password'].hasError('minlength') ? 'Mínimo 5 caracteres' :\n updateUserForm.controls['password'].hasError('maxlength') ? 'Máximo 32 caracteres' :\n 'Ingrese una contraseña válida'\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contraseña'\"\n [control]=\"updateUserForm.controls['re_password']\"\n [validateText]=\"updateUserForm.controls['re_password'].hasError('required') ? 'Debe repetir la contraseña' :\n updateUserForm.controls['re_password'].hasError('minlength') ? 'Mínimo 5 caracteres' :\n updateUserForm.controls['re_password'].hasError('maxlength') ? 'Máximo 32 caracteres' :\n updateUserForm.hasError('mismatch') ? 'Las contraseñas no coinciden' :\n 'Repita la contraseña'\"\n ></ipt-input>\n </div>\n\n <!-- Mensaje adicional para el error de mismatch (opcional, si quieres mostrarlo por separado) -->\n\n <div *ngIf=\"updateUserForm.hasError('mismatch') && updateUserForm.controls['changePassword'].value\" class=\"error-message\">\n <small >Las contraseñas no coinciden</small>\n </div>\n <!-- Parent Information Section -->\n <div class=\"section-header\" *ngIf=\"DataStudent?.cods\">\n <h2>Información del acudiente</h2>\n </div>\n <div *ngIf=\"DataStudent?.cods\">\n <div *ngIf=\"showParentSection; else noParentMessage\">\n <div class=\"form-grid\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"updateUserForm.controls['parent_name']\"\n [validateText]=\"'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"updateUserForm.controls['parent_last_name']\"\n [validateText]=\"'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupación'\"\n [control]=\"updateUserForm.controls['parent_occupation']\"\n [validateText]=\"'Debe ingresar la ocupación'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Email'\"\n [control]=\"updateUserForm.controls['parent_email']\"\n [validateText]=\"'Debe ingresar un correo válido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['parent_id_card_type'].value\"\n [control]=\"updateUserForm.controls['parent_id_card_type']\"\n [selectCode]=\"updateUserForm.controls['parent_id_card_type'].value === null ? 'Tipo de documento' : updateUserForm.controls['parent_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType('parent_id_card_type', $event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"updateUserForm.controls['parent_id_card']\"\n [validateText]=\"'Debe ingresar el número de documento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['parent_phone_indicative'].value\"\n [control]=\"updateUserForm.controls['parent_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicative('parent_phone_indicative', $event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Teléfono'\"\n [control]=\"updateUserForm.controls['parent_phone_number']\"\n [validateText]=\"'Debe ingresar un número de teléfono válido'\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Dirección de oficina'\"\n [control]=\"updateUserForm.controls['parent_office_adrress']\"\n [validateText]=\"'Debe ingresar la dirección'\"\n ></ipt-input>\n </div>\n </div>\n <ng-template #noParentMessage>\n <div class=\"no-parent-message\">\n <p>Sin acudiente</p>\n </div>\n </ng-template>\n </div>\n <div class=\"buttons-container\">\n <div class=\"buttons-container-inner\">\n <ipt-button\n [buttonType]=\"'button'\"\n [label]=\"'Cerrar'\"\n [primary]=\"false\"\n [isEnabled]=\"true\"\n (onClick)=\"closeTable()\"\n ></ipt-button>\n\n <ipt-button\n [label]=\"'Actualizar'\"\n [isEnabled]=\"!loader && updateUserForm.valid && !updateUserForm.hasError('mismatch') && hasFormChanged()\"\n (onClick)=\"showConfirmDialogs()\"\n [primary]=\"true\"\n ></ipt-button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n\n <!-- Confirm Dialog para razón y observación -->\n<p-dialog\n header=\"Confirmar Ajuste de Usuario\"\n [(visible)]=\"showConfirmDialog\"\n [modal]=\"true\"\n (onHide)=\"closeConfirmDialog()\"\n >\n <form [formGroup]=\"confirmForm\" class=\"confirm-form\">\n <div class=\"p-field\">\n <ipt-select\n [control]=\"confirmForm.controls['reason']\"\n [data]=\"reasons\"\n optionLabel=\"name\"\n (eventSelect)=\"selectReason($event)\"\n [defaultText]=\"'Seleccione la razón'\"\n ></ipt-select>\n <small *ngIf=\"confirmForm.controls['reason'].invalid && confirmForm.controls['reason'].touched\" class=\"p-error\">\n La razón es requerida\n </small>\n </div>\n <div class=\"p-field\">\n <label class=\"container-observation\">Observación</label>\n <textarea\n id=\"observation\"\n pInputTextarea\n formControlName=\"observation\"\n rows=\"3\"\n placeholder=\"Describe detalles adicionales del ajuste\"\n ></textarea>\n <small *ngIf=\"confirmForm.controls['observation'].invalid && confirmForm.controls['observation'].touched\" class=\"p-error\">\n La observación es requerida\n </small>\n </div>\n </form>\n <p-footer>\n <ipt-button\n class=\"p-button-secondary\"\n [buttonType]=\"'button'\"\n [label]=\"'Cancelar'\"\n [primary]=\"false\"\n [isEnabled]=\"true\"\n (onClick)=\"closeConfirmDialog()\"\n ></ipt-button>\n <ipt-button\n class=\"p-button-secondary\"\n [buttonType]=\"'button'\"\n [label]=\"'Confirmar'\"\n [primary]=\"true\"\n [isEnabled]=\"!loader && confirmForm.valid\"\n (onClick)=\"acceptConfirmDialog()\"\n ></ipt-button>\n </p-footer>\n</p-dialog>\n\n</main>","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\n\nimport { BaseService } from '../../../core/utils/base-service/base.service';\nimport { UserTokenRq2 } from '../../../core/models/user/user-rq.model';\nimport { StorageService } from '../../../core/services/storage-service/storage-service';\nimport { UserService } from '../../../core/services/user-service/user-service';\n\n@Component({\n selector: 'ipt-sidenav',\n template: `\n <mat-sidenav #sidenav mode=\"push\" >\n <mat-toolbar color=\"primary\" (click)=\"sidenav.toggle()\">\n <span style=\"font-size: 15px;\">{{department}}</span>\n <span class=\"menu-icon-close\"></span>\n </mat-toolbar>\n\n <mat-nav-list *ngFor=\"let route of routes\">\n <nav class=\"flex-container-menu\">\n <ipt-aside-button\n [buttonActive]=\"this.setPage === route.page\"\n [icon]=\"route.icon\"\n [text]=\"route.text\"\n (isClicked)=\"clickPage(route.page)\"\n (click)=\"sidenav.toggle()\"\n >\n </ipt-aside-button>\n </nav>\n </mat-nav-list>\n </mat-sidenav>\n\n <mat-toolbar class=\"header\">\n <div class=\"menu-container\" (click)=\"sidenav.toggle()\">\n <p>Menu</p>\n <div class=\"menu-icon\"></div>\n </div>\n\n <img class=\"img-logo\" src=\"./assets/logos/IPT-logo.png\" alt=\"\" />\n\n <div class=\"text-container\">\n <span class=\"p1\">{{ currentDay }}</span>\n <span *ngIf=\"hour >= 0 && hour < 12\" class=\"p2\">\n Hey {{ userName }}, Good morning!\n </span>\n <p *ngIf=\"hour >= 12 && hour < 18\" class=\"p2\">\n Hey {{ userName }}, Good afternoon!\n </p>\n <p *ngIf=\"hour >= 18 && hour < 24\" class=\"p2\">\n Hey {{ userName }}, Good evening!\n </p>\n </div>\n\n <div *ngIf=\"!this.appUser\" class=\"logout-container\" (click)=\"logout()\">\n <p class=\"logout-button\">Cerrar sesión</p>\n <div class=\"photo-logout\"></div>\n </div>\n </mat-toolbar>\n `,\n styleUrls: ['./sidenav.css'],\n})\nexport class SidenavComponent implements OnInit {\n @Input() department!: string;\n @Input() setPage!: string;\n @Input() userName!: string;\n @Output() pageChangeEvent = new EventEmitter<string>();\n\n appUser: boolean = false;\n routes: any[] = [];\n options: any = { weekday: 'long', month: 'long', day: 'numeric' };\n currentDay = new Date().toLocaleDateString('en-EN', this.options);\n hour = new Date().getHours();\n\n constructor(\n private userService: UserService,\n private baseService: BaseService,\n private storageService: StorageService\n ) {}\n\n ngOnInit(): void {\n let user = this.storageService.getCurrentUser()?.token;\n let token: string = user === undefined ? '' : user;\n\n let request: UserTokenRq2 = {\n token: token,\n department: this.department\n };\n\n this.userService.getRoutesForRole(request).subscribe((response) => {\n this.routes = response.data;\n });\n\n this.appUser = this.baseService.isAnAppUser();\n }\n\n clickPage(event: string) {\n this.pageChangeEvent.emit(event);\n }\n\n logout() {\n this.storageService.logout();\n this.pageChangeEvent.emit('logout');\n }\n}\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'ipt-question-types',\n template: `\n <div\n *ngIf=\"\n this.questionType === 'True or False' ||\n this.questionType === 'Correct or Incorrect'\n \"\n class=\"sectionABCD\"\n >\n <fieldset disabled=\"disabled\">\n <ipt-input\n [control]=\"formGruoup.controls['answer1']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"\n this.questionType === 'True or False' ? 'True' : 'Correct'\n \"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n </fieldset>\n <ipt-input\n [control]=\"formGruoup.controls['value1']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value1\")'\n >\n </ipt-input>\n <fieldset disabled=\"disabled\">\n <ipt-input\n [control]=\"formGruoup.controls['answer2']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"\n this.questionType === 'True or False' ? 'False' : 'Incorrect'\n \"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n </fieldset>\n <ipt-input\n [control]=\"formGruoup.controls['value2']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value2\")'\n >\n </ipt-input>\n </div>\n\n <div\n *ngIf=\"\n this.questionType === 'Relationship' ||\n this.questionType === 'Complete' ||\n this.questionType === 'Conversation'\n \"\n class=\"sectionABCD\"\n >\n <ipt-input\n [control]=\"formGruoup.controls['answer1']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ingrese la opción'\"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n <ipt-input\n [control]=\"formGruoup.controls['value1']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value1\")'\n >\n </ipt-input>\n </div>\n\n <div\n *ngIf=\"\n this.questionType === 'A, B, C' || this.questionType === 'A, B, C, D'\n \"\n class=\"sectionABCD\"\n >\n <ipt-input\n [control]=\"formGruoup.controls['answer1']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Opción A *'\"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n <ipt-input\n [control]=\"formGruoup.controls['value1']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value1\")'\n >\n </ipt-input>\n\n <ipt-input\n [control]=\"formGruoup.controls['answer2']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Opción B *'\"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n <ipt-input\n [control]=\"formGruoup.controls['value2']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value2\")'\n >\n </ipt-input>\n\n <ipt-input\n [control]=\"formGruoup.controls['answer3']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Opción C *'\"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n <ipt-input\n [control]=\"formGruoup.controls['value3']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value3\")'\n >\n </ipt-input>\n\n <ipt-input\n *ngIf=\"this.questionType === 'A, B, C, D'\"\n [control]=\"formGruoup.controls['answer4']\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Opción D *'\"\n [validateText]=\"'Este campo es requerido'\"\n >\n </ipt-input>\n <ipt-input\n *ngIf=\"this.questionType === 'A, B, C, D'\"\n [control]=\"formGruoup.controls['value4']\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Valor *'\"\n [validateText]=\"'Debe ser 0 o 1'\"\n (click)='clickDetection(\"value4\")'\n >\n </ipt-input>\n </div>\n `,\n styleUrls: ['./edit-question-types.component.css'],\n})\nexport class QuestionTypeComponent implements OnChanges {\n @Input() questionType!: string;\n @Input() formGruoup!: FormGroup;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['formGruoup']) {\n }\n }\n\n clickDetection(value: string){\n switch (value) {\n case 'value1':\n if(this.formGruoup.controls['value1'].value === 1) {\n this.formGruoup.controls['value2'].value === 0;\n this.formGruoup.controls['value3'].value === 0;\n this.formGruoup.controls['value4'].value === 0;\n }\n break;\n case 'value2': \n if(this.formGruoup.controls['value2'].value === 1) {\n this.formGruoup.controls['value1'].value === 0;\n this.formGruoup.controls['value3'].value === 0;\n this.formGruoup.controls['value4'].value === 0;\n }\n break;\n case 'value3':\n if(this.formGruoup.controls['value3'].value === 1) {\n this.formGruoup.controls['value1'].value === 0;\n this.formGruoup.controls['value2'].value === 0;\n this.formGruoup.controls['value4'].value === 0;\n }\n break;\n case 'value4':\n if(this.formGruoup.controls['value4'].value === 1) {\n this.formGruoup.controls['value1'].value === 0;\n this.formGruoup.controls['value2'].value === 0;\n this.formGruoup.controls['value3'].value === 0;\n }\n break;\n \n default:\n console.log('exception')\n break;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'scheduleFormat'\n})\nexport class ScheduleFormatPipe implements PipeTransform {\n transform(schedule: string[] | undefined): string {\n if (!schedule) {\n return 'Sin horario';\n }\n\n const isWithoutSchedule = typeof schedule === 'string' && schedule == 'without schedule';\n\n if (isWithoutSchedule) {\n return 'Sin horario';\n }\n\n const formattedDays: string[] = [];\n\n // Mapea los días en inglés a español\n const daysMapping: { [key: string]: string } = {\n Monday: 'Lun',\n Tuesday: 'Mar',\n Wednesday: 'Mie',\n Thursday: 'Jue',\n Friday: 'Vie',\n Saturday: 'Sáb',\n Sunday: 'Dom'\n };\n\n if (Array.isArray(schedule)) {\n schedule.forEach(item => {\n const parts = item.split(' at ');\n if (parts.length !== 2) {\n return;\n }\n\n const [day] = parts;\n const spanishDay = daysMapping[day];\n\n if (spanishDay && !formattedDays.includes(spanishDay)) {\n formattedDays.push(spanishDay);\n }\n });\n }\n\n return formattedDays.length > 0 ? formattedDays.join(', ') : 'Sin horario';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'scheduleTimeFormat'\n})\nexport class ScheduleTimeFormatPipe implements PipeTransform {\n transform(schedule: string[] | undefined): string {\n if (!schedule || !Array.isArray(schedule) || schedule.length === 0) {\n return 'Sin horario';\n }\n\n const firstItem = schedule[0];\n const match = firstItem.match(/(\\d{2}:\\d{2}:\\d{2}) to (\\d{2}:\\d{2}:\\d{2})/);\n\n if (match && match.length === 3) {\n const [startTime, endTime] = match.slice(1);\n return `${this.formatTo12Hours(startTime)} to ${this.formatTo12Hours(endTime)}`;\n }\n\n return 'Sin horario';\n }\n\n private formatTo12Hours(time: string): string {\n const [hours, minutes, seconds] = time.split(':').map(Number);\n const period = hours >= 12 ? 'PM' : 'AM';\n const formattedHours = hours % 12 || 12; // Handle noon as 12 PM\n return `${formattedHours}:${this.padWithZero(minutes)} ${period}`;\n }\n\n private padWithZero(value: number): string {\n return value < 10 ? `0${value}` : `${value}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'typeLevel'\n})\nexport class TypeLevelPipe implements PipeTransform {\n\n transform(value: string): string {\n\n if (value === 'BEGINNERS I') {\n return 'Beg.I'\n }\n\n if (value === 'BEGINNERS II') {\n return 'Beg.II'\n }\n\n if (value === 'BEGINNERS III') {\n return 'Beg.III'\n }\n if (value === 'STARTERS I') {\n return 'Sta.I'\n }\n\n if (value === 'STARTERS II') {\n return 'Sta.II'\n }\n\n if (value === 'MOVERS I') {\n return 'Mov.I'\n }\n\n if (value === 'MOVERS II') {\n return 'Mov.II'\n }\n\n if (value === 'PRE-A1') {\n return 'PRE-A1'\n }\n\n if (value === 'A1') {\n return 'A1'\n }\n\n if (value === 'A2') {\n return 'A2'\n }\n\n if (value === 'B1') {\n return 'B1'\n }\n\n if (value === 'B1+') {\n return 'B1+'\n }\n\n if (value === 'B2') {\n return 'B2'\n }\n\n else {\n return '-'\n }\n }\n\n}\n","import { ICourseByTokenRs } from './../../../core/models/activities/activities.interface';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\n\n\n@Component({\n selector: 'ipt-card-course-self-cod-managed',\n templateUrl: './card-course.component.html',\n styleUrls: ['./card-course.component.css']\n})\nexport class CardCourseComponent implements OnChanges, OnInit {\n @Input () CourseData?:any;\n @Input() isLoading = true\n @Output() codeCourse = new EventEmitter<ICourseByTokenRs>();\n\n courseAcademy:any[]=[];\n courseKids:any[]=[];\n courseSchools:any[]=[];\n visibleAcademy = false;\n visibleKids = false;\n visibleSchools = false;\n skeleton=[{},{}];\n\n ngOnInit(): void {\n if (this.CourseData.length == 0) {\n this.isLoading=true;\n }else{\n this.isLoading=false;\n }\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['CourseData']) {\n if (!this.CourseData) {\n this.courseAcademy = [];\n this.courseKids = [];\n this.courseSchools = [];\n this.isLoading=false\n this.visibleAcademy = false;\n this.visibleKids = false;\n this.visibleSchools = false;\n } else {\n this.isLoading=false\n this.courseAcademy = this.CourseData.Academy;\n this.courseKids = this.CourseData.Kids;\n this.courseSchools = this.CourseData.Schools;\n this.visibleAcademy = this.CourseData.Academy ? true : false;\n this.visibleKids = this.CourseData.Kids ? true : false;\n this.visibleSchools = this.CourseData.Schools ? true : false;\n }\n }\n }\n\n viewDataCourse(codeCourse: ICourseByTokenRs){\n this.codeCourse.emit(codeCourse);\n }\n\n getCssClass(level: string): string {\n switch(level) {\n case 'PRE-A1':\n return 'levelAone'\n case 'A1':\n return 'levelAonetwo'\n case 'A2':\n return 'levelAtwo';\n case 'B1':\n return 'levelBone'\n case 'B2':\n return 'levelBtwo'\n case 'B1+':\n return 'levelBplus'\n case 'MOVERS I':\n case 'MOVERS II':\n case 'BEGINNERS I':\n case 'BEGINNERS II':\n case 'BEGINNERS III':\n case 'STARTERS I':\n case 'STARTERS II':\n return 'beginner';\n default:\n return '';\n }\n }\n}\n","<div *ngIf=\"!isLoading\" class=\"main-container\">\n\n <!-- cards Academy -->\n <div class=\"container__span-header flex justify-content-start\" *ngIf=\"visibleAcademy || visibleKids || visibleSchools\">\n <span>Selecciona un Plan</span>\n </div>\n\n <p-panel\n *ngIf=\"visibleAcademy\"\n header=\"Plan Academy\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"academic_plan\"\n class=\"academic_plan\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseAcademy\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__academic\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br> -->\n <!-- <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Kids -->\n\n <p-panel\n *ngIf=\"visibleKids\"\n header=\"Plan Kids\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_kids\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseKids\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__kids\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n <!-- <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <!-- cards Schools -->\n\n <p-panel\n *ngIf=\"visibleSchools\"\n header=\"Plan Schools\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"social_school\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n <section *ngFor=\"let course of courseSchools\" class=\"card1 animate__animated\" (click)=\"viewDataCourse(course)\">\n <h3 class=\"card1__title__schools\">{{ course.course_type.label }}</h3>\n <p class=\"card1__content\">\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n <!-- <strong class=\"type-club\">Club Teacher: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br>\n <strong class=\"type-club\">Club Classroom: </strong>\n <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name | titlecase}}</span><br> -->\n <!-- <strong><hr></strong> -->\n <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n </p>\n <div class=\"card1__date\">\n <!-- <span\n [ngClass]=\"course.status?.color_status\"\n ></span> -->\n <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n </div>\n <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n <span>{{ course.english_level.name | typeLevel}}</span>\n </div>\n </section>\n </main>\n <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n </p-panel>\n\n <div class=\"container__span-footer flex justify-content-center\" *ngIf=\"!visibleAcademy && !visibleKids && !visibleSchools\">\n <span>No se encontraron planes</span>\n </div>\n</div>\n<div *ngIf=\"isLoading\">\n\n <p-panel\n header=\"\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n id=\"p-component panel-skeleton\"\n >\n <ng-template pTemplate=\"icons\"> </ng-template>\n <main class=\"flex flex-col\">\n <section *ngFor=\"let course of skeleton\" class=\"card1 animate__animated\" >\n <p-skeleton width=\"12rem\" height=\"2rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p class=\"card1__content_skeleton\">\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <strong><hr></strong>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n </p>\n <div class=\"card1__date__skeleton\">\n </div>\n <div class=\"card1__arrow\" >\n <p-skeleton size=\"3rem\" styleClass=\"mr-2\" ></p-skeleton>\n </div>\n </section>\n </main>\n </p-panel>\n\n</div>\n\n","import { Component, Input, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'ipt-card-select-course-self-cod-managed',\n templateUrl: './card-select-course.component.html',\n styleUrls: ['./card-select-course.component.css']\n})\nexport class CardSelectCourseComponent implements OnInit{\n\n @Input() courseSelect?: any;\n jornada: number = 0;\n\n ngOnInit(): void {\n if (this.courseSelect && this.courseSelect.course_schedule) {\n const schedule = this.courseSelect.course_schedule[0];\n this.jornada = this.getJornada(schedule);\n }\n }\n\n getJornada(schedule: string): number {\n const timeRegex = /\\b\\d{2}:\\d{2}:\\d{2}\\b/g;\n const times = schedule.match(timeRegex);\n\n if (times && times.length > 0) {\n const startTime = times[0];\n if (this.isMorning(startTime)) {\n return 1;\n } else if (this.isAfternoon(startTime)) {\n return 2;\n } else if (this.isNight(startTime)) {\n return 3;\n }\n }\n return 0;\n }\n\n isMorning(time: string): boolean {\n return time >= '05:00:00' && time <= '11:59:59';\n }\n\n isAfternoon(time: string): boolean {\n return time >= '12:00:00' && time <= '17:59:59';\n }\n\n isNight(time: string): boolean {\n return time >= '18:00:00';\n }\n\n\n\n}\n","<!-- <main class=\"container-card\">\n <div class=\"w-auto\" >\n <div class=\"card\" (click)=\"selectDepartment(courseSelect)\">\n <div class=\"card-text\">\n <span class=\"date\">{{ courseSelect.course_type.label }}</span><br>\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ courseSelect.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ courseSelect.course_schedule | scheduleTimeFormat }}<br>\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.start_date === null\">\n <strong *ngIf=\"courseSelect.start_date !== null\">Fecha Inicio: </strong>{{ courseSelect.start_date !== null ? courseSelect.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n <strong *ngIf=\"courseSelect.finish_date !== null\">Fecha culminacion: </strong>{{ courseSelect.finish_date !== null ? courseSelect.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n </div>\n </div>\n </div>\n</main> -->\n<main>\n<div class=\"container__tittle__card flex justify-content-center\">\n Plan Seleccionado\n</div>\n<div class=\"container-card\">\n <div class=\"card\">\n <p class=\"heading\">\n {{ courseSelect.course_type.label }}<br>\n </p>\n <div class=\"card-text\">\n <strong class=\"type-theory\">Clases Teoricas: </strong><span>{{ courseSelect.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-theory\">Horario Teorico: </strong> <span>{{ courseSelect.course_schedule | scheduleTimeFormat }}</span><br>\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong><span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong><span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong><span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong><span>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}</span><br *ngIf=\"courseSelect.start_date === null\">\n </div>\n <p>{{ courseSelect.english_level.name | typeLevel}}\n </p>\n </div>\n</div>\n</main>\n<!-- <main *ngIf=\"jornada === 2\" class=\"container-card\">\n <div class=\"w-auto\" >\n <div class=\"card\" (click)=\"selectDepartment(courseSelect)\">\n <div class=\"card-image\" [style.background-image]=\"'url(' + courseSelect.imageUrl + ')'\"></div>\n <div class=\"card-text\">\n <span class=\"date\">{{ courseSelect.course_type.label }}</span><br>\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ courseSelect.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ courseSelect.course_schedule | scheduleTimeFormat }}<br>\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.start_date === null\">\n <strong *ngIf=\"courseSelect.start_date !== null\">Fecha Inicio: </strong>{{ courseSelect.start_date !== null ? courseSelect.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n <strong *ngIf=\"courseSelect.finish_date !== null\">Fecha culminacion: </strong>{{ courseSelect.finish_date !== null ? courseSelect.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n </div>\n </div>\n </div>\n</main>\n<main *ngIf=\"jornada === 3\" class=\"container-card\">\n <div class=\"w-auto\" >\n <div class=\"card\" (click)=\"selectDepartment(courseSelect)\">\n <div class=\"card-image\" [style.background-image]=\"'url(' + courseSelect.imageUrl + ')'\"></div>\n <div class=\"card-text\">\n <span class=\"date\">{{ courseSelect.course_type.label }}</span><br>\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ courseSelect.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ courseSelect.course_schedule | scheduleTimeFormat }}<br>\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.start_date === null\">\n <strong *ngIf=\"courseSelect.start_date !== null\">Fecha Inicio: </strong>{{ courseSelect.start_date !== null ? courseSelect.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n <strong *ngIf=\"courseSelect.finish_date !== null\">Fecha culminacion: </strong>{{ courseSelect.finish_date !== null ? courseSelect.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n </div>\n </div>\n </div>\n</main> -->\n","import { NgModule } from '@angular/core';\n\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n exports: [MatSidenavModule, MatToolbarModule, MatIconModule, MatListModule, MatButtonModule],\n})\nexport class MaterialModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ScheduleFormatPipe } from './course-pipes/schedule-form.pipe';\nimport { ScheduleTimeFormatPipe } from './course-pipes/time-form.pipe';\nimport { TypeLevelPipe } from './course-pipes/type-level.pipe';\nimport { GenderDisplayPipe } from './parameter-pipes/gender-display.pipe';\n\n@NgModule({\n declarations: [\n ScheduleFormatPipe,\n ScheduleTimeFormatPipe,\n TypeLevelPipe,\n GenderDisplayPipe\n ],\n imports: [CommonModule],\n exports: [\n\n ScheduleFormatPipe,\n ScheduleTimeFormatPipe,\n TypeLevelPipe,\n GenderDisplayPipe\n ]\n})\nexport class PipeModule {}\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule, CurrencyPipe, TitleCasePipe } from '@angular/common';\n\n// Angular Forms\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n//atoms\nimport { AsideButtonComponent } from './atoms/aside-button/aside-button.component';\nimport { ButtonComponent } from './atoms/button/button.component';\nimport { CheckboxComponent } from './atoms/checkbox/checkbox.component';\nimport { DatalistComponent } from './atoms/datalist/datalist.component';\nimport { InputComponent } from './atoms/input/input.component';\nimport { LevelButtonComponent } from './atoms/level-button/level-button.component';\nimport { LevelTextComponent } from './atoms/level-text/level-text.component';\nimport { LoaderComponent } from './atoms/loader/loader.component';\nimport { RadioComponent } from './atoms/radio/radio.component';\nimport { SelectComponent } from './atoms/select/select.component';\nimport { TextLinkComponent } from './atoms/text-link/text-link.component';\n\n//forms\nimport { LoginFormComponent } from './forms/login-form/login-form.component';\nimport { CreateUserFormComponent } from './forms/create-user-form/create-user-form.component';\nimport { updateUserFormComponent } from './forms/update-user-form/update-user-form.component';\n\n//molecules\nimport { SidenavComponent } from './molecules/sidenav/sidenav.component';\nimport { QuestionTypeComponent } from './molecules/question-type/edit-question-types.component';\nimport { CardCourseComponent } from './molecules/card-course/card-course.component';\nimport { CardSelectCourseComponent } from './molecules/card-select-course/card-select-course.component';\n\n//material\nimport { MaterialModule } from './material.module';\nimport { CurrencyMaskModule } from 'ng2-currency-mask';\n\n// PrimeNG\nimport { PanelModule } from 'primeng/panel';\nimport { SkeletonModule } from 'primeng/skeleton';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DialogModule } from 'primeng/dialog';\n\n//pipes\nimport { PipeModule } from '../core/pipes/pipe.module';\n\n\n\n\n\n@NgModule({\n declarations: [\n AsideButtonComponent,\n ButtonComponent,\n CheckboxComponent,\n CreateUserFormComponent,\n DatalistComponent,\n InputComponent,\n LevelButtonComponent,\n LevelTextComponent,\n LoginFormComponent,\n LoaderComponent,\n RadioComponent,\n SelectComponent,\n SidenavComponent,\n TextLinkComponent,\n QuestionTypeComponent,\n CardCourseComponent,\n CardSelectCourseComponent,\n updateUserFormComponent,\n\n ],\n imports: [\n CommonModule,\n // BrowserModule, // Para evitar doble carga de BrowserModule\n FormsModule,\n ReactiveFormsModule,\n MaterialModule,\n CurrencyMaskModule,\n PanelModule,\n PipeModule,\n SkeletonModule,\n SelectButtonModule,\n CheckboxModule,\n DialogModule\n\n ],\n exports: [\n AsideButtonComponent,\n ButtonComponent,\n CheckboxComponent,\n CreateUserFormComponent,\n DatalistComponent,\n InputComponent,\n LevelButtonComponent,\n LevelTextComponent,\n LoaderComponent,\n RadioComponent,\n SelectComponent,\n TextLinkComponent,\n LoginFormComponent,\n SidenavComponent,\n CurrencyMaskModule,\n QuestionTypeComponent,\n CardCourseComponent,\n CardSelectCourseComponent,\n updateUserFormComponent,\n ],\n providers: [\n CurrencyPipe,\n TitleCasePipe\n ]\n})\n\nexport class ComponentsModule { }\n","\n\nimport { Injectable } from '@angular/core';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { MediaRq } from '../../models/media/media.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MediaService extends IPTGeneralService{\n\n private SERVICE_URL = 'media/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n createMedia(request: MediaRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/media';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllDataMedia(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/media/all';\n return this.http.get(serviceUrl);\n }\n\n getMediaByCode(idCode: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/media/code/' + idCode;\n return this.http.get(serviceUrl);\n }\n\n}","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport Swal from 'sweetalert2';\nimport { MediaRq } from '../../core/models/media/media.interfaces';\nimport { MediaService } from '../../core/services/media-service/media.service';\nimport { UserService } from '../../core/services/user-service/user-service';\nimport { BaseService } from '../../core/utils/base-service/base.service';\n@Component({\n selector: 'ipt-cod-documents-section',\n templateUrl: './cod-documents-section.component.html',\n styleUrls: ['./cod-documents-section.component.css'],\n})\nexport class CodDocumentsSectionComponent implements OnInit {\n documentsForm!: FormGroup;\n docStudent: boolean = false;\n docAgreement: boolean = false;\n docParent: boolean = false;\n docConfanorte: boolean = false;\n idPdf: any[] = [];\n code!: number;\n pdfSrc: any;\n numDoc: number = -1;\n value: boolean = false\n nameUserRole: string = '';\n\n constructor(\n private fb: FormBuilder,\n private mediaService: MediaService,\n private userService: UserService,\n private baseService: BaseService,\n ) {\n this.documentsForm = this.fb.group({\n doc_student: ['', [Validators.required], []],\n doc_agreement: [''],\n doc_parent: [''],\n doc_confanorte: [''],\n });\n }\n\n ngOnInit(): void {}\n\n showIdDocument() {\n console.log('abrir modal de cargar pdf');\n }\n\n catchDocument(event: any, visible: string) {\n this.numDoc++;\n this.validateVisibility(visible, true);\n\n const fileCatched = event.target.files[0];\n let reader = new FileReader();\n reader.onload = (e: any) => {\n this.idPdf.push(e.target.result);\n this.pdfSrc = this.idPdf[this.numDoc];\n };\n this.code = 0;\n reader.readAsArrayBuffer(fileCatched);\n }\n\n filesUploaded() {\n Swal.fire({\n title: '<p style=\"font-family: Poppins\">Perfect</p>',\n html: '<p style=\"font-family: Poppins\">Archivos subidos correctamente.</p>',\n icon: 'success',\n });\n this.documentsForm.controls['doc_student'].setValue(null);\n this.documentsForm.controls['doc_agreement'].setValue(null);\n this.documentsForm.controls['doc_parent'].setValue(null);\n this.documentsForm.controls['doc_confanorte'].setValue(null);\n this.docStudent = false;\n this.docAgreement = false;\n this.docParent = false;\n this.docConfanorte = false;\n }\n\n clearDocStudent(typeDoc: any) {\n this.documentsForm.controls[typeDoc].setValue(null);\n this.validateVisibility(typeDoc, false);\n }\n\n validateVisibility(compVisivility: string, value: boolean){\n switch (compVisivility) {\n case 'doc_student': this.docStudent = value;\n break;\n case 'doc_agreement': this.docAgreement = value;\n break;\n case 'doc_parent': this.docParent = value;\n break;\n case 'doc_confanorte': this.docConfanorte = value;\n break;\n default:\n break;\n }\n }\n\n getAllMedia(){\n this.mediaService.getAllDataMedia().subscribe((response) => {\n console.log(response.data);\n });\n }\n\n getUserRole(){\n this.userService.getUserRoleByCode(1).subscribe((response) => {\n this.nameUserRole = response.data[0];\n })\n }\n\n saveDocuments(){\n let request: MediaRq ={\n name : 'jhhgh',\n link : 'khkhk',\n user_autor : 2,\n }\n }\n\n}\n","<div class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">Documentos del COD</span>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Estudiante'\"\n [control]=\"documentsForm.controls['doc_student']\"\n (change)=\"catchDocument($event, 'doc_student')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docStudent\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_student')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Convenio'\"\n [control]=\"documentsForm.controls['doc_agreement']\"\n (change)=\"catchDocument($event, 'doc_agreement')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docAgreement\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_agreement')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Acudiente'\"\n [control]=\"documentsForm.controls['doc_parent']\"\n (change)=\"catchDocument($event, 'doc_parent')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docParent\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_parent')\"></button>\n </div>\n </div>\n </div>\n\n <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n <div class=\"ml-auto\">\n <div class=\"inp w-10\">\n <ipt-input\n [inputType]=\"'file'\"\n [placeHolder]=\"'Doc. Confanorte'\"\n [control]=\"documentsForm.controls['doc_confanorte']\"\n (change)=\"catchDocument($event, 'doc_confanorte')\"\n ></ipt-input>\n </div>\n <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docConfanorte\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_confanorte')\"></button>\n </div>\n </div>\n </div>\n\n <hr>\n <button pButton pRipple type=\"button\" icon=\"pi pi-plus\" label=\"Agregar\" class=\"p-button-rounded p-button-sm ml-auto mt-2\" (click)=\"filesUploaded()\"></button>\n\n</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorageCODService {\n\n constructor() { }\n\n getCodFormData(step: number, control: string): string | null {\n if (step === 1) return localStorage.getItem(`COD FORM - step1(${control})`);\n if (step === 2) return localStorage.getItem(`COD FORM - step2(${control})`);\n if (step === 3) return localStorage.getItem(`COD FORM - step3(${control})`);\n if (step === 4) return localStorage.getItem(`COD FORM - step4(${control})`);\n if (step === 5) return localStorage.getItem(`COD FORM - step5(${control})`);\n\n return null;\n }\n\n setCodFormData(step: number, control: string, value: string) {\n if (step === 1) localStorage.setItem(`COD FORM - step1(${control})`, value);\n if (step === 2) localStorage.setItem(`COD FORM - step2(${control})`, value);\n if (step === 3) localStorage.setItem(`COD FORM - step3(${control})`, value);\n if (step === 4) localStorage.setItem(`COD FORM - step4(${control})`, value);\n if (step === 5) localStorage.setItem(`COD FORM - step5(${control})`, value);\n }\n\n clearData() {\n let keySessionUser = '606a7d4e73650b75ebb06972e77d6cc4';\n let sessionUser: string | null = localStorage.getItem(keySessionUser);\n localStorage.clear();\n\n if(sessionUser !== null) {\n localStorage.setItem(keySessionUser, sessionUser);\n } else {\n console.log('raro que no haya sesion');\n }\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\nexport interface Control {\n name: string;\n required: boolean;\n description: string;\n}\n@Injectable({\n providedIn: 'root'\n})\nexport class CodFormControls {\n\n public controls: Array<Control[]> = [\n [\n { name: 'academic_plan', required: true, description: 'Plan académico' },\n { name: 'course_type', required: true, description: 'Tipo de curso' },\n { name: 'agreement_by_category', required: true, description: 'Convenio' },\n { name: 'english_level', required: true, description: 'Nivel de inglés' },\n { name: 'availible_courses', required: false, description: 'Cursos disponibles' },\n { name: 'course_modality', required: false, description: 'Modalidad del curso' },\n ],\n [\n { name: 'student_address', required: true, description: 'Dirección del estudiante' },\n { name: 'birthdate', required: true, description: 'Fecha de nacimiento del estudiante' },\n { name: 'country', required: true, description: 'País' },\n { name: 'state', required: true, description: 'Departamento o estado' },\n { name: 'city', required: true, description: 'Ciudad de residencia' },\n { name: 'student_id_card_type', required: true, description: 'Tipo de documento del estudiante' },\n { name: 'student_id_card', required: true, description: 'Documento del estudiante' },\n { name: 'student_last_name', required: true, description: 'Apellidos del estudiante' },\n { name: 'student_name', required: true, description: 'Nombres del estudiante' },\n { name: 'student_email', required: true, description: 'Correo del estudiante' },\n { name: 'nickname', required: true, description: 'Alias o nickname' },\n { name: 'gender', required: true, description: 'Género' },\n { name: 'age', required: true, description: 'Edad' },\n { name: 'student_occupation', required: true, description: 'Ocupación del estudiante' },\n { name: 'stratum', required: true, description: 'Estrato del estudiante' },\n { name: 'grade', required: true, description: 'Grado del estudiante' },\n { name: 'civil_status', required: true, description: 'Estado civil del estudiante' },\n { name: 'student_phone_indicative', required: true, description: 'Indicativo del estudiante' },\n { name: 'student_phone_number', required: true, description: 'Teléfono del estudiante' },\n { name: 'password', required: true, description: 'Contraseña del estudiante' },\n { name: 're_password', required: true, description: 'Confirmación de contraseña' },\n ],\n [\n { name: 'parent_id_card_type', required: true, description: 'Tipo de documento del acudiente' },\n { name: 'parent_id_card', required: true, description: 'Documento del acudiente' },\n { name: 'parent_last_name', required: true, description: 'Apellidos del acudiente' },\n { name: 'parent_name', required: true, description: 'Nombres del acudiente' },\n { name: 'needAtendant', required: true, description: '¿Requiere acudiente?' },\n { name: 'parent_phone_indicative', required: true, description: 'Indicativo del acudiente' },\n { name: 'parent_occupation', required: true, description: 'Ocupación del acudiente' },\n { name: 'parent_address', required: true, description: 'Dirección del acudiente' },\n { name: 'parent_phone_number', required: true, description: 'Teléfono del acudiente' }\n ],\n [\n { name: 'payment_date', required: true, description: 'Fecha de pago' },\n { name: 'program_price', required: true, description: 'Valor total del programa' },\n { name: 'payment_method', required: true, description: 'Método de pago' },\n { name: 'quota_times', required: true, description: 'Cantidad de cuotas' },\n { name: 'total_price', required: true, description: 'Precio total de la matricula' },\n { name: 'paid_level', required: true, description: 'Niveles pagos' },\n ],\n [\n { name: 'marketing_reasons', required: true, description: '¿Cómo se enteró del programa?' },\n { name: 'observation', required: false, description: 'Observación' },\n { name: 'study_reasons', required: true, description: 'Motivo' },\n { name: 'terms', required: true, description: 'Términos y condiciones' },\n { name: 'disability', required: false, description: 'Discapacidad' },\n { name: 'multiculturalism_1', required: false, description: 'Multiculturalismo' },\n { name: 'multiculturalism_2', required: false, description: 'Multiculturalismo' },\n { name: 'multiculturalism_3', required: false, description: 'Multiculturalismo' },\n { name: 'multiculturalism_4', required: false, description: 'Multiculturalismo' },\n { name: 'multiculturalism_5', required: false, description: 'Multiculturalismo' },\n { name: 'multiculturalism_6', required: false, description: 'Multiculturalismo' },\n { name: 'health_regimen', required: true, description: 'Régimen de salud' },\n { name: 'code_refers', required: true, description: 'Refiere' },\n { name: 'code_cod', required: false, description: 'Codigo Cod' }\n ],\n ];\n\n private $controls = new BehaviorSubject<Array<Control[]>>([]);\n\n constructor() {\n this.$controls.next(this.controls);\n }\n\n getControlValues(): Observable<Array<Control[]>> {\n return this.$controls.asObservable();\n }\n\n // Cambiar los valores de los controls, ejemplo: true y false del checkbox\n changeValue(step: number, controlName: string, newValue: any) {\n const controls: Array<Control[]> = { ...this.controls };\n let control = controls[step-1].filter(element => element.name === controlName);\n control[0].required = newValue;\n\n this.$controls.next(controls)\n }\n}\n","import { IgetCoursesFinishAndunassignedRq } from './../../models/reports/reports.model';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GetDiscountCouponsRq } from '../../models/payment/payment-rq.model';\nimport { CreateCODRq, FullDataCODRq, GetCodByCourseRq, IUpdateCODRq, IobtaincodCurrrentAndLevelFullDataRenovationsRq, ICodPaymentRq } from '../../models/cod/cod-rq.model';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { AdicInfoByCodeRq, CodPricesRq, IGoalInterfaceRq, ParentByCodeRq, IObtainRefersByUserRq, IAssignPosibleStudentForValueRq, IGetContactsadviserRq, IObtainCodPricesRq, IAssigningAdvisorGoalsRq, IReportCodForAdviserRq, ICreateTicketReferralRq, ICodDetailsbyAdviser, IGetPosibleStudentByDateRq, IGetUserAdviserCommercialByTypeAssingContactsRq, AssingCustomersByTypeAssingContactForAdviserRq,getSummaryByCommercialAdvisorRq } from '../../models/commercial/commercial.model';\nimport { UserTokenRq } from '../../models/user/user-rq.model';\nimport { ISocialNetworksRq } from '../../models/marketing/marketing.model';\nimport { IObtainAllCoursewallet } from '../../models/budget/budget.model';\nimport { IObtainAllReferralsByUserRq } from '../../models/transfer/transfer.model';\nimport { ICodWithTheirStatesRq, IExtendTimeTermsRq, INewTermsAndCondRq } from '../../models/terms/terms-rs.model';\n\n\n@Injectable({providedIn: 'root'})\nexport class CommercialService extends IPTGeneralService {\n\n private SERVICE_URL = 'commercial/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n createCOD(request: CreateCODRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/cod';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getStudentCodHistory(token: string, student_id_card: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/by/student';\n this.generateRequestParams({token, student_id_card});\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodHistoryAll(userToken: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/all';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodHistoryByCourse(request: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/by/course';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodHistoryByCourseExport(request: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/by/course/export';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getDiscountCoupons(params: GetDiscountCouponsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/discount/coupon/search';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodPricesByAgreement(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/cod/prices/by/agreement/' + code;\n this.generateRequestParams(code);\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n getCodParentByCode(params: ParentByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/parent/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAdicInfoByCode(params: AdicInfoByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/aditionalinfo/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getFullDataCodByStudent(params: FullDataCODRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/full/data/cod/by/student';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getFullDataCodByStudentAndCodsBefore(params: FullDataCODRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/full/data/cod/by/student/and/cod/before';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodPricesByAgreementTypePayment(params: CodPricesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/cod/prices/by/agreement/and/type/payment';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCodByAdvaiser(params: UserTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/by/advaiser';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCodCoursesByAdvisor(params: UserTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/courses/by/advisor';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCodByAdvisorAndCourse(params: GetCodByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/student/by/course/and/advisor';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n createGoal(params: IGoalInterfaceRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/contact/strategy/create/goal';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl,this.httpOptions);\n }\n\n getAllGoals(token: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/contact/strategy/view/goals';\n this.generateRequestParams(token);\n return this.http.post(serviceUrl,this.httpOptions);\n }\n\n createDocument(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/media/document';\n let formData = new FormData();\n formData.append('file', params.file);\n formData.append('user_autor', params.user_autor);\n formData.append('code_user', params.code_user);\n formData.append('type_document', params.type_document);\n formData.append('token', params.token);\n\n return this.http.post(serviceUrl, formData);\n }\n\n getDocumentsByStudent(params:any): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'get/media/document/user';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl,this.httpOptions);\n }\n\n obtainCodStudentByCodeAdviser(params: IReportCodForAdviserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/cod/student/by/adviser';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n ExportFileExcelCodByAdviser(params: IReportCodForAdviserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/export/excel/cod/student/by/adviser';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n ObtainReferralsByUser(params: IObtainRefersByUserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/referrals/by/user/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getPosibleStudentsAll(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/posible/students/all/models';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n postAssignPosibleStuentForValue(params: IAssignPosibleStudentForValueRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/posible/students/value/assing';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getContactsByAdviserCommercial(params: IGetContactsadviserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/contacts/marketing/strategy/assing/by/adviser';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n ObtainCodPrices(params: IObtainCodPricesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/prices';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n postCreatedSocialNetowrks(params: ISocialNetworksRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/new/register/social/network';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n postAssigningAdvisorGoals(params: IAssigningAdvisorGoalsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/assigning/advisory/goals';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n posObtainAdvisorGoals(params: IObtainAllCoursewallet): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/goals/assigned/to/advisor';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n postObtainOveralGoalAdviso(params: IObtainAllCoursewallet): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/overal/goal/of/advisor';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n postObtaininfoCodActuallyByUser(params: IgetCoursesFinishAndunassignedRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/info/cod/user';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtaingLatesCodByStudentCode (codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/latest/cod/by/student/code/' + codeStudent;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n updateCOD(request: IUpdateCODRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/update/cod';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n obtaincodCurrrentAndLevelFullDataRenovations(request: IobtaincodCurrrentAndLevelFullDataRenovationsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/full/data/current/cod/by/code/student/renovation';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getdataCurrentCodBySTudentCode(request: IobtaincodCurrrentAndLevelFullDataRenovationsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/data/current/data/cod/by/student';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n updateCodCurrentInObservationsRenovations(request: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/change/cod/status/observations/renovations';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCodPreviusOrPlacementTestBycode(request: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/register/previous/or/placement/test/by/status';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n updateControlStepsCodSelfManaged(request: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/change/step/form/control/cod/self/managed';\n this.generateRequestParams(request);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n ObtainCodPricesCodSelfManaged(params: IObtainCodPricesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/self/managed/prices';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n createCodSelfManaged(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/cod/self/managed';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n prizesForDurationOdContest(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'prizes/for/duration/of/contest';\n return this.http.get(serviceUrl);\n }\n\n createTicketReferral(params: ICreateTicketReferralRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'create/contest/registration/by/referrale';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainStatusAndReferralsByUserCode(params: IObtainRefersByUserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/status/and/referrals/by/user/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodStudentDetailsByAdviser(params: ICodDetailsbyAdviser): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/cod/student/details/by/adviser';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n gesPosibleStudentAllFourModelsByDate(params: IGetPosibleStudentByDateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/posible/students/all/four/models/by/date';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n gesUserAdviserCommercialByTypeAssingContact(params: IGetUserAdviserCommercialByTypeAssingContactsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/user/commercial/by/type/assing';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n assingCustomersByTypeAssingContactForAdviser(params: AssingCustomersByTypeAssingContactForAdviserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/Assing/user/posible/student/by/date';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainAdditionalUserDataByCourse(params: IgetCoursesFinishAndunassignedRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/additional/user/data/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainAllReferralsByUser(params: IObtainAllReferralsByUserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/all/referrals/by/user/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getSummaryByCommercialAdvisor(params: getSummaryByCommercialAdvisorRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/summary/by/commercial/advisor';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllCodInformationForExporting(params: ICodPaymentRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/cod/information/for/exporting';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCodByAdvisorWithTheirStates(params: ICodWithTheirStatesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/cod/by/advisor/with/their/states';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n extendTimeOfAcceptanceOfTerms(params: IExtendTimeTermsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'extend/time/of/acceptance/of/terms';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n newTermsAndConditionsAcceptanceToken(params: INewTermsAndCondRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'new/terms/and/conditions/acceptance/token';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateStatusOfTermsAndConditionsRecords(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/status/of/t&c/records' ;\n this.generateRequestParams(null);\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n}\n","import { Observable } from \"rxjs\";\nimport { Control } from \"./cod-form-controls\";\nimport { LocalStorageCODService } from \"./local-storage-cod.service\";\n\nexport interface localStorageValues {\n control: string,\n value: any\n}\n\nexport abstract class CodFormSteps {\n\n public localStorageCOD = new LocalStorageCODService();\n\n constructor() {}\n\n readAndWriteLS(step: number, control: string): localStorageValues {\n if (this.localStorageCOD.getCodFormData(step, control)) {\n const value = this.localStorageCOD.getCodFormData(step, control);\n return { control, value };\n } else {\n return { control, value: '' }\n }\n }\n\n setDataInLocalStorage(step: number, control: string, value: any) {\n this.localStorageCOD.setCodFormData(step, control, value);\n }\n\n listenFormChanges(step: number, control: string, obs: Observable<any>) {\n obs.subscribe(value => {\n this.setDataInLocalStorage(step, control, value);\n });\n }\n\n resetLocalStorage(controls: Control[]) {\n controls.forEach(control => {\n localStorage.removeItem(control.name);\n });\n }\n\n}\n","const copies: any = {\n \"es\": {\n \"modal_template\": {\n \"inputs\": {\n \"city\":\"Ingrese su ciudad de residencia\",\n \"country\":\"Ingresa tu pais de residencia\",\n \"comments\":\"Ingresa tus comentarios de registro ( Opcional )\",\n \"date_of_birth\":\"Ingresa tu fecha de nacimiento\",\n \"email\": \"Correo electronico\",\n \"id_card\": \"Documento de identidad\",\n \"last_name\": \"Apellidos\",\n \"name\": \"Nombres\",\n \"phone_number\": \"Numero de teléfono\",\n \"password\": \"Contraseña\",\n \"re_password\": \"Repetir contraseña\",\n \"role\": \"Seleccione el rol\",\n \"service_hour\": \"Horas de servicio\",\n \"id_card_type\":\"Ingresa tu tipo de documento\",\n \"phone_indicative\": \"Seleccione su indicativo\",\n \"state\":\"Seleccione su departamento\",\n \"file\": \"Seleccionar archivo\",\n \"contacted_contact\": \"Contactado...\",\n \"status_contact\": \"Status\",\n \"plan_contact\": \"Tipo Plan\",\n \"observations_contact\": \"Observaciones\",\n },\n \"validators\": {\n \"city\":\"Debe ingresar la ciudad de residencia\",\n \"country\":\"Debes ingresar el pais de residencia\",\n \"date_of_birth\":\"Debes ingrese la fecha de nacimiento\",\n \"email\": \"Recuerda usar correos con dominio @inglesparatodos.edu.co\",\n \"id_card\": \"Debes ingresar el número de documento.\",\n \"last_name\": \"Debes ingresar los apellidos del usuario.\",\n \"name\": \"Debes ingresar el nombre del usuario\",\n \"phone_number\": \"Debes ingresar un número de teléfono valido\",\n \"password\": \"Debe ser de minimo 7 digitos\",\n \"re_password\": \"Debe ser de minimo 7 digitos\",\n \"role\": \"Debe seleccionar un rol\",\n \"service_hour\": \"Debe ingresar las horas de servicio\",\n \"id_card_type\":\"Debes ingresar el tipo de documento\",\n \"phone_indicative\": \"Debes seleccionar un indicativo\",\n \"state\":\"Seleccione el departamento\",\n \"id_document\": \"Debe subir un archivo\",\n \"agreement_document\": \"Debe subir un archivo\",\n \"parent_id_document\": \"Debe subir un archivo\",\n \"comfanorte_document\": \"Debe subir un archivo\",\n \"contacted_contact\": \"Debe seleccionar forma de contactar cliente\",\n \"status_contact\": \"Debe seleccionar un estaus.\",\n \"plan_contact\": \"Debe seleccionar un plan\",\n \"observariones_contact\": \"Debe llenar el campo observaciones\",\n\n }\n },\n \"dashboard_template\": {\n \"inputs\": {\n \"agreement_by_category\":\"Convenio por categoria\",\n \"academic_level\": \"Ingrese el nivel academico ( Pregrado / Posgrado )\",\n \"academic_plan\": 'Plan',\n \"address\": \"ingrese su direccion\",\n \"agreement\": \"ingrese el convenio\",\n \"availible_courses\":\"Grupos disponibles\",\n \"birthdate\":\"Ingresa tu fecha de nacimiento\",\n \"city\":\"Ingrese su ciudad de residencia\",\n \"classroom\": \"Grupos Disponibles\",\n \"country\":\"Ingresa tu pais de residencia\",\n \"course_type\": \"Tipo de plan\",\n \"degree\": \"Nivel universitario\",\n \"comments\":\"Ingresa tus comentarios de registro ( Opcional )\",\n \"email\": \"Correo electronico\",\n \"email_ufps\": \"ingresa el correo electronico con dominio ufps.edu.co\",\n \"email_unipamplona\": \"Ingresa el correo con dominio unipamplona.edu.co\",\n \"financing_value\": \"Valor pagado\",\n \"financing_date\": \"Fecha de pago\",\n \"financing_responsable\": \"Recibido por\",\n \"financing_sales_check\": \"Numero de recibo\",\n \"financing_invoice_number\":\"Numero de recibo\",\n \"id_cod\": \"Numero de inscripcion\",\n \"id_card_type\":\"Ingresa tu tipo de documento\",\n \"id_card\": \"Documento de identidad\",\n \"id_financing\": \"Consecutivo\",\n \"id_payment\": \"Ingrese el número de recibo\",\n \"last_name\": \"Apellidos\",\n \"name\": \"Ingrese los nombres\",\n \"nickname\":\"Nickname\",\n \"needAtendant\": \"¿Requiere acudiente?\",\n \"marketing_reasons\": \"¿Cómo se entero del programa?\",\n \"level\": \"Seleccione el nivel\",\n \"code_refers\": \"Seleccionar quien lo refeiere\",\n \"observation\": \"Observaciones\",\n \"occupation\":\"Ocupacion\",\n \"password\": \"Contraseña\",\n \"phone_indicative\": \"Seleccione su indicativo\",\n \"phone_number\": \"Numero de teléfono\",\n \"paymentMethod\": \"Seleccione el metodo de pago\",\n \"payment_date\": \"Ingresa la fecha de pago\",\n \"program\":\"Ingrese el programa academico\",\n \"first_quota_price\": \"Ingrese el valor de la primera cuota\",\n \"quota_times\": \"Ingresar el numero de cuotas\",\n \"role\": \"Seleccione el rol\",\n \"re_password\": \"Repetir contraseña\",\n \"re_total_price\": \"Confirmar el valor total de la matricula\",\n \"service_hour\": \"Horas de servicio\",\n \"semester\": \"Semestre actual\",\n \"school_name\": \"Ingrese el nombre del colegio\",\n \"school_grade\": \"Grado escolar\",\n \"state\":\"Seleccione su departamento\",\n \"study_reasons\":\"Motivo\",\n \"total_price\": \"Ingrese el monto total de la matricula\",\n \"ufps_code\": \"Ingrese el codigo UFPS\",\n \"unipamplona_code\": \"Ingresa tu codigo UniPamplona\",\n \"type_coupon\":\"Ingrese el tipo de cupon\"\n },\n \"validators\": {\n \"academic_level\": \"Ingrese el nivel academico ( Pregrado / Posgrado )\",\n \"academic_plan\": 'Plan',\n \"address\": \"Debes ingresar su direccion\",\n \"agreement_by_category\":\"Convenio por categoria\",\n \"availible_courses\":\"Debes seleccionar el grupo\",\n \"birthdate\":\"Debes ingresar tu fecha de nacimiento\",\n \"city\":\"Debes ingresar la ciudad de residencia\",\n \"classroom\": \"Debe seleccionar los grupos disponibles\",\n \"country\":\"Debes ingresar el pais de residencia\",\n \"degree\": \"Debe seleccionar el nivel universitario\",\n \"email\": \"Recuerda usar correos con dominio @inglesparatodos.edu.co\",\n \"email_ufps\": \"ingresa el correo electronico con dominio ufps.edu.co\",\n \"email_unipamplona\": \"Ingresa el correo con dominio unipamplona.edu.co\",\n \"financing_value\": \"Debe ingresar el valor pagado de la cuota\",\n \"financing_date\": \"Debe ingresar la fecha de realizacion del pago\",\n \"financing_responsable\": \"Debe ingresar el nombre de quien recibe el pago\",\n \"financing_sales_check\": \"Debe ingresar el numero de recibo\",\n \"financing_invoice_number\":\"Debes ingresar el numero de recibo\",\n \"id_cod\": \"Ingrese el numero de inscripcion\",\n \"id_card_type\":\"Debes ingresar el tipo de documento\",\n \"id_card\": \"Debes ingresar el número de documento.\",\n \"id_payment\": \"Debe ingresar el número de recibo\",\n \"last_name\": \"Debes ingresar los apellidos del usuario.\",\n \"name\": \"Debes ingresar el nombre del usuario\",\n \"nickname\":\"Debes ingresar el nickname\",\n \"marketing_reasons\": \"¿Cómo se entero del programa?\",\n \"needAtendant\": \"Debes ingresar si requiere o no acudiente\",\n \"level\": \"Seleccione el nivel\",\n \"code_refers\": \"Seleccionar quien lo refeiere\",\n \"observation\": \"Observaciones\",\n \"occupation\":\"Debes ingresar la ocupacion\",\n \"password\": \"Debe ser de minimo 7 digitos\",\n \"paymentMethod\": \"Seleccione el metodo de pago\",\n \"payment_date\": \"Debe ingresa la fecha de pago\",\n \"phone_number\": \"Debes ingresar un número de teléfono valido\",\n \"phone_indicative\": \"Debes seleccionar un indicativo\",\n \"first_quota_price\": \"Debe ingresar el valor de la primera cuota\",\n \"quota_times\": \"Ingrese un número de cuotas válido\",\n \"program\":\"Debe ingresar el programa academico\",\n \"role\": \"Debe seleccionar un rol\",\n \"re_password\": \"Debe ser de minimo 7 digitos\",\n \"re_total_price\": \"Debe confirmar el valor total de la matricula\",\n \"semester\": \"Debe ingresar el semestre actual\",\n \"service_hour\": \"Debe ingresar las horas de servicio\",\n \"school_name\": \"Debe ingresar el nombre del colegio\",\n \"school_grade\": \"Debes ingresar el grado actual\",\n \"state\":\"Seleccione el departamento\",\n \"study_reasons\":\"Motivo\",\n \"total_price\": \"Debe ingresar el monto total de la matricula\",\n \"ufps_code\": \"Debe ingresar el codigo UFPS\",\n \"unipamplona_code\": \"Debes ingresar tu codigo UniPamplona\"\n },\n },\n \"attendant\": {\n \"inputs\": {\n \"address\": \"ingrese su direccion\",\n \"city\":\"Ingrese su ciudad de residencia\",\n \"country\":\"Ingresa tu pais de residencia\",\n \"id_card_type\":\"Ingresa tu tipo de documento\",\n \"id_card\": \"Documento de identidad\",\n \"last_name\": \"Apellidos\",\n \"name\": \"Ingrese los nombres\",\n \"phone_indicative\": \"Seleccione su indicativo\",\n \"phone_number\": \"Numero de teléfono\",\n \"state\":\"Seleccione su departamento\",\n },\n \"validators\": {\n \"address\": \"Debes ingresar su direccion\",\n \"city\":\"Debes ingresar la ciudad de residencia\",\n \"country\":\"Debes ingresar el pais de residencia\",\n \"id_card_type\":\"Debes ingresar el tipo de documento\",\n \"id_card\": \"Debes ingresar el número de documento.\",\n \"last_name\": \"Debes ingresar los apellidos del usuario.\",\n \"name\": \"Debes ingresar el nombre del usuario\",\n \"phone_number\": \"Debes ingresar un número de teléfono valido\",\n \"phone_indicative\": \"Debes seleccionar un indicativo\",\n \"state\":\"Seleccione el departamento\",\n }\n },\n \"menu\": {\n \"field1\": \"Home\",\n \"field2\": \"Groups\",\n \"field3\": \"Profile\",\n \"field5\": \"Score\",\n \"field4\": \"Search\",\n \"endField\": \"Cerrar Sesión\"\n },\n \"edit_profile\": {\n \"inputs\": {\n \"id_card\": \"Documento de identidad\",\n \"ufps_code\": \"Código de la universidad\",\n \"email\": \"Correo dominio @ufps.edu.co\",\n \"last_name\": \"Ingresa tus apellidos\",\n \"name\": \"Ingresa tus nombres\",\n \"phone\": \"Numero de teléfono\",\n },\n },\n \"en\": {}\n }\n}\n\nexport function getCopies(): any {\n return copies;\n}\n","import { Injectable } from '@angular/core';\nimport { getCopies } from '../utils/copies';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CopiesService {\n\n constructor() { }\n\n public copies: any = getCopies();\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { CreateCourseRq, EditCourseRq, GetAvailibleCoursesRq, GetCourseByCodeRq, GetCoursesByTeacherRq, GetCoursesRq, IChangeCourseStudentNotStartedRq, IUpdateCourseEventByCodeRq,ICourse,GetCoursesFilterRq,CreateCourseEventRq,IUpdateCourseEventByCodeNewRq, DeleteCourseEventRq, GetEventEditDataRq, GetCourseScheduleRq,GetLastEventByCourseCodeRq,GetCourseAssignedByCourseCodeRq, EnableCourseByRequestAndCodeRq, ICourseDisableByCodeRq } from '../../models/course/course-rq.model';\nimport { CourseStartDateRq } from '../../models/cronogram/cronogram.models';\nimport { ICourseChangeAuditRq } from '../../models/course/courses.model';\nimport { ITransferGetAllRq } from '../../models/payment/payment-rq.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CourseService extends IPTGeneralService{\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n createCourse(course: CreateCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course';\n this.generateRequestParams(course);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n editCourse(course: EditCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'put/course';\n this.generateRequestParams(course);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n getAllCourses(params: GetCoursesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/all/courses';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCoursesByLevel(params: GetCoursesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/level';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAvailibleCourses( availibleCourses: GetAvailibleCoursesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/for/cod';\n this.generateRequestParams(availibleCourses);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourseByCode(params: GetCourseByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourseByCodeAllData(params: GetCourseByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/code/all/data';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCoursesByTeacher(params: GetCoursesByTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/teacher';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getFilteredCoursesByTeacher(params: GetCoursesByTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/filtered/by/teacher';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCoursesByStartDate(params: CourseStartDateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/startdate';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n numberClassByCode(idCode: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/coursetype/numclass/by/code/' + idCode;\n return this.http.get(serviceUrl);\n }\n\n getAvailableCoursesByLevAgreeCType( availibleCourses: GetAvailibleCoursesRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/available/courses/by/lev/agree/coursetype';\n this.generateRequestParams(availibleCourses);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n ChangeCourseStudentWhoHasNotStarted( params: IChangeCourseStudentNotStartedRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'change/course/student/who/has/not/started';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateCourseEventByCode( params: IUpdateCourseEventByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/course/event/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n UpdateCourseTeacherByCode( params: ICourse): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/update/course/teacher/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n UpdateCourseCapacityByCode( params: ICourse): Observable<any> {\n let serviceUrl = this.SERVICE_URL + '/post/update/course/capacity/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourseTheoryAndClubAllData( params: GetCourseByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/theory/and/club/all/data';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourses(params: GetCoursesFilterRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/courses';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCoursesByState(params: GetCoursesFilterRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/courses/by/state';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n createCourseEvent(params: CreateCourseEventRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'create/course/event';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateCourseEventByCodeTwo(params: IUpdateCourseEventByCodeNewRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'update/course/event/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n deleteCourseEvent(params: DeleteCourseEventRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'delete/course/event';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getEventEditData(params: GetEventEditDataRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'get/event/edit/data';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourseSchedule(params: GetCourseScheduleRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'get/course/schedule';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourseAssignedByCourseCode(params: GetCourseAssignedByCourseCodeRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'course/assigned/by/course/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getLastEventByCourseCode(params: GetLastEventByCourseCodeRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'last/event/by/course/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourseChangeAuditByStudent(params: ICourseChangeAuditRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'audit/query/of/changes/by/user';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getRecordOfAuditedCoursesByDate(params: ITransferGetAllRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'record/of/audited/courses/by/date';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n confirmationOfStudentCourseChange(params: any): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'confirmation/of/student/course/change';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n \n getCoursesByStateRefactor(params: GetCoursesFilterRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/courses/by/state/refactor';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n postEnableCourseByRequestAndCode(params: EnableCourseByRequestAndCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/enable/courses/for/enrollment/cod/by/course/for/academic';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n postDisableCourseByCode(params: ICourseDisableByCodeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/disable/course/as/before/cod/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class CommunicatorService {\n private $courseType = new BehaviorSubject<string>('');\n private $agreement = new BehaviorSubject<string>('');\n\n constructor() { }\n\n getSelectedCourseType(): Observable<string> {\n return this.$courseType.asObservable();\n }\n\n setCurrentCourseType(value: string) {\n this.$courseType.next(value);\n }\n\n getSelectedAgreement(): Observable<string> {\n return this.$agreement.asObservable();\n }\n\n setCurrentAgreement(value: string) {\n this.$agreement.next(value);\n }\n\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, SimpleChanges, OnChanges, ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { GetAvailibleCoursesRq } from '../../../core/models/course/course-rq.model';\nimport { CopiesService } from '../../../core/services/copies.service';\nimport { CourseService } from '../../../core/services/course-service/course-service.model';\nimport { BaseService } from '../../../core/utils/base-service/base.service';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { CommunicatorService } from '../../logic/communicator.service';\nimport { IAgreementRs, ICourseTypeRs, IParametersAllRs } from '../../../core/models/parameters/parameters-rs.model';\nimport { finalize } from 'rxjs';\n\n@Component({\n selector: 'app-cod-form-step-one',\n templateUrl: './cod-form-step-one.component.html',\n styleUrls: ['./cod-form-step-one.component.css'],\n})\nexport class CodFormStepOneComponent extends CodFormSteps implements OnChanges {\n\n @Input() initialData?: any;\n @Input() dataPreviusCodData?: any;\n @Input() isEditCod?: boolean;\n @Input() courseSelectRenovation?:any;\n @Input() isRenovation?:any;\n @Input() parametersAll?: IParametersAllRs;\n @Output() changeStepEvent = new EventEmitter<number>();\n\n copies: any;\n codFormStepOne!: FormGroup;\n hasAvailableCourse!: boolean;\n isLoading: boolean = false;\n // Parameters\n agreements: IAgreementRs[]=[];\n availibleCourses: any[] = [];\n course_type: ICourseTypeRs[]=[];\n levels: any;\n plans: any;\n isDisabledSel:boolean=false\n // Controls del formulario\n controls = new CodFormControls().controls[0];\n\n constructor(\n private fb: FormBuilder,\n private copiesService: CopiesService,\n private baseService: BaseService,\n private courseService: CourseService,\n private communicatorService: CommunicatorService,\n private cdRef: ChangeDetectorRef\n ) {\n super();\n this.copies = this.copiesService.copies;\n }\n\n /* Es necesario recorrer el array de controls de nuestro formulario para:\n ✅ Leer el Local Storage y setear los valores\n ✅ Subscribirse a los cambios del formulario para setear valores nuevos\n\n Nota: la clase CodFormSteps() se encarga de toda la lógica de LS con los pasos del formulario del COD\n */\n\n ngOnChanges(changes: SimpleChanges): void {\n\n this.initForm();\n this.getParameters();\n this.startLocalStorageWork();\n this.setValuesByLocalStorage()\n this.codFormStepOne.controls['course_type'].valueChanges\n .subscribe(value => this.communicatorService.setCurrentCourseType(value));\n\n this.communicatorService.setCurrentAgreement(this.localStorageCOD.getCodFormData(1, 'agreement_by_category')!);\n\n // Lógica principal de cambios\n if (changes['initialData'] || changes['dataPreviusCodData']) {\n this.handleDataChanges(changes);\n }\n \n this.cdRef.detectChanges(); \n // const shouldProcessInitialData = changes['initialData'] && \n // this.initialData != null && \n // this.dataPreviusCodData === null;\n\n // const shouldProcessPreviusData = this.dataPreviusCodData != null && \n // this.isEditCod === false && \n // this.isRenovation === false;\n\n // if (shouldProcessInitialData || shouldProcessPreviusData) {\n // this.processData(this.initialData);\n // this.cdRef.detectChanges();\n // console.log(\"Entro en this.processData con initialData\");\n // } else {\n // // Manejo más controlado del \"else\"\n // console.log(\"entre en el else que borra todo en null\");\n // this.codFormStepOne.controls['academic_plan'].setValue(null);\n // this.codFormStepOne.controls['course_type'].setValue(null);\n // this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n // this.codFormStepOne.controls['english_level'].setValue(null);\n // this.codFormStepOne.controls['availible_courses'].setValue(null);\n // this.codFormStepOne.controls['course_modality'].setValue(null);\n // }\n // if (changes['initialData'] && this.initialData != null && this.dataPreviusCodData === null || this.dataPreviusCodData != null && this.isEditCod === false && this.isRenovation === false) {\n // this.processData(this.initialData);\n // console.log(\"Entro en this.processData con initialData\");\n // this.cdRef.detectChanges();\n // }else{\n // this.codFormStepOne.controls['academic_plan'].setValue(null);\n // this.codFormStepOne.controls['course_type'].setValue(null);\n // this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n // this.codFormStepOne.controls['english_level'].setValue(null);\n // this.codFormStepOne.controls['availible_courses'].setValue(null);\n // this.codFormStepOne.controls['course_modality'].setValue(null);\n // }\n\n // if (changes['dataPreviusCodData'] && this.dataPreviusCodData != null && this.isEditCod && this.isRenovation === false ) {\n // this.processData(this.dataPreviusCodData);\n // console.log(\"Entro en this.processData con dataPreviusCodData\");\n // if (this.isEditCod && !this.dataPreviusCodData.edit_course_payment) {\n // this.isDisabledSel = true;\n // } else {\n // this.isDisabledSel = false;\n // }\n\n // this.cdRef.detectChanges();\n // }else if(changes['dataPreviusCodData'] && this.dataPreviusCodData != null && !this.isEditCod && this.courseSelectRenovation && this.isRenovation === true ){\n // this.setDataCodRenovationSelect();\n // this.isDisabledSel= true\n // this.cdRef.detectChanges();\n // }\n\n }\n\n private handleDataChanges(changes: SimpleChanges): void {\n // Caso 1: Hay initialData y NO hay dataPreviusCodData\n if (changes['initialData']?.currentValue && !this.isRenovation && !this.isEditCod) {\n this.processData(this.initialData);\n return;\n }\n\n // Caso 2: Hay dataPreviusCodData\n if (changes['dataPreviusCodData']?.currentValue) {\n // Subcaso 2.1: Es edición\n if (this.isEditCod && !this.isRenovation) {\n this.processData(this.dataPreviusCodData);\n this.isDisabledSel = !this.dataPreviusCodData.edit_course_payment;\n return;\n }\n // Subcaso 2.2: Es renovación\n if (!this.isEditCod && this.isRenovation && this.courseSelectRenovation) {\n this.setDataCodRenovationSelect();\n this.isDisabledSel = true;\n return;\n }\n\n // Subcaso 2.2: viene con initialData\n if (this.initialData && !this.isEditCod && !this.isRenovation) {\n this.processData(this.initialData);\n this.isDisabledSel = false;\n return;\n }\n }\n\n // Caso 3: Ninguna condición anterior se cumplió (reset controlado)\n this.resetForm();\n}\n\n private processData(data: any) {\n const { codFormStepOne } = this;\n this.getAgreementByPlan(data.course_type?.academic_plan.code);\n this.getCourseType(data.course_type?.academic_plan.code);\n codFormStepOne.controls['english_level'].setValue(data.english_level?.code);\n codFormStepOne.controls['agreement_by_category'].setValue(data.agreement?.code);\n codFormStepOne.controls['course_type'].setValue(data.course_type?.code);\n codFormStepOne.controls['academic_plan'].setValue(data.course_type?.academic_plan.code);\n this.getAvailibleCourses();\n\n if (this.isEditCod) {\n this.setDataFromEditCodHistory();\n } else if (!this.isEditCod && this.initialData != null) {\n this.setDataFromUserHistory();\n }\n }\n\n setDataFromUserHistory(){\n this.codFormStepOne.controls['academic_plan'].setValue(this.initialData.course_type.academic_plan.code);\n this.codFormStepOne.controls['course_type'].setValue(this.initialData.course_type.code);\n this.codFormStepOne.controls['agreement_by_category'].setValue(this.initialData.agreement.code);\n this.codFormStepOne.controls['english_level'].setValue(this.initialData.english_level.code);\n this.codFormStepOne.controls['availible_courses'].setValue(this.initialData.code);\n this.codFormStepOne.controls['course_modality'].setValue(this.initialData.course_modality.code);\n }\n\n setDataFromEditCodHistory(){\n\n this.codFormStepOne.controls['academic_plan'].setValue(this.dataPreviusCodData.course_type.academic_plan.code ? this.dataPreviusCodData.course_type.academic_plan.code : null);\n this.codFormStepOne.controls['course_type'].setValue(this.dataPreviusCodData.course_type.code ? this.dataPreviusCodData.course_type.code : null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(this.dataPreviusCodData.agreement.code ? this.dataPreviusCodData.agreement.code : null);\n this.codFormStepOne.controls['english_level'].setValue(this.dataPreviusCodData.english_level.code ? this.dataPreviusCodData.english_level.code : null);\n this.codFormStepOne.controls['availible_courses'].setValue(this.dataPreviusCodData.course.code ? this.dataPreviusCodData.course.code : null);\n this.codFormStepOne.controls['course_modality'].setValue(this.dataPreviusCodData.course.course_modality ? this.dataPreviusCodData.course.course_modality : null);\n }\n setDataCodRenovationSelect(){\n this.getAgreementByPlan(this.courseSelectRenovation.course_type?.academic_plan.code);\n this.getCourseType(this.courseSelectRenovation.course_type?.academic_plan.code);\n this.codFormStepOne.controls['academic_plan'].setValue(this.courseSelectRenovation.course_type?.academic_plan.code ? this.courseSelectRenovation.course_type?.academic_plan.code : null);\n this.codFormStepOne.controls['course_type'].setValue(this.courseSelectRenovation.course_type?.code ? this.courseSelectRenovation.course_type?.code : null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(this.courseSelectRenovation.agreement?.code ? this.courseSelectRenovation.agreement?.code : null);\n this.codFormStepOne.controls['english_level'].setValue(this.courseSelectRenovation.english_level?.code ? this.courseSelectRenovation.english_level?.code : null);\n this.codFormStepOne.controls['availible_courses'].setValue(this.courseSelectRenovation?.code ? this.courseSelectRenovation?.code : null);\n this.codFormStepOne.controls['course_modality'].setValue(this.courseSelectRenovation.course_modality?.code ? this.courseSelectRenovation.course_modality?.code : null);\n this.getAvailibleCourses();\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(1, control.name);\n this.codFormStepOne.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(1, control.name, this.codFormStepOne.controls[control.name].valueChanges);\n });\n }\n\n\n getParameters() {\n this.plans = this.parametersAll?.academicPlan;\n this.levels = this.parametersAll?.english_levels;\n }\n\n initForm() {\n this.codFormStepOne = this.fb.group({\n academic_plan: ['', [Validators.required]],\n course_type: ['', [Validators.required]],\n agreement_by_category: ['', [Validators.required]],\n english_level: ['', [Validators.required]],\n availible_courses: ['', []],\n course_modality: [''],\n\n });\n }\n\n setValuesByLocalStorage() {\n const academicPlan = this.codFormStepOne.controls['academic_plan'].value;\n if (academicPlan) {\n this.selectAcademicPlan(academicPlan);\n }\n \n const agreementByCategory = parseInt(this.codFormStepOne.controls['agreement_by_category'].value);\n const englishLevel = parseInt(this.codFormStepOne.controls['english_level'].value);\n const courseModality = parseInt(this.codFormStepOne.controls['course_modality'].value);\n \n if (agreementByCategory && englishLevel && courseModality) {\n this.getAvailibleCourses();\n }\n }\n\n sendForm() {\n this.codFormStepOne.markAsTouched();\n if (this.codFormStepOne.invalid) return;\n\n // Movernos al paso 2\n this.changeStepEvent.emit(1);\n }\n\n resetForm() {\n // this.resetLocalStorage(this.controls);\n // this.codFormStepOne.reset();\n this.codFormStepOne.controls['academic_plan'].setValue(null);\n this.codFormStepOne.controls['course_type'].setValue(null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n this.codFormStepOne.controls['english_level'].setValue(null);\n this.codFormStepOne.controls['availible_courses'].setValue(null);\n this.codFormStepOne.controls['course_modality'].setValue(null);\n }\n\n // Eventos de los selects\n selectAcademicPlan(academic_plan: string) {\n if (academic_plan !== 'Plan') {\n this.codFormStepOne.controls['academic_plan'].setValue(parseInt(academic_plan));\n // this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n // this.codFormStepOne.controls['school_name'].setValue(null);\n // this.codFormStepOne.controls['course_type'].setValue(null);\n this.getCourseType(parseInt(academic_plan));\n this.getAgreementByPlan(parseInt(academic_plan));\n } else {\n this.codFormStepOne.controls['academic_plan'].setValue(null);\n this.codFormStepOne.controls['course_type'].setValue(null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n }\n }\n\n getCourseType(plan: number) {\n const planNumber = typeof plan === 'string' ? parseInt(plan) : plan;\n if (this.parametersAll && this.parametersAll?.courseType) {\n this.course_type = this.parametersAll.courseType.filter((course) => {\n return course.academic_plan === planNumber;\n });\n } else {\n this.course_type = [];\n }\n }\n\n getAgreementByPlan(plan: number) {\n const planNumber = typeof plan === 'string' ? parseInt(plan) : plan;\n if (this.parametersAll && this.parametersAll?.agreement) {\n this.agreements = this.parametersAll.agreement.filter((agreement) => {\n return agreement.category === planNumber;\n });\n } else {\n this.agreements = [];\n }\n }\n\n selectCoursesTypesByPlan(coursesTypes: any) {\n if (coursesTypes !== 'Tipo de plan') {\n this.codFormStepOne.controls['course_modality'].setValue(null);\n this.codFormStepOne.controls['availible_courses'].setValue(null);\n this.codFormStepOne.controls['course_type'].setValue(coursesTypes);\n this.getAvailibleCourses();\n } else {\n this.codFormStepOne.controls['course_type'].setValue(null);\n }\n }\n\n selectAgreementByCategory(agreementByCategories: any) {\n if (agreementByCategories !== 'Convenio por categoria') {\n // this.codFormStepOne.controls['course_modality'].setValue(null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(agreementByCategories);\n this.communicatorService.setCurrentAgreement(agreementByCategories);\n // this.getAvailibleCourses();\n } else {\n this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n this.codFormStepOne.controls['school_name'].setValue(null);\n }\n }\n\n selectLevel(levels: any) {\n if (levels !== 'Nivel de inglés') {\n this.codFormStepOne.controls['course_modality'].setValue(null);\n this.codFormStepOne.controls['availible_courses'].setValue(null);\n this.codFormStepOne.controls['english_level'].setValue(levels);\n this.getAvailibleCourses();\n } else {\n this.codFormStepOne.controls['english_level'].setValue(null);\n }\n }\n\n selectAvailibleCourses(availibleCourses: any) {\n if (availibleCourses !== 'Grupos disponibles') {\n let courseMod = this.availibleCourses.find(objeto => objeto.code === parseInt(availibleCourses, 10));\n this.codFormStepOne.controls['course_modality'].setValue(courseMod.modality);\n this.codFormStepOne.controls['availible_courses'].setValue(availibleCourses);\n } else {\n this.codFormStepOne.controls['availible_courses'].setValue(null);\n this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n this.codFormStepOne.controls['course_type'].setValue(null);\n this.codFormStepOne.controls['english_level'].setValue(null);\n }\n }\n\n private validRequest(): boolean {\n const form = this.codFormStepOne;\n return !!(\n form.get('english_level')?.value &&\n form.get('agreement_by_category')?.value &&\n form.get('course_type')?.value\n );\n }\n\n // getAvailibleCourses() {\n\n // if (this.validRequest()) {\n // this.isLoading = true;\n // let request_availibleCourses: GetAvailibleCoursesRq = {\n // token: this.baseService.getUserToken(),\n // english_level: this.codFormStepOne.controls['english_level'].value,\n // agreement: this.codFormStepOne.controls['agreement_by_category'].value,\n // course_type: this.codFormStepOne.controls['course_type'].value,\n // };\n\n // this.courseService.getAvailableCoursesByLevAgreeCType(request_availibleCourses).subscribe((response) => {\n // if (response.data) {\n // this.availibleCourses = [];\n // let courses: any[] = response.data;\n // this.hasAvailableCourse = true;\n // courses.forEach(course => {\n // let scheduleParts = course.course_schedule[0].split(\" \");\n // let startTime = scheduleParts[2];\n // this.availibleCourses.push({\n // code: course.code,\n // name: `${course.code} Curso ${course.course_modality.name === 'Presencial' ? 'Presencial' : 'Virtual'} - Teacher ${course.teacher} - Fecha de inicio: ${course.to_start}, Hora de inicio: ${startTime}, Cupos disp: ${course.available_capacity}`,\n // modality: course.course_modality.code\n // });\n // })\n // this.isLoading = false;\n // console.log(\"availibleCourses\",this.availibleCourses);\n // console.log(\"Valores del formulario:\", {\n // academic_plan: this.codFormStepOne.controls['academic_plan'].value,\n // course_type: this.codFormStepOne.controls['course_type'].value,\n // agreement_by_category: this.codFormStepOne.controls['agreement_by_category'].value,\n // english_level: this.codFormStepOne.controls['english_level'].value,\n // availible_courses: this.codFormStepOne.controls['availible_courses'].value,\n // course_modality: this.codFormStepOne.controls['course_modality'].value,\n // agreement: this.codFormStepOne.controls['agreement'].value,\n // });\n // } else { \n // this.hasAvailableCourse = false;\n // this.codFormStepOne.controls['availible_courses'].setValue(\"\");\n // this.setValueStepFour();\n // this.isLoading = false;\n // }\n // });\n // }\n // }\n\n getAvailibleCourses() {\n if (this.isLoading) return;\n if (this.validRequest()) {\n this.isLoading = true;\n \n // Guarda los valores actuales antes de la llamada\n const currentValues = {\n academic_plan: this.codFormStepOne.get('academic_plan')?.value,\n course_type: this.codFormStepOne.get('course_type')?.value,\n agreement_by_category: this.codFormStepOne.get('agreement_by_category')?.value,\n english_level: this.codFormStepOne.get('english_level')?.value\n };\n let request_availibleCourses: GetAvailibleCoursesRq = {\n token: this.baseService.getUserToken(),\n english_level: currentValues.english_level,\n agreement: currentValues.agreement_by_category,\n course_type: currentValues.course_type,\n };\n\n this.courseService.getAvailableCoursesByLevAgreeCType(request_availibleCourses)\n .pipe(\n finalize(() => {\n this.isLoading = false\n this.cdRef.detectChanges();\n }) \n )\n .subscribe({\n next: (response) => {\n if (response.data) {\n this.availibleCourses = response.data.map((course:any) => {\n let scheduleParts = course.course_schedule[0]?.split(\" \") || [];\n let startTime = scheduleParts[2] || '';\n return {\n code: course.code,\n name: `${course.code} Curso ${course.course_modality?.name === 'Presencial' ? 'Presencial' : 'Virtual'} - Teacher ${course.teacher} - Fecha de inicio: ${course.to_start}, Hora de inicio: ${startTime}, Cupos disp: ${course.available_capacity}`,\n modality: course.course_modality?.code\n };\n });\n this.hasAvailableCourse = true;\n } else { \n this.hasAvailableCourse = false;\n this.codFormStepOne.get('availible_courses')?.setValue(null);\n this.setValueStepFour();\n }\n },\n error: (err) => {\n this.hasAvailableCourse = false;\n this.cdRef.detectChanges();\n }\n });\n }\n }\n\n setValueStepFour(){\n this.setDataInLocalStorage(4, 'program_price', null);\n this.setDataInLocalStorage(4, 'quota_times', null);\n this.setDataInLocalStorage(4, 'total_price', null);\n }\n}\n","<form [formGroup]=\"codFormStepOne\" class=\"grid\">\n <div class=\"col\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['academic_plan'].value\"\n [selectCode]=\"codFormStepOne.controls['academic_plan'].value === null? 'Plan': codFormStepOne.controls['academic_plan'].value\"\n [defaultText]=\"'Plan'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAcademicPlan($event)\"\n [data]=\"plans\"\n [control]=\"codFormStepOne.controls['academic_plan']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['course_type'].value\"\n [selectCode]=\"codFormStepOne.controls['course_type'].value === null? 'Tipo de plan': codFormStepOne.controls['course_type'].value\"\n [defaultText]=\"'Tipo de plan'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectCoursesTypesByPlan($event)\"\n [data]=\"course_type\"\n [control]=\"codFormStepOne.controls['course_type']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <div class=\"col\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['agreement_by_category'].value\"\n [selectCode]=\"codFormStepOne.controls['agreement_by_category'].value === null? 'Convenio por categoria': codFormStepOne.controls['agreement_by_category'].value\"\n [defaultText]=\"'Convenio por categoria'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAgreementByCategory($event)\"\n [data]=\"agreements\"\n [control]=\"codFormStepOne.controls['agreement_by_category']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['english_level'].value\"\n [selectCode]=\"codFormStepOne.controls['english_level'].value === null? 'Nivel de inglés': codFormStepOne.controls['english_level'].value\"\n [defaultText]=\"'Nivel de inglés'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectLevel($event)\"\n [data]=\"levels\"\n [control]=\"codFormStepOne.controls['english_level']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n </div>\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codFormStepOne.controls['availible_courses'].value\"\n [selectCode]=\"codFormStepOne.controls['availible_courses'].value === null? 'Grupos disponibles': codFormStepOne.controls['availible_courses'].value\"\n [defaultText]=\"'Grupos disponibles'\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectAvailibleCourses($event)\"\n [data]=\"availibleCourses\"\n [control]=\"codFormStepOne.controls['availible_courses']\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-loader *ngIf=\"isLoading\" class=\"w-1\">\n </ipt-loader>\n </div>\n <span *ngIf=\"!hasAvailableCourse\" class=\"mt-1 pl-2 text-red-500\">Todavía no hay cursos con estas características.</span>\n</form>\n\n<div class=\"flex mt-2 align-items-center gap-3\">\n <span *ngIf=\"codFormStepOne.invalid && codFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">Faltan campos por llenar.</span>\n <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { IParametersAllRs } from '../../../core/models/parameters/parameters-rs.model';\n\n@Component({\n selector: 'app-cod-form-step-two',\n templateUrl: './cod-form-step-two.component.html',\n styleUrls: ['./cod-form-step-two.component.css']\n})\nexport class CodFormStepTwoComponent extends CodFormSteps implements OnChanges {\n @Input() initialData?: any;\n @Input() isEditCod?: boolean;\n @Input() parametersAll?: IParametersAllRs;\n @Output() changeStepEvent = new EventEmitter<number>();\n\n codFormStepTwo!: FormGroup;\n countrySelected: any;\n countries: any;\n states: any;\n cities: any;\n errorMessage: string = 'Faltan campos por llenar.';\n hasErrors: boolean = false;\n idTypes: any[] = [];\n indicatives: any;\n civilStatus: any;\n genders: any[] = [];\n stratums: any;\n isDisabledSelTypeIdCard=false;\n\n controls = new CodFormControls().controls[1];\n dataCountry: any;\n\n constructor(\n private fb: FormBuilder,\n ) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.initForm();\n this.startLocalStorageWork();\n this.validateErrors();\n this.getParameters();\n this.trackStudentIdCardChanges();\n if (changes['initialData']) {\n if (this.initialData != null) {\n if (this.initialData.student != null) {\n this.setDataFromPreviusCod();\n } else {\n this.setDataFromUserHistory();\n }\n }\n if (this.initialData?.id_card_type || this.initialData?.student?.id_card_type) {\n this.isDisabledSelTypeIdCard = true;\n }else{\n this.isDisabledSelTypeIdCard = false;\n }\n }\n }\n\n setDataFromUserHistory() {\n this.codFormStepTwo.controls['student_name'].setValue(this.initialData.name);\n this.codFormStepTwo.controls['student_last_name'].setValue(this.initialData.last_name);\n this.codFormStepTwo.controls['student_id_card_type'].setValue(this.initialData.id_card_type);\n this.codFormStepTwo.controls['student_id_card'].setValue(this.initialData.id_card);\n this.codFormStepTwo.controls['country'].setValue(this.initialData.city[0]?.country);\n this.codFormStepTwo.controls['state'].setValue(this.initialData.city[0]?.state);\n this.codFormStepTwo.controls['city'].setValue(this.initialData.city[0]?.code);\n this.codFormStepTwo.controls['gender'].setValue(this.initialData.gender);\n this.codFormStepTwo.controls['nickname'].setValue(this.initialData.nick_name);\n this.codFormStepTwo.controls['student_phone_indicative'].setValue(this.initialData.phone_indicative);\n this.codFormStepTwo.controls['student_phone_number'].setValue(this.initialData.phone_number);\n this.codFormStepTwo.controls['birthdate'].setValue(this.initialData.birthdate);\n this.codFormStepTwo.controls['student_email'].setValue(this.initialData.email);\n this.codFormStepTwo.controls['password'].setValue(this.initialData.id_card);\n this.codFormStepTwo.controls['re_password'].setValue(this.initialData.id_card);\n this.updateIdTypes(this.initialData?.id_card || '');\n }\n\n setDataFromPreviusCod() {\n this.codFormStepTwo.controls['student_name'].setValue(this.initialData.student.name);\n this.codFormStepTwo.controls['student_last_name'].setValue(this.initialData.student.last_name);\n this.codFormStepTwo.controls['student_id_card_type'].setValue(this.initialData.student.id_card_type);\n this.codFormStepTwo.controls['student_id_card'].setValue(this.initialData.student.id_card);\n this.codFormStepTwo.controls['country'].setValue(this.initialData.student.city[0].country);\n this.codFormStepTwo.controls['state'].setValue(this.initialData.student.city[0].state);\n this.codFormStepTwo.controls['city'].setValue(this.initialData.student.city[0].code);\n this.codFormStepTwo.controls['student_address'].setValue(this.initialData.aditional_information.student_address);\n this.codFormStepTwo.controls['gender'].setValue(this.initialData.student.gender);\n this.codFormStepTwo.controls['nickname'].setValue(this.initialData.student.nick_name);\n this.codFormStepTwo.controls['stratum'].setValue(this.initialData.aditional_information.social_stratum);\n this.codFormStepTwo.controls['student_occupation'].setValue(this.initialData.aditional_information.student_occupation);\n this.codFormStepTwo.controls['grade'].setValue(this.initialData.aditional_information.educational_level);\n this.codFormStepTwo.controls['civil_status'].setValue(this.initialData.aditional_information.civil_status);\n this.codFormStepTwo.controls['student_phone_indicative'].setValue(this.initialData.student.phone_indicative);\n this.codFormStepTwo.controls['student_phone_number'].setValue(this.initialData.student.phone_number);\n this.codFormStepTwo.controls['birthdate'].setValue(this.initialData.student.birthdate);\n this.codFormStepTwo.controls['student_email'].setValue(this.initialData.student.email);\n this.codFormStepTwo.controls['password'].setValue(this.initialData.student.id_card);\n this.codFormStepTwo.controls['re_password'].setValue(this.initialData.student.id_card);\n this.updateIdTypes(this.initialData?.student?.id_card || '');\n }\n\n cleanComponent() {\n this.resetLocalStorage(this.controls);\n this.codFormStepTwo.reset();\n this.idTypes = [...(this.parametersAll?.TypeIdCardByCountryCol || [])];\n }\n\n validateErrors() {\n this.codFormStepTwo.valueChanges.subscribe(changes => {\n if (this.codFormStepTwo.controls['student_name'].hasError('minlength')) {\n this.errorMessage = 'Los nombres deben tener mínimo 3 caracteres';\n } else if (this.codFormStepTwo.controls['student_last_name'].hasError('minlength')) {\n this.errorMessage = 'Los apellidos deben tener mínimo 5 caracteres';\n } else if (this.codFormStepTwo.controls['password'].hasError('minlength')) {\n this.errorMessage = 'La contraseña debe tener mínimo 6 caracteres';\n } else if (this.codFormStepTwo.controls['password'].value !== this.codFormStepTwo.controls['re_password'].value) {\n this.errorMessage = 'Las contraseñas no coinciden';\n } else if (this.codFormStepTwo.controls['age'].errors) {\n this.errorMessage = 'Fecha de nacimiento no válida';\n } else {\n this.errorMessage = 'Faltan campos por llenar';\n }\n });\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(2, control.name);\n this.codFormStepTwo.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(2, control.name, this.codFormStepTwo.controls[control.name].valueChanges);\n });\n }\n\n initForm() {\n const currentDate = new Date().toISOString().split('T')[0];\n this.codFormStepTwo = this.fb.group({\n student_address: ['', [Validators.required], []],\n birthdate: [currentDate, [Validators.required], []],\n country: ['', [Validators.required], []],\n state: ['', [Validators.required], []],\n city: ['', [Validators.required], []],\n student_id_card_type: ['', [Validators.required], []],\n student_id_card: [{ value: '', disabled: true }, [Validators.required,Validators.minLength(5),Validators.maxLength(20),Validators.pattern(/^[a-zA-Z0-9]*$/)]],\n student_last_name: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(32)]],\n student_name: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(32)]],\n student_email: ['', [Validators.required, Validators.email]],\n nickname: ['', [Validators.required]],\n gender: ['', [Validators.required]],\n age: ['', [Validators.required], []],\n student_occupation: ['', [Validators.required]],\n stratum: ['', [Validators.required]],\n grade: ['', [Validators.required]],\n civil_status: ['', [Validators.required]],\n student_phone_indicative: ['', [Validators.required], []],\n student_phone_number: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(15)]],\n password: [{ value: '', disabled: this.isEditCod }, [Validators.required, Validators.minLength(6)]],\n re_password: [{ value: '', disabled: this.isEditCod }, [Validators.required, Validators.minLength(6)]],\n });\n this.codFormStepTwo.patchValue({\n birthdate: currentDate\n });\n this.codFormStepTwo.controls['birthdate'].valueChanges.subscribe({\n next: (change) => {\n let today = new Date();\n let birthday = new Date(change);\n let age = today.getFullYear() - birthday.getFullYear();\n let month = today.getMonth() - birthday.getMonth();\n\n if (month < 0 || (month === 0 && today.getDate() < birthday.getDate())) {\n age--;\n }\n\n if (age < 3) {\n this.errorMessage = 'Fecha de nacimiento no válida';\n this.codFormStepTwo.controls['birthdate'].setErrors({ invalidAge: true });\n } else {\n this.codFormStepTwo.controls['birthdate'].setErrors(null);\n }\n\n this.codFormStepTwo.controls['age'].setValue(age);\n }\n });\n }\n\n getParameters() {\n if (this.parametersAll?.TypeIdCardByCountryCol) {\n this.idTypes = [...this.parametersAll.TypeIdCardByCountryCol];\n } else {\n this.idTypes = [];\n }\n this.indicatives = this.parametersAll?.indicatives;\n this.countries = this.parametersAll?.country;\n this.stratums = this.parametersAll?.stratum;\n this.civilStatus = this.parametersAll?.civilStatus;\n this.cities = this.parametersAll?.city;\n this.states = this.parametersAll?.State;\n if (this.parametersAll && this.parametersAll.gender) {\n this.genders = this.parametersAll.gender.map((gender: any) => ({\n code: gender.code,\n name: gender.name_spanish\n }));\n } else {\n this.genders = [];\n }\n }\n\n sendForm() {\n this.codFormStepTwo.markAllAsTouched();\n if (this.codFormStepTwo.invalid) return;\n\n // Movernos al paso 3\n this.changeStepEvent.emit(2);\n }\n\n getState(state: any) {\n this.getCity(state);\n }\n\n getCity(state: any) {\n const stateNumber = typeof state === 'string' ? parseInt(state, 10) : state;\n \n if (this.parametersAll && this.parametersAll?.city) {\n \n this.cities = this.parametersAll.city.filter((course) => {\n const academicPlan = typeof course.state === 'string' \n ? parseInt(course.state, 10) \n : course.state;\n return academicPlan === stateNumber;\n });\n } else {\n this.cities = [];\n }\n this.selectCity(this.localStorageCOD.getCodFormData(2, 'city'));\n }\n\n selectCountry(country: any){\n const countryNumber = typeof country === 'string' ? parseInt(country, 10) : country;\n if (country != null) {\n this.codFormStepTwo.controls['country'].setValue(country);\n if (this.parametersAll && this.parametersAll?.State) {\n this.states = this.parametersAll.State.filter((course) => {\n const state = typeof course.country === 'string' \n ? parseInt(course.country, 10) \n : course.country;\n return state === countryNumber;\n });\n this.selectState(this.localStorageCOD.getCodFormData(2, 'state'));\n } else {\n this.states = [];\n }\n } else {\n this.codFormStepTwo.controls['country'].setValue(null);\n }\n }\n\n selectState(state: any) {\n if (state !== 'Departamento o estado') {\n this.codFormStepTwo.controls['state'].setValue(state);\n this.getState(state);\n } else {\n this.codFormStepTwo.controls['state'].setValue(null);\n this.codFormStepTwo.controls['city'].setValue(null);\n this.cities = [];\n }\n }\n\n selectCity(city: any) {\n if (city !== 'Ciudad de residencia') {\n this.codFormStepTwo.controls['city'].setValue(city);\n } else {\n this.codFormStepTwo.controls['city'].setValue(null);\n }\n }\n\n selectIdType(idType: any) {\n if (idType !== 'Tipo de documento') {\n this.codFormStepTwo.controls['student_id_card_type'].setValue(idType);\n } else {\n this.codFormStepTwo.controls['student_id_card_type'].setValue(null);\n }\n }\n\n selectIndicatives(indicative: any) {\n if (indicative !== 'Indicativo') {\n this.codFormStepTwo.controls['student_phone_indicative'].setValue(indicative);\n } else {\n this.codFormStepTwo.controls['student_phone_indicative'].setValue(null);\n }\n }\n\n selectGender(gender: any) {\n if (gender !== 'Género') {\n this.codFormStepTwo.controls['gender'].setValue(gender);\n } else {\n this.codFormStepTwo.controls['gender'].setValue(null);\n }\n }\n\n selectStratum(stratum: any) {\n if (stratum !== 'Estrato') {\n this.codFormStepTwo.controls['stratum'].setValue(stratum);\n } else {\n this.codFormStepTwo.controls['stratum'].setValue(null);\n }\n }\n\n selectCivilStatus(civil_status: any) {\n if (civil_status !== 'Estado civil') {\n this.codFormStepTwo.controls['civil_status'].setValue(civil_status);\n } else {\n this.codFormStepTwo.controls['civil_status'].setValue(null);\n }\n }\n\n trackStudentIdCardChanges() {\n const controlOne = this.codFormStepTwo.get('student_id_card');\n this.updateIdTypes(controlOne?.value || '');\n }\n\n updateIdTypes(value: string) {\n if (this.parametersAll?.TypeIdCardByCountryCol) {\n if (value && /[a-zA-Z]/.test(value)) {\n this.idTypes = this.parametersAll.TypeIdCardByCountryCol.filter((_, index) => \n ![0, 1, 2,3,5, 7, 8].includes(index)\n );\n } else {\n this.idTypes = [...this.parametersAll.TypeIdCardByCountryCol];\n }\n } else {\n this.idTypes = [];\n }\n }\n}\n","<form autocomplete=\"off\" [formGroup]=\"codFormStepTwo\" class=\"grid\">\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codFormStepTwo.controls['student_name']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_id_card_type'].value\"\n [control]=\"codFormStepTwo.controls['student_id_card_type']\"\n [selectCode]=\"codFormStepTwo.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codFormStepTwo.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n [disabledSel]=\"isDisabledSelTypeIdCard\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['country'].value\"\n [control]=\"codFormStepTwo.controls['country']\"\n [selectCode]=\"codFormStepTwo.controls['country'].value === null ? 'País de residencia' : codFormStepTwo.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'País de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['city'].value\"\n [control]=\"codFormStepTwo.controls['city']\"\n [selectCode]=\"codFormStepTwo.controls['city'].value === null ? 'Ciudad de residencia' : codFormStepTwo.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codFormStepTwo.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['gender'].value\"\n [control]=\"codFormStepTwo.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'Género'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['stratum'].value\"\n [control]=\"codFormStepTwo.controls['stratum']\"\n [data]=\"stratums\"\n (eventSelect)=\"selectStratum($event)\"\n [defaultText]=\"'Estrato'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Grado'\"\n [control]=\"codFormStepTwo.controls['grade']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_phone_indicative'].value\"\n [control]=\"codFormStepTwo.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electrónico'\"\n [control]=\"codFormStepTwo.controls['student_email']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contraseña'\"\n [control]=\"codFormStepTwo.controls['re_password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codFormStepTwo.controls['student_last_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Número de documento'\"\n [control]=\"codFormStepTwo.controls['student_id_card']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['state'].value\"\n [control]=\"codFormStepTwo.controls['state']\"\n [selectCode]=\"codFormStepTwo.controls['state'].value === null ? 'Departamento o estado' : codFormStepTwo.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Dirección'\"\n [control]=\"codFormStepTwo.controls['student_address']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Edad'\"\n [control]=\"codFormStepTwo.controls['age']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nickname'\"\n [control]=\"codFormStepTwo.controls['nickname']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupación'\"\n [control]=\"codFormStepTwo.controls['student_occupation']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['civil_status'].value\"\n [control]=\"codFormStepTwo.controls['civil_status']\"\n [data]=\"civilStatus\"\n (eventSelect)=\"selectCivilStatus($event)\"\n [defaultText]=\"'Estado civil'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de teléfono'\"\n [control]=\"codFormStepTwo.controls['student_phone_number']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contraseña'\"\n [control]=\"codFormStepTwo.controls['password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\"></div>\n\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"codFormStepTwo.invalid && codFormStepTwo.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { IParametersAllRs } from '../../../core/models/parameters/parameters-rs.model';\n\n@Component({\n selector: 'app-cod-form-step-three',\n templateUrl: './cod-form-step-three.component.html',\n styleUrls: ['./cod-form-step-three.component.css']\n})\nexport class CodFormStepThreeComponent extends CodFormSteps implements OnChanges {\n @Input() initialData?: any;\n @Input() isEditCod?: boolean;\n @Input() parametersAll?:IParametersAllRs;\n @Output() changeStepEvent = new EventEmitter<number>();\n globalControls = new CodFormControls();\n\n idTypes: any;\n indicatives: any;\n codFormStepThree!: FormGroup;\n errorMessage: string = 'Faltan campos por llenar.';\n needAtendants: any[] = [\n { code: '1', name: 'Si requiere acudiente' },\n { code: '2', name: 'No requiere acudiente' },\n ];\n\n // Controls del formulario\n controls = new CodFormControls().controls[2];\n\n constructor(\n private fb: FormBuilder,\n private codFormControls: CodFormControls\n ) {\n super();\n }\n\n // ngOnInit(): void {\n // this.getParameters();\n // this.initForm();\n // this.startLocalStorageWork();\n // this.validateErrors();\n // if (this.initialData != null) {\n // this.setValueStepThree();\n // }\n // }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.getParameters();\n this.initForm();\n this.startLocalStorageWork();\n this.validateErrors();\n\n if (changes['initialData']) {\n if (this.initialData != null) {\n if (this.initialData.parent != null) {\n this.selectNeedAtendant(1);\n if (this.initialData.student != null) {\n this.setValueStepThree();\n }else{\n this.setDataFromUserHistory();\n }\n } else {\n this.selectNeedAtendant(null);\n }\n }\n }\n }\n\n validateErrors() {\n this.codFormStepThree.valueChanges.subscribe(changes => {\n if (this.codFormStepThree.controls['parent_name'].hasError('minlength')) {\n this.errorMessage = 'Los nombres deben tener mínimo 3 caracteres';\n } else if (this.codFormStepThree.controls['parent_last_name'].hasError('minlength')) {\n this.errorMessage = 'Los apellidos deben tener mínimo 5 caracteres';\n }\n else {\n this.errorMessage = 'Faltan campos por llenar';\n }\n })\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(3, control.name);\n this.codFormStepThree.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(3, control.name, this.codFormStepThree.controls[control.name].valueChanges);\n });\n }\n\n getParameters() {\n this.idTypes =this.parametersAll?.TypeIdCardByCountryCol;\n this.indicatives =this.parametersAll?.indicatives;\n }\n\n initForm() {\n this.codFormStepThree = this.fb.group({\n parent_id_card_type: ['', [Validators.required]],\n parent_id_card: ['',[Validators.required,Validators.minLength(5),Validators.maxLength(20),],],\n parent_last_name: ['',[Validators.required,Validators.minLength(5),Validators.maxLength(32),],],\n parent_name: ['',[Validators.required,Validators.minLength(3),Validators.maxLength(32)],],\n needAtendant: ['', [Validators.required], []],\n parent_phone_indicative: ['', [Validators.required], []],\n parent_occupation: ['', [Validators.required], []],\n parent_address: ['', [Validators.required], []],\n parent_phone_number: ['',[Validators.required,Validators.minLength(10),Validators.maxLength(15),],],\n })\n\n this.listenNeedAtendantField()\n }\n\n listenNeedAtendantField() {\n const control = this.codFormStepThree.get('needAtendant');\n control?.valueChanges.subscribe((change) => {\n if (change === '1') {\n // Poner validaciones\n this.codFormStepThree.controls['parent_id_card_type'].setValidators([Validators.required])\n this.codFormStepThree.controls['parent_id_card'].setValidators([Validators.required,Validators.minLength(5),Validators.maxLength(20)])\n this.codFormStepThree.controls['parent_last_name'].setValidators([Validators.required,Validators.minLength(5),Validators.maxLength(32)])\n this.codFormStepThree.controls['parent_name'].setValidators([Validators.required,Validators.minLength(3),Validators.maxLength(32)])\n this.codFormStepThree.controls['parent_phone_indicative'].setValidators([Validators.required])\n this.codFormStepThree.controls['parent_occupation'].setValidators([Validators.required])\n this.codFormStepThree.controls['parent_address'].setValidators([Validators.required])\n this.codFormStepThree.controls['parent_phone_number'].setValidators([Validators.required,Validators.minLength(10),Validators.maxLength(15)])\n\n // Actualizar para que se tomen los cambios\n this.updateValueAndValidity();\n\n // Actualizar los controls globales\n this.updateGlobalControls(change)\n }\n if (change === '2') {\n // Quitar las validaciones\n this.codFormStepThree.controls['parent_id_card_type'].clearValidators();\n this.codFormStepThree.controls['parent_id_card'].clearValidators();\n this.codFormStepThree.controls['parent_last_name'].clearValidators();\n this.codFormStepThree.controls['parent_name'].clearValidators();\n this.codFormStepThree.controls['parent_phone_indicative'].clearValidators();\n this.codFormStepThree.controls['parent_occupation'].clearValidators();\n this.codFormStepThree.controls['parent_address'].clearValidators();\n this.codFormStepThree.controls['parent_phone_number'].clearValidators();\n\n // Actualizar para que se tomen los cambios\n this.updateValueAndValidity();\n\n // Actualizar los controls globales\n this.updateGlobalControls(change)\n }\n });\n }\n\n updateGlobalControls(change: string) {\n let controls = this.controls.filter(control => control.name !== 'needAtendant');\n controls.forEach(control => {\n if (change === '1') this.codFormControls.changeValue(3, control.name, true)\n if (change === '2') this.codFormControls.changeValue(3, control.name, false)\n });\n }\n\n setValueStepThree(){\n this.codFormStepThree.controls['parent_id_card_type'].setValue(this.initialData.parent.id_card_type);\n this.codFormStepThree.controls['parent_id_card'].setValue(this.initialData.parent.id_card);\n this.codFormStepThree.controls['parent_last_name'].setValue(this.initialData.parent.last_name);\n this.codFormStepThree.controls['parent_name'].setValue(this.initialData.parent.name);\n this.codFormStepThree.controls['parent_phone_indicative'].setValue(this.initialData.parent.phone_indicative);\n this.codFormStepThree.controls['parent_occupation'].setValue(this.initialData.parent.occupation);\n this.codFormStepThree.controls['parent_phone_number'].setValue(this.initialData.parent.phone_number);\n this.codFormStepThree.controls['parent_address'].setValue(this.initialData.parent.office_adrress);\n }\n setDataFromUserHistory(){\n this.codFormStepThree.controls['parent_id_card_type'].setValue(null);\n this.codFormStepThree.controls['parent_id_card'].setValue(null);\n this.codFormStepThree.controls['parent_last_name'].setValue(null);\n this.codFormStepThree.controls['parent_name'].setValue(null);\n this.codFormStepThree.controls['parent_phone_indicative'].setValue(null);\n this.codFormStepThree.controls['parent_occupation'].setValue(null);\n this.codFormStepThree.controls['parent_phone_number'].setValue(null);\n this.codFormStepThree.controls['parent_address'].setValue(null);\n }\n\n updateValueAndValidity() {\n this.codFormStepThree.controls['parent_id_card_type'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_id_card'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_last_name'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_name'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_phone_indicative'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_occupation'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_address'].updateValueAndValidity();\n this.codFormStepThree.controls['parent_phone_number'].updateValueAndValidity();\n }\n\n needAtendant(): boolean {\n return this.codFormStepThree.controls['needAtendant'].value == 1;\n }\n\n sendForm() {\n this.codFormStepThree.markAllAsTouched();\n if (this.codFormStepThree.controls['needAtendant'].value === '1' && this.codFormStepThree.invalid) return;\n\n // Movernos al paso 4\n this.changeStepEvent.emit(3);\n }\n\n // Eventos de los select\n selectNeedAtendant(needAtendant: any) {\n if (needAtendant == 1) {\n this.codFormStepThree.controls['needAtendant'].setValue(needAtendant);\n } else {\n this.cleanComponent();\n this.codFormStepThree.controls['needAtendant'].setValue(null);\n }\n }\n\n selectIdTypeParents(value: string) {\n if (value !== 'Tipo de documento') {\n this.codFormStepThree.controls['parent_id_card_type'].setValue(value);\n } else {\n this.codFormStepThree.controls['parent_id_card_type'].setValue(null);\n }\n }\n\n selectIndicativesParents(value: string) {\n if (value !== 'Indicativo') {\n this.codFormStepThree.controls['parent_phone_indicative'].setValue(value);\n } else {\n this.codFormStepThree.controls['parent_phone_indicative'].setValue(null);\n }\n }\n\n cleanComponent(){\n this.resetLocalStorage(this.controls);\n this.codFormStepThree.reset();\n }\n\n}\n","<form autocomplete=\"off\" [formGroup]=\"codFormStepThree\"class=\"grid\">\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codFormStepThree.controls['needAtendant'].value\"\n [control]=\"codFormStepThree.controls['needAtendant']\"\n (eventSelect)=\"selectNeedAtendant($event)\"\n [data]=\"needAtendants\"\n [defaultText]=\"'Requiere acudiente'\"\n ></ipt-select>\n </div>\n\n <div *ngIf=\"needAtendant()\" class=\"grid col-12\">\n <div class=\"col-12 md:col-6\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codFormStepThree.controls['parent_name']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepThree.controls['parent_id_card_type'].value\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdTypeParents($event)\"\n [defaultText]=\"'Tipo de documento'\"\n [control]=\"codFormStepThree.controls['parent_id_card_type']\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepThree.controls['parent_phone_indicative'].value\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicativesParents($event)\"\n [defaultText]=\"'Indicativo'\"\n [control]=\"codFormStepThree.controls['parent_phone_indicative']\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupación'\"\n [control]=\"codFormStepThree.controls['parent_occupation']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 md:col-6\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codFormStepThree.controls['parent_last_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de documento'\"\n [control]=\"codFormStepThree.controls['parent_id_card']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de teléfono'\"\n [control]=\"codFormStepThree.controls['parent_phone_number']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Dirección - Oficina'\"\n [control]=\"codFormStepThree.controls['parent_address']\"\n ></ipt-input>\n </div>\n </div>\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"(codFormStepThree.invalid && codFormStepThree.touched) && needAtendant()\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n","import { Injectable } from '@angular/core';\nimport Swal from 'sweetalert2';\n\nexport interface CalculateQuotesParams {\n date: Date;\n quotaValues: number;\n quotaTimes: any;\n totalPrice: any;\n courseType: number;\n englishLevel: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CalculateQuotesService {\n specialCourseTypes: number[] = [3, 4, 5, 6, 7, 8, 15, 21, 24, 25, 26, 30, 33];//tecnicas\n monthsDays: number[] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n constructor() { }\n\n calculateQuotes(params: CalculateQuotesParams): any[] {\n let dataFinancing: any[] = [];\n let index = 1; // Indicador de cant. de cuotas\n let dateJs = new Date(params.date);\n let isEndMonth = false;\n const isSpecialCourseType = this.specialCourseTypes.includes(Number(params.courseType));\n\n if (!isSpecialCourseType) {\n // Non-special case: add one day and check for Sunday\n dateJs.setMilliseconds(dateJs.getMilliseconds() + (1000 * 3600 * 24));\n isEndMonth = this.monthsDays[dateJs.getMonth()] === dateJs.getDate();\n\n if (dateJs.getDay() === 0) {\n Swal.fire({\n title: 'Fecha inválida',\n text: 'Debe seleccionar un día de la semana diferente al domingo',\n icon: 'error'\n });\n return [];\n }\n }\n\n // Enrollment\n let enrollment: any[] = [\n index,\n Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0\n }).format(Math.round(parseFloat(params.totalPrice.toString()))),\n this.getStringDate(dateJs)\n ];\n\n // First quota\n let firstQuotaDate = isSpecialCourseType ? new Date(params.date) : dateJs;\n if (isSpecialCourseType) {\n firstQuotaDate.setMonth(firstQuotaDate.getMonth() + 1);\n // Adjust if day exceeds max days in month\n const maxDays = this.monthsDays[firstQuotaDate.getMonth()];\n if (firstQuotaDate.getDate() > maxDays) {\n firstQuotaDate.setDate(maxDays);\n }\n }\n let quota: any[] = [\n index,\n Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0\n }).format(Math.round(parseFloat(params.quotaValues.toString()))),\n this.getStringDate(firstQuotaDate)\n ];\n\n dataFinancing.push(enrollment);\n dataFinancing.push(quota);\n\n while (index < params.quotaTimes) {\n index = index + 1;\n let newJsDate: Date;\n if (isSpecialCourseType) {\n // Special case: add (index) months from params.date\n newJsDate = new Date(params.date);\n newJsDate.setMonth(newJsDate.getMonth() + index);\n // Adjust if day exceeds max days in month\n const maxDays = this.monthsDays[newJsDate.getMonth()];\n if (newJsDate.getDate() > maxDays) {\n newJsDate.setDate(maxDays);\n }\n } else {\n // Non-special case: use existing logic\n const nextDates = this.setPlusOneMonth(dateJs, isEndMonth);\n newJsDate = nextDates[nextDates.length - 1];\n dateJs = nextDates[0];\n }\n\n let row: any[] = [\n index,\n Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0\n }).format(Math.round(parseFloat(params.quotaValues.toString()))),\n this.getStringDate(newJsDate)\n ];\n dataFinancing.push(row);\n }\n\n return dataFinancing;\n }\n\n setPlusOneMonth(originDate: Date, isEndMonth: boolean): Date[] {\n let response: Date[] = [];\n let oneDayMilis = 1000 * 3600 * 24;\n let day = isEndMonth ? this.monthsDays[(originDate.getMonth() + 1) % 12] : originDate.getDate();\n let plusMonthDate: Date = new Date(originDate.getFullYear(), originDate.getMonth() + 1, day);\n\n response.push(new Date(originDate.getFullYear(), originDate.getMonth() + 1, day));\n\n while (plusMonthDate.getDay() === 0) {\n plusMonthDate.setMilliseconds(plusMonthDate.getMilliseconds() - oneDayMilis);\n }\n\n response.push(plusMonthDate);\n return response;\n }\n\n getStringDate(originDate: Date): string {\n let month = originDate.getMonth() + 1;\n let stringMonth = month < 10 ? '0' + month : month.toString();\n let day = originDate.getDate();\n let stringDay = day < 10 ? '0' + day : day.toString();\n return originDate.getFullYear() + '-' + stringMonth + '-' + stringDay;\n }\n}","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges, OnChanges } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport Swal from 'sweetalert2';\n// import { map } from 'rxjs';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CalculateQuotesParams, CalculateQuotesService } from '../../logic/calculate-quotes.service';\n// import { CommunicatorService } from '../../logic/communicator.service';\nimport { CodPrices, CodPricesRq, ICodPricesByProgramRs, IObtainCodPricesRq } from '../../../core/models/commercial/commercial.model';\n// import { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { CommercialService } from '../../../core/services/commercial-service/comercial.service';\nimport { BaseService } from '../../../core/utils/base-service/base.service';\n\n// interface CourseTypes {\n// code: number;\n// name: string;\n// number_class: number;\n// academic_plan: number;\n// updated_at: string;\n// created_at: string;\n// }\n@Component({\n selector: 'app-cod-form-step-four',\n templateUrl: './cod-form-step-four.component.html',\n styleUrls: ['./cod-form-step-four.component.css'],\n})\nexport class CodFormStepFourComponent extends CodFormSteps implements OnChanges {\n @Input() isEditCod?: boolean;\n @Input() initialData?: any;\n @Input() isRenovation?: boolean;\n @Output() changeStepEvent = new EventEmitter<number>();\n @Output() financingData = new EventEmitter<any>();\n\n codFormStepFour!: FormGroup;\n isCalculateQuotesButtonClicked: boolean = false;\n errorMessage: string = 'Faltan campos por llenar.';\n paymentMethods: any[] = [\n { code: '1', name: 'Financiado' },\n { code: '2', name: 'Contado' },\n ];\n dataFinancing: any[] = [];\n isFinancing: boolean = false;\n isSemestral: boolean = false;\n codPrices: CodPrices[] = [];\n codPricesFilter: CodPrices[] = [];\n\n dataPrices:ICodPricesByProgramRs[]=[];\n feeResponse: boolean = false;\n thereArePlans: boolean = false;\n isDisabledSel=false;\n // Controls del formulario\n controls = new CodFormControls().controls[3];\n\n constructor(\n private fb: FormBuilder,\n private calculateQuotesService: CalculateQuotesService,\n private codFormControls: CodFormControls,\n private commercialService: CommercialService,\n // private communicatorService: CommunicatorService,\n // private parameterService: ParameterService,\n private baseService: BaseService\n ) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.initForm();\n this.startLocalStorageWork();\n this.validateErrors();\n // this.getCodPricesByAgreement();\n // this.getValuesOfStepOneComponent();\n if (changes['initialData']) {\n if (this.initialData != null) {\n\n if (this.isEditCod && !this.initialData.edit_course_payment){\n this.isDisabledSel = true;\n }else{\n this.isDisabledSel = false;\n }\n if (this.initialData.cod_renovation == true && this.isEditCod == false) {\n this.setDataFromPreviusCodPrices();\n this.isDisabledSel = true;\n }else {\n this.resetForm();\n }\n // if (this.initialData.cod_price != null) {\n // // this.setDataFromPreviusCodPrices();\n // this.resetForm();\n // // this.showTable();\n // }\n }\n }\n if (this.isDisabledSel) {\n this.codFormStepFour.controls['payment_date'].disable();\n } else {\n this.codFormStepFour.controls['payment_date'].enable();\n }\n }\n resetForm() {\n // this.resetLocalStorage(this.controls);\n this.codFormStepFour.reset();\n }\n // ngOnInit(): void {\n // // this.cleanComponent();\n // this.initForm();\n // this.startLocalStorageWork();\n // this.validateErrors();\n // // this.getCodPricesByAgreement();\n // this.getValuesOfStepOneComponent();\n // }\n\n\n // getValuesOfStepOneComponent() {\n // // Tipo de curso seleccionado\n // this.communicatorService.getSelectedCourseType().subscribe(value => {\n // this.parameterService.getCoursesTypes().pipe(\n // map( (response: any) => {\n // const courseTypes: CourseTypes[] = response.data;\n // return courseTypes.filter( ({ name }) => name.includes('Semestral') )\n // })\n // )\n // .subscribe( (courseTypes: CourseTypes[]) => {\n // for (let i = 0; i < courseTypes.length; i++) {\n // if (courseTypes[i].code.toString() === value) {\n // this.isSemestral = true;\n // break;\n // } else {\n // this.isSemestral = false;\n // }\n // }\n // })\n // });\n\n // Convenio seleccionado\n // this.communicatorService.getSelectedAgreement().subscribe(value => {\n // this.getCodPricesByAgreement(value);\n // });\n // }\n\n getCodPricesByAgreement(agreement?: string) {\n let agreementSelected: string | null;\n if (agreement) {\n agreementSelected = agreement;\n } else {\n agreementSelected = this.localStorageCOD.getCodFormData(1, 'agreement_by_category')\n }\n\n if (this.codFormStepFour.controls['payment_method'].value === '1') {\n let request: CodPricesRq = {\n agreement: Number(agreementSelected),\n payment_method: 'cuota'\n }\n this.commercialService.getCodPricesByAgreementTypePayment(request).subscribe((response: any) =>{\n this.codPrices = response.data;\n this.codFormStepFour.controls['quota_times'].setValue(this.codPrices[0].code)\n this.codFormStepFour.controls['program_price'].setValue(this.codPrices[0].normal_price)\n })\n }else {\n if (this.codFormStepFour.controls['payment_method'].value === '2') {\n let request: CodPricesRq = {\n agreement: Number(agreementSelected),\n payment_method: 'conta'\n }\n this.commercialService.getCodPricesByAgreementTypePayment(request).subscribe((response: any) =>{\n this.codPrices = response.data;\n this.codFormStepFour.controls['quota_times'].setValue(this.codPrices[0].code);\n this.codFormStepFour.controls['program_price'].setValue(this.codPrices[0].normal_price)\n this.codFormStepFour.controls['total_price'].setValue(this.codPrices[0].enrollment);\n })\n }\n }\n }\n\n validateErrors() {\n this.codFormStepFour.valueChanges.subscribe(changes => {\n if (this.codFormStepFour.controls['quota_times'].hasError('min')) {\n this.errorMessage = 'La cantidad de cuotas mínimas debe ser 1';\n } else if (this.codFormStepFour.controls['quota_times'].hasError('max')) {\n this.errorMessage = 'La cantidad de cuotas no debe ser superior a 12';\n }\n else {\n this.errorMessage = 'Faltan campos por llenar';\n }\n })\n }\n\n searchPriceByTypePayment(agreementSelected: any, type: string, change: string){\n let request: CodPricesRq = {\n agreement: Number(agreementSelected),\n payment_method: type\n }\n this.commercialService.getCodPricesByAgreementTypePayment(request).subscribe((response: any) =>{\n this.codPrices = response.data;\n })\n }\n\n initForm() {\n this.codFormStepFour = this.fb.group({\n program_price: [{ value: '', disabled: true }, [Validators.required]],\n payment_date: ['', [Validators.required]],\n payment_method: ['', [Validators.required]],\n quota_times: [{ value: '', disabled: true }, [Validators.required]],\n total_price: [{ value: '', disabled: true }, [Validators.required]],\n paid_level: ['', [Validators.required]],\n quota_price: ['', [Validators.required]],\n fee_number: ['', [Validators.required]],\n });\n const currentDate = new Date().toISOString().split('T')[0];\n this.codFormStepFour.controls['payment_date'].setValue(currentDate);\n\n this.listenPaymentMethodField();\n }\n\n\n listenPaymentMethodField() {\n const control = this.codFormStepFour.get('payment_method');\n control?.valueChanges.subscribe((change) => {\n // Financiado\n if (change === '1') {\n // Poner validaciones\n this.codFormStepFour.controls['program_price'].setValidators([Validators.required]);\n this.codFormStepFour.controls['payment_date'].setValidators([Validators.required]);\n this.codFormStepFour.controls['quota_times'].setValidators([Validators.required]);\n this.codFormStepFour.controls['total_price'].setValidators([Validators.required]);\n\n this.updateValueAndValidity();\n\n this.updateGlobalControls(change)\n }\n\n // de contado\n if (change === '2') {\n this.codFormStepFour.controls['program_price'].setValidators([Validators.required]);\n this.codFormStepFour.controls['payment_date'].setValidators([Validators.required]);\n this.codFormStepFour.controls['quota_times'].clearValidators();\n this.codFormStepFour.controls['total_price'].setValidators([Validators.required]);\n\n this.updateValueAndValidity();\n\n this.updateGlobalControls(change)\n }\n });\n }\n\n updateGlobalControls(change: string) {\n let controls = this.controls.filter(control => control.name !== 'payment_method');\n controls.forEach(control => {\n if (change === '1') this.codFormControls.changeValue(4, control.name, true)\n if (change === '2') {\n if (control.name === 'quota_times') this.codFormControls.changeValue(4, control.name, false);\n }\n });\n }\n\n updateValueAndValidity() {\n this.codFormStepFour.controls['program_price'].updateValueAndValidity();\n this.codFormStepFour.controls['payment_date'].updateValueAndValidity();\n this.codFormStepFour.controls['quota_times'].updateValueAndValidity();\n this.codFormStepFour.controls['total_price'].updateValueAndValidity();\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(4, control.name);\n this.codFormStepFour.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(4, control.name, this.codFormStepFour.controls[control.name].valueChanges);\n });\n }\n\n showTable() {\n this.isCalculateQuotesButtonClicked = true;\n const total_price = this.codFormStepFour.controls['total_price'].value;\n if ((total_price === 'null') || this.codFormStepFour.invalid) {\n Swal.fire({\n title: 'Error table',\n text: 'Debes ingresar el monto total de la matrícula y la cuota inicial',\n icon: 'error'\n })\n return;\n }\n\n // Calcular cuotas\n this.dataFinancing = [];\n // const quotaValues = this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].quota_price;\n // let params: CalculateQuotesParams = {\n // date: new Date(this.codFormStepFour.controls['payment_date'].value),\n // quotaValues,\n // quotaTimes: this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].fee_number,\n // totalPrice: this.codFormStepFour.controls['total_price'].value,\n // }\n\n let params: CalculateQuotesParams = {\n date: new Date(this.codFormStepFour.controls['payment_date'].value),\n quotaValues: Number(this.codFormStepFour.controls['quota_price'].value),\n quotaTimes: Number(this.codFormStepFour.controls['fee_number'].value),\n totalPrice: this.codFormStepFour.controls['total_price'].value,\n courseType: Number(this.localStorageCOD.getCodFormData(1, 'course_type')),\n englishLevel: Number(this.localStorageCOD.getCodFormData(1, 'english_level')),\n }\n this.dataFinancing = this.calculateQuotesService.calculateQuotes(params);\n this.isFinancing = true;\n this.financingData.emit(this.dataFinancing);\n }\n\n calculateNewQuotes() {\n this.isCalculateQuotesButtonClicked = false;\n this.isFinancing = false;\n this.financingData.emit(null);\n }\n\n sendForm() {\n this.codFormStepFour.markAllAsTouched();\n if (this.codFormStepFour.invalid) return;\n // Movernos al paso 5\n this.changeStepEvent.emit(4);\n }\n\n isFinanced(): boolean {\n return this.codFormStepFour.controls['payment_method'].value == 1;\n }\n\n // Eventos del select\n selectPaymentMethod(paymentMethod: any) {\n this.feeResponse = true;\n this.thereArePlans = false;\n\n if (paymentMethod !== '') {\n const request: IObtainCodPricesRq = {\n token: this.baseService.getUserToken(),\n course_type: Number(this.localStorageCOD.getCodFormData(1, 'course_type')),\n agreement: Number(this.localStorageCOD.getCodFormData(1, 'agreement_by_category')),\n course_modality: Number(this.localStorageCOD.getCodFormData(1, 'course_modality')),\n payment_method: parseInt(paymentMethod)\n }\n this.commercialService.ObtainCodPrices(request).subscribe((response)=> {\n if (response.data != null) {\n const course_type = Number(this.localStorageCOD.getCodFormData(1, 'course_type'));\n const english_level = Number(this.localStorageCOD.getCodFormData(1, 'english_level'));\n // Cursos técnicos que requieren filtrado especial\n const technicalCourses = [3, 4, 5, 6, 7, 8, 21, 30, 33];\n this.dataPrices = response.data\n if (technicalCourses.includes(course_type)) {\n // Calculamos los paid_levels permitidos basado en el english_level\n const techEnglishLevels = [8, 9, 10, 11];\n const levelIndex = techEnglishLevels.indexOf(english_level);\n const levelsToShow = techEnglishLevels.length - levelIndex;\n\n this.dataPrices = this.dataPrices.filter((item) => {\n return item.paid_level <= levelsToShow\n });\n }\n this.feeResponse = false;\n this.thereArePlans = true;\n }else {\n this.thereArePlans = false;\n this.feeResponse = false;\n Swal.fire({\n position: 'center',\n icon: 'warning',\n title:\n '<p style=\"font-family: Poppins\"\">Oops.. no hay planes de pagos, \\n en el curso elegido.</p>',\n showConfirmButton: false,\n timer: 3000,\n });\n this.clearInputPayment();\n }\n });\n this.codFormStepFour.controls['payment_method'].setValue(paymentMethod);\n // this.getCodPricesByAgreement();\n } else {\n this.codFormStepFour.controls['payment_method'].setValue(null);\n }\n }\n\n selectQuotas(quotas: string) {\n if (quotas !== 'Número de cuotas') {\n const codPrice: CodPrices[] = this.codPrices.filter(codPrice => codPrice.code === Number(quotas));\n this.codFormStepFour.controls['quota_times'].setValue(codPrice[0].code);\n this.codFormStepFour.controls['total_price'].setValue(codPrice[0].enrollment);\n this.codFormStepFour.controls['program_price'].setValue(codPrice[0].financed_price);\n } else {\n this.codFormStepFour.controls['quota_times'].setValue(null);\n this.codFormStepFour.controls['total_price'].setValue(null);\n this.codFormStepFour.controls['program_price'].setValue(null);\n }\n }\n\n cleanComponent(){\n this.resetLocalStorage(this.controls);\n }\n\n selectLevels(dataPayment: any){\n if (this.codFormStepFour.get('payment_method')?.value == 1) {\n this.codFormStepFour.controls['quota_times'].setValue(dataPayment.code);\n this.codFormStepFour.controls['total_price'].setValue(dataPayment.enrollment);\n this.codFormStepFour.controls['program_price'].setValue(dataPayment.financed_price);\n this.codFormStepFour.controls['paid_level'].setValue(dataPayment.paid_level - 1);\n this.codFormStepFour.controls['fee_number'].setValue(dataPayment.fee_number);\n this.codFormStepFour.controls['quota_price'].setValue(dataPayment.quota_price);\n this.updateValueAndValidity();\n } else if(this.codFormStepFour.get('payment_method')?.value == 2){\n this.codFormStepFour.controls['quota_times'].setValue(dataPayment.code);\n this.codFormStepFour.controls['total_price'].setValue(dataPayment.enrollment);\n this.codFormStepFour.controls['program_price'].setValue(dataPayment.normal_price);\n this.codFormStepFour.controls['paid_level'].setValue(dataPayment.paid_level - 1);\n this.codFormStepFour.controls['fee_number'].setValue(dataPayment.fee_number);\n this.codFormStepFour.controls['quota_price'].setValue(dataPayment.quota_price);\n this.updateValueAndValidity();\n }\n }\n\n clearInputPayment(){\n this.codFormStepFour.controls['program_price'].setValue(null);\n this.codFormStepFour.controls['quota_times'].setValue(null);\n this.codFormStepFour.controls['total_price'].setValue(null);\n }\n\n setDataFromPreviusCodPrices(){\n this.codFormStepFour.controls['payment_method'].setValue( this.initialData.cod_payment ? ((this.initialData.cod_payment.length == 1) ? 2 : 1) : 2)\n\n if (this.codFormStepFour.get('payment_method')?.value == 1) {\n this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.code : 0);\n this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.enrollment : 0);\n this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.financed_price : 0);\n this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);\n this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment ? this.initialData.cod_payment?.length : 0);\n this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.quota_price: 0);\n this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment ? this.initialData.cod_payment[0]?.timely_date : new Date());\n this.updateValueAndValidity();\n } else if(this.codFormStepFour.get('payment_method')?.value == 2){\n this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.code : 0);\n this.codFormStepFour.controls['total_price'].setValue(0);\n this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.normal_price : 0);\n this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);\n this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment ? 1 : 0);\n this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.normal_price : 0);\n this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment ? this.initialData.cod_payment[0]?.timely_date: new Date());\n this.updateValueAndValidity();\n }\n\n // this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_price.enrollment);\n // this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment.lenght == 1 ? this.initialData.cod_price.normal_price : this.initialData.cod_price.financed_price);\n // this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);\n // this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);\n // this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_price.quota_price);\n // this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment[0].timely_date);\n // this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);\n }\n\n}\n\n","<div *ngIf=\"isSemestral\" class=\"m-1 p-2 border-round-lg bg-blue-500 text-white\">\n <strong>Nota: </strong>\n El tipo de curso seleccionado fue semestral, por lo tanto el estudiante debe pagar matrícula y primera cuota (M&M)\n</div>\n\n<form autocomplete=\"off\" [formGroup]=\"codFormStepFour\" class=\"grid mt-2\">\n\n <div class=\"col-12\">\n <ipt-select\n [initialValue]=\"codFormStepFour.controls['payment_method'].value\"\n [control]=\"codFormStepFour.controls['payment_method']\"\n (eventSelect)=\"selectPaymentMethod($event)\"\n [data]=\"paymentMethods\"\n [defaultText]=\"'Método de pago'\"\n [disabledSel]=\"isDisabledSel\"\n ></ipt-select>\n <ipt-loader *ngIf=\"feeResponse\"></ipt-loader>\n\n <div class=\"col-12\" *ngIf=\"thereArePlans\">\n <p-table\n [value]=\"dataPrices\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n Seleccion de niveles a cancelar.\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cancelar</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cuotas</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Admin</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td class=\"text-center\">{{ data.paid_level }} Nivel(es)</td>\n <td class=\"text-center\">{{ data.fee_number }}</td>\n <td class=\"pt-2 pb-2 text-center\">\n <button\n pButton\n pRipple\n icon=\"pi pi-money-bill\"\n class=\"p-button-sm p-button-rounded\"\n (click)=\"selectLevels(data)\"\n\n ></button>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n\n <!-- [initialValue]=\"codFormStepFour.controls['quota_times'].value\" -->\n <!-- <ipt-select *ngIf=\"isFinanced();\"\n [initialValue]=\"'1'\"\n [control]=\"codFormStepFour.controls['quota_times']\"\n (eventSelect)=\"selectQuotas($event)\"\n [defaultText]=\"'Número de cuotas'\"\n [data]=\"codPrices\"\n ></ipt-select> -->\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Monto total de la matrícula'\"\n [control]=\"codFormStepFour.controls['total_price']\"\n [withPipe]=\"true\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n [withPipe]=\"true\"\n [inputType]=\"'text'\"\n [control]=\"codFormStepFour.controls['program_price']\"\n [placeHolder]=\"'Valor total del programa'\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\">\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codFormStepFour.controls['payment_date']\"\n [placeHolder]=\"'Fecha de pago'\"\n ></ipt-input>\n </div>\n\n <!-- Tabla de financiación -->\n <div *ngIf=\"isFinancing && isRenovation === false\" class=\"container_tablet\">\n <div class=\"col-12\" *ngIf=\"isFinancing\">\n <p-table\n [value]=\"dataFinancing\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n Cálculo de cuotas\n <button pButton class=\"p-button-sm ml-auto\" label=\"Nuevo cálculo\" (click)=\"calculateNewQuotes()\" [disabled]=\"isDisabledSel\" lab icon=\"pi pi-replay\"></button>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">#</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Valor</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Fecha</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td class=\"p-0 text-center text-sm\">{{ data[0] }}</td>\n <td class=\"p-0 text-center text-sm\">{{ data[1] }}</td>\n <td class=\"p-0 text-center text-sm\">{{ data[2] }}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n <!-- ---------------------- -->\n\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"codFormStepFour.invalid && codFormStepFour.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n <div class=\"flex ml-auto gap-2\">\n <button *ngIf=\"codFormStepFour.controls['payment_method'].value === '1'\" [disabled]=\"isFinancing || codFormStepFour.controls['payment_method'].value !== '1'\"type=\"submit\" class=\"ml-auto p-button-sm p-button-secondary\" (click)=\"showTable()\" pButton label=\"Calcular cuotas\" icon=\"pi pi-sliders-h\"></button>\n <button [disabled]=\"!isFinancing && codFormStepFour.controls['payment_method'].value === '1'\" type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BaseService } from '../../core/utils/base-service/base.service';\nimport { UserService } from '../../core/services/user-service/user-service';\nimport { getStudentRq } from '../../core/models/user/user-rq.model';\nimport Swal from 'sweetalert2';\n\n@Component({\n selector: 'cod-modal-referred',\n templateUrl: './modal-referred.component.html',\n styleUrls: ['./modal-referred.component.css']\n})\nexport class ModalReferredComponent implements OnInit {\n @Input() visibility: boolean = false;\n @Output() userSelect = new EventEmitter<any>();\n\n searchUserForm!: FormGroup;\n userExists: boolean = false;\n allUsers: any;\n loading = [false, false, false, false];\n\n constructor(\n private fb: FormBuilder,\n private baseService: BaseService,\n private userService: UserService\n ) {}\n\n ngOnInit(): void {\n this.initForm();\n }\n\n closeModal() {\n this.visibility = false;\n this.userSelect.emit(null);\n }\n\n initForm() {\n this.searchUserForm = this.fb.group({\n searchUser: ['',[Validators.required,Validators.minLength(4),Validators.maxLength(30)],],\n });\n\n const searchUserControl = this.searchUserForm.get('searchUser');\n if (searchUserControl) {\n searchUserControl.valueChanges.subscribe((value) => {\n // this.modalClose.emit(false);\n });\n }\n }\n\n selectUser(data : any){\n this.userSelect.emit(data);\n }\n\n load(index: any, form: FormGroup) {\n this.loading[index] = true;\n setTimeout(() => (this.loading[index] = false), 1000);\n this.search(form);\n }\n\n search(form: FormGroup) {\n let request: getStudentRq = {\n token: this.baseService.getUserToken(),\n param: form.value.searchUser,\n };\n if (form.value.searchUser != \"\") {\n this.userService.obtainReferralUsers(request).subscribe((response) => {\n if (response.data == null) {\n this.userExists = false;\n Swal.fire({\n title: 'Oops...',\n text: 'No hay usuarios con los parámetros ingresados',\n icon: 'error',\n });\n } else {\n this.userExists = true;\n this.allUsers = response.data;\n }\n });\n } else {\n Swal.fire({\n title: 'Oops...',\n text: 'Debe digitar un parámetro para realizar la búsqueda',\n icon: 'info',\n });\n\n }\n }\n}\n","<main *ngIf=\"visibility\">\n <div class=\"modal_container\">\n <div class=\"header_modal\">\n <h1>Datos de quien lo refiere</h1>\n <button (click)=\"closeModal()\">x</button>\n </div>\n <div class=\"grid_container\">\n <div>\n <section\n id=\"container\"\n class=\"flex flex-column bg-white border-round-2xl\"\n >\n <form\n autocomplete=\"off\"\n (ngSubmit)=\"search(searchUserForm)\"\n class=\"form\"\n [formGroup]=\"searchUserForm\"\n >\n <input\n placeholder=\"Buscar por nombre, documento o teléfono\"\n [formControl]=\"$any(searchUserForm.controls['searchUser'])\"\n type=\"text\"\n pInputText\n />\n <p-button\n type=\"submit\"\n label=\"Buscar\"\n icon=\"pi pi-search\"\n (onClick)=\"load(0, searchUserForm)\"\n ></p-button>\n </form>\n </section>\n\n <div *ngIf=\"userExists\" class=\"referrerInformation\">\n <section class=\"userList\">\n <p-table\n [value]=\"allUsers\"\n [scrollable]=\"true\"\n scrollHeight=\"150px\"\n [tableStyle]=\"{'min-width': '50rem'}\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Documento</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Nombres</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Apellidos</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Email</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Telefono</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Rol</th>\n <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Admin</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-user>\n <tr>\n <td class=\"pt-2 pb-2 text-sm text-left\">{{user.id_card}}</td>\n <td class=\"pt-2 pb-2 text-sm text-left\">{{user.name}}</td>\n <td class=\"pt-2 pb-2 text-sm text-left\">{{user.last_name}}</td>\n <td class=\"pt-2 pb-2 text-sm text-left\">{{user.email}}</td>\n <td class=\"pt-2 pb-2 text-sm text-right\">{{user.phone_number}}</td>\n <td class=\"pt-2 pb-2 text-sm text-center\">{{user.role}}</td>\n <td class=\"pt-2 pb-2 min-w-min\" style=\"text-align: center\">\n <p-button\n icon=\"pi pi-chevron-circle-right\"\n (click)=\"selectUser(user)\"\n ></p-button>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </section>\n </div>\n </div>\n </div>\n </div>\n</main>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { IParametersAllRs } from '../../../core/models/parameters/parameters-rs.model';\n\n\n@Component({\n selector: 'app-cod-form-step-five',\n templateUrl: './cod-form-step-five.component.html',\n styleUrls: ['./cod-form-step-five.component.css']\n})\nexport class CodFormStepFiveComponent extends CodFormSteps implements OnChanges {\n @Input() userRole!: number;\n @Input() initialData?: any;\n @Input() isEditCod?: boolean;\n @Input() isRenovation?: boolean;\n @Input() parametersAll?:IParametersAllRs;\n @Output() changeStepEvent = new EventEmitter<number>();\n @Output() action = new EventEmitter<string>();\n\n codFormStepFive!: FormGroup;\n marketingReasons: any;\n studyReasons: any;\n errorMessage: string = 'Faltan campos por llenar.';\n sendFormMsg!: string;\n termsCheckboxStatus: boolean = false;\n multiculturalities: any;\n modalVisible: boolean = false;\n visbleReferred: boolean = false;\n\n // Controls del formulario\n controls = new CodFormControls().controls[4];\n\n constructor(\n private fb: FormBuilder,\n ) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.initForm();\n this.startLocalStorageWork();\n this.getParameters();\n this.codFormStepFive.controls['terms'].valueChanges.subscribe(changes => {\n this.termsCheckboxStatus = changes;\n if (!this.termsCheckboxStatus) this.errorMessage = 'Debe marcar la casilla de términos y condiciones.'\n })\n // if (this.userRole === 30 || this.userRole === 31 || this.userRole === 32) this.sendFormMsg = 'Editar COD';\n if (this.userRole === 30 || this.userRole === 31 || this.userRole === 32 ||\n this.userRole === 40 || this.userRole === 41 || this.userRole === 42 ||\n this.userRole === 50 || this.userRole === 51 || this.userRole === 52 ||\n this.userRole === 1\n ) this.isEditCod ? this.sendFormMsg = 'Editar COD' : this.sendFormMsg = 'Crear COD';\n if (changes['initialData']) {\n if (this.initialData != null) {\n if (this.initialData.student != null || this.initialData != null) {\n this.setDataFromPreviusCod();\n }else{\n this.setDataFromUserHistory();\n }\n }\n }\n }\n\n getParameters() {\n this.marketingReasons = this.parametersAll?.mkReasons;\n this.studyReasons = this.parametersAll?.studyReasons;\n this.multiculturalities = this.parametersAll?.Multiculturalism; \n }\n\n initForm() {\n this.codFormStepFive = this.fb.group({\n marketing_reasons: ['', [Validators.required]],\n observation: [''],\n study_reasons: ['', [Validators.required]],\n terms: [false, [Validators.required]],\n disability: [''],\n multiculturalism_1: [false, []],\n multiculturalism_2: [false, []],\n multiculturalism_3: [false, []],\n multiculturalism_4: [false, []],\n multiculturalism_5: [false, []],\n multiculturalism_6: [false, []],\n multiculturalism_7: [false, []],\n health_regimen: ['', [Validators.required]],\n code_refers: [''],\n code_cod: [''],\n document_refers: [{ value: '', disabled: true }],\n name_refers: [{ value: '', disabled: true }],\n phone_refers: [{ value: '', disabled: true }],\n email_refers: [{ value: '', disabled: true }],\n });\n\n this.codFormStepFive.controls['marketing_reasons'].valueChanges.subscribe(change => {\n if (change === '1') {\n this.modalVisible = true;\n this.codFormStepFive.controls['code_refers'].setValidators([Validators.required]);\n this.codFormStepFive.controls['code_refers'].updateValueAndValidity();\n } else {\n this.codFormStepFive.controls['code_refers'].clearValidators();\n this.codFormStepFive.controls['code_refers'].updateValueAndValidity();\n this.codFormStepFive.controls['code_refers'].setValue(null);\n this.modalVisible = false;\n this.visbleReferred = false;\n }\n })\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(5, control.name);\n\n // Solución al bug del checkbox\n if (localStorageValue.control === 'terms') {\n let nextValue: boolean = localStorageValue.value === 'true' ? true : false;\n this.codFormStepFive.controls['terms'].setValue(nextValue);\n this.termsCheckboxStatus = nextValue;\n }\n // -------------------------- //\n\n this.codFormStepFive.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(5, control.name, this.codFormStepFive.controls[control.name].valueChanges);\n });\n\n this.controls.filter(control => control.description === 'Multiculturalismo').forEach(control => {\n let localStorageValue: localStorageValues = this.readAndWriteLS(5, control.name);\n let nextValue: boolean = localStorageValue.value === 'true' ? true : false;\n this.codFormStepFive.controls[control.name].setValue(nextValue);\n })\n }\n\n getCheckboxControl(): FormControl {\n return this.codFormStepFive.controls['terms'] as FormControl;\n }\n\n sendForm() {\n this.codFormStepFive.markAllAsTouched();\n if (this.codFormStepFive.invalid || this.termsCheckboxStatus === false) return;\n if (this.userRole == 30 || this.userRole == 31 || this.userRole == 32 ||\n this.userRole == 40 || this.userRole == 41 || this.userRole == 42 ||\n this.userRole == 50 || this.userRole == 51 || this.userRole == 52 ||\n this.userRole == 1) this.isEditCod ? this.action.emit('update') : this.action.emit('create');\n\n }\n\n cleanStorage(){\n sessionStorage.clear();\n this.startLocalStorageWork()\n }\n\n // Eventos del select\n selectMarketingReasons(marketingReasons: any) {\n if (marketingReasons !== '¿Cómo se enteró del programa?') {\n this.codFormStepFive.controls['marketing_reasons'].setValue(marketingReasons);\n } else {\n this.codFormStepFive.controls['marketing_reasons'].setValue(null);\n }\n }\n\n selectStudyReasons(studyReasons: any) {\n if (studyReasons !== 'Motivo') {\n this.codFormStepFive.controls['study_reasons'].setValue(studyReasons);\n } else {\n this.codFormStepFive.controls['study_reasons'].setValue(null);\n }\n }\n\n setDataFromPreviusCod() {\n this.codFormStepFive.controls['marketing_reasons'].setValue(this.initialData.aditional_information?.marketing_reasons);\n this.codFormStepFive.controls['study_reasons'].setValue(this.initialData.aditional_information?.study_reasons);\n this.codFormStepFive.controls['disability'].setValue(this.initialData.aditional_information?.disability);\n this.codFormStepFive.controls['health_regimen'].setValue(this.initialData.aditional_information?.health_regimen);\n this.codFormStepFive.controls['observation'].setValue(this.initialData.aditional_information?.observation);\n this.codFormStepFive.controls['code_refers'].setValue(this.isRenovation === false ? this.initialData.cod_referral?.user_referred.code : null);\n if (this.codFormStepFive.get('marketing_reasons')?.value == 1) {\n this.visbleReferred = true;\n // this.codFormStepFive.controls['code_refers'].setValue(this.initialData.cod_referral?.user_referred.code);\n this.codFormStepFive.controls['document_refers'].setValue(this.initialData.cod_referral?.user_referred.id_card);\n this.codFormStepFive.controls['name_refers'].setValue(this.initialData.cod_referral?.user_referred.name);\n this.codFormStepFive.controls['phone_refers'].setValue(this.initialData.cod_referral?.user_referred.phone_number);\n this.codFormStepFive.controls['email_refers'].setValue(this.initialData.cod_referral?.user_referred.email);\n }else{\n this.visbleReferred = false;\n this.codFormStepFive.controls['code_refers'].setValue(null);\n this.codFormStepFive.controls['document_refers'].setValue(null);\n this.codFormStepFive.controls['name_refers'].setValue(null);\n this.codFormStepFive.controls['phone_refers'].setValue(null);\n this.codFormStepFive.controls['email_refers'].setValue(null);\n }\n this.codFormStepFive.controls['code_cod'].setValue(this.initialData.code);\n }\n setDataFromUserHistory() {\n this.codFormStepFive.controls['marketing_reasons'].setValue(null);\n this.codFormStepFive.controls['study_reasons'].setValue(null);\n this.codFormStepFive.controls['disability'].setValue(null);\n this.codFormStepFive.controls['health_regimen'].setValue(null);\n this.codFormStepFive.controls['observation'].setValue(null);\n this.codFormStepFive.controls['code_refers'].setValue(null);\n this.codFormStepFive.controls['code_cod'].setValue(null);\n }\n\n cleanComponent(){\n this.resetLocalStorage(this.controls);\n this.codFormStepFive.reset();\n }\n\n referredUser(data: any){\n this.modalVisible = false;\n if (data) {\n this.visbleReferred = true;\n this.codFormStepFive.controls['code_refers'].setValue(data['code']);\n this.codFormStepFive.controls['document_refers'].setValue(data['id_card']);\n this.codFormStepFive.controls['name_refers'].setValue(data['name']);\n this.codFormStepFive.controls['phone_refers'].setValue(data['phone_number']);\n this.codFormStepFive.controls['email_refers'].setValue(data['email']);\n } else {\n this.visbleReferred = false;\n this.codFormStepFive.controls['code_refers'].setValue(null);\n this.codFormStepFive.controls['document_refers'].setValue(null);\n this.codFormStepFive.controls['name_refers'].setValue(null);\n this.codFormStepFive.controls['phone_refers'].setValue(null);\n this.codFormStepFive.controls['email_refers'].setValue(null);\n this.codFormStepFive.controls['marketing_reasons'].setValue(null);\n }\n }\n\n openModalReferred(){\n this.modalVisible = true;\n }\n\n\n}\n","<form autocomplete=\"off\" [formGroup]=\"codFormStepFive\" class=\"grid\">\n <div class=\"col-12 md:col-6\">\n <cod-modal-referred\n *ngIf=\"modalVisible\"\n [visibility]=\"modalVisible\"\n (userSelect)=\"referredUser($event)\"\n ></cod-modal-referred>\n\n <div class=\"container_referred flex flex-row justify-content-between align-items-end\">\n <div class=\"containe_select1\">\n <ipt-select\n [control]=\"codFormStepFive.controls['marketing_reasons']\"\n [initialValue]=\"codFormStepFive.controls['marketing_reasons'].value\"\n (eventSelect)=\"selectMarketingReasons($event)\"\n [data]=\"marketingReasons\"\n [defaultText]=\"'¿Cómo se enteró del programa?'\"\n ></ipt-select>\n </div>\n <p-button\n *ngIf=\"visbleReferred\"\n styleClass=\"p-button-sm w-max\"\n label=\"Cambiar Referido\"\n icon=\"pi pi-sync\"\n (onClick)=\"openModalReferred()\"\n ></p-button>\n </div>\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Discapacidad'\"\n [control]=\"codFormStepFive.controls['disability']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 md:col-6\">\n <ipt-select\n [control]=\"codFormStepFive.controls['study_reasons']\"\n [initialValue]=\"codFormStepFive.controls['study_reasons'].value\"\n (eventSelect)=\"selectStudyReasons($event)\"\n [data]=\"studyReasons\"\n [defaultText]=\"'Motivo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Régimen de salud'\"\n [control]=\"codFormStepFive.controls['health_regimen']\"\n ></ipt-input>\n </div>\n <div class=\"col-12\">\n <h3 *ngIf=\"visbleReferred\" class=\"referred_title\">Datos del referido</h3>\n <div *ngIf=\"visbleReferred\" class=\"referred_user_data\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"codFormStepFive.controls['document_refers']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codFormStepFive.controls['name_refers']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Teléfono'\"\n [control]=\"codFormStepFive.controls['phone_refers']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Email'\"\n [control]=\"codFormStepFive.controls['email_refers']\"\n ></ipt-input>\n </div>\n <span class=\"p-float-label\">\n <textarea\n id=\"float-input\"\n rows=\"4\"\n cols=\"30\"\n pInputTextarea\n formControlName=\"observation\"\n ></textarea>\n <label for=\"float-input\">Observaciones</label>\n </span>\n <div class=\"flex flex-wrap justify-content-between gap-2\">\n <div\n *ngFor=\"let option of multiculturalities; index as i\"\n class=\"field-checkbox mt-4 flex align-items-center\"\n >\n <mat-checkbox\n [formControlName]=\"'multiculturalism' + '_' + (i + 1)\"\n class=\"example-margin\"\n ></mat-checkbox>\n <label [for]=\"option.code\">{{ option.name }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 p-4 font-bold\">\n <p>\n * El estudiante o titular se comprometen a cancelar las cuotas\n establecidas en este contrato, los primeros 5 (cinco) días del mes. En\n caso de querer retirarse, deberá informar por escrito 30 (treinta) días\n antes y cancelar lo correspondiente hasta la fecha definida de retiro,\n para poder obtener su paz y salvo.\n </p>\n <br /><br />\n <div class=\"flex gap-2\">\n <mat-checkbox\n formControlName=\"terms\"\n class=\"example-margin\"\n ></mat-checkbox>\n <!-- <p-checkbox [formControl]=\"getCheckboxControl()\"></p-checkbox> -->\n <!-- <ipt-checkbox [control]=\"codFormStepFive.controls['terms']\" [checkboxOption]=\"termsCheckboxStatus\"></ipt-checkbox> -->\n <p>\n DECLARO HABER LEÍDO Y ACEPTO LOS TÉRMINOS Y CONDICIONES DE LAS POLÍTICAS\n ESTABLECIDAS EN LA INSTITUCIÓN.\n </p>\n </div>\n </div>\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span\n *ngIf=\"\n (codFormStepFive.invalid && codFormStepFive.touched) ||\n (!termsCheckboxStatus && codFormStepFive.touched)\n \"\n class=\"\n text-red-500\n font-bold\n text-center\n mt-1\n py-2\n bg-red-100\n w-full\n border-round-xl\n \"\n >{{ errorMessage }}</span\n >\n <button\n type=\"submit\"\n [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-success p-button-sm'\"\n (click)=\"sendForm()\"\n pButton\n [label]=\"sendFormMsg\"\n icon=\"pi pi-check\"\n></button>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport Swal from 'sweetalert2';\nimport { CreateCODRq, IUpdateCODRq } from '../../core/models/cod/cod-rq.model';\nimport { CommercialService } from '../../core/services/commercial-service/comercial.service';\nimport { BaseService } from '../../core/utils/base-service/base.service';\nimport { CodFormControls, Control } from '../logic/cod-form-controls';\nimport { LocalStorageCODService } from '../logic/local-storage-cod.service';\nimport { ParameterService } from '../../core/services/parameters-service/parameters.service';\nimport { IParametersAllRs } from '../../core/models/parameters/parameters-rs.model';\n\n@Component({\n selector: 'ipt-cod-form',\n templateUrl: './cod-form.component.html',\n styleUrls: []\n})\nexport class CodFormComponent implements OnChanges, OnDestroy {\n\n @Input() dataFromPreviusCodData?: any;\n @Input() courseSelect?: any;\n @Input() isNewCod!: boolean;\n @Input() editCod!: boolean;\n @Input() CourseSelectRenovation!:any;\n @Input() isRenovation?:boolean;\n\n @Output() okCreatedCOD = new EventEmitter<Boolean>();\n subscription?: Subscription;\n\n private allowedRoles: number[] = [\n 1, 30, 31, 32, 40, 41, 42, 50, 51, 52,\n ];\n\n public currentStep: number = 0;\n public formTitle: string = 'Formulario para creación del COD';\n public userRole: number;\n public formSteps: number = 5;\n public financingData?: any[];\n public isLoading: boolean = false;\n public loaderMessage: string = '';\n public codCreationSubscription: Subscription | null = null;\n public parametersAll?:IParametersAllRs;\n\n constructor(\n private baseService: BaseService,\n private localStorageCOD: LocalStorageCODService,\n private codFormControls: CodFormControls,\n private commercialService: CommercialService,\n private parameterService: ParameterService,\n ) {\n this.userRole = this.baseService.getUserRole();\n this.getParameters();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['editCod'] && this.dataFromPreviusCodData) {\n if (this.editCod) {\n if (!this.dataFromPreviusCodData.edit_course_payment) {\n Swal.fire({\n title: 'Querido asesor',\n text: 'Solo puede editar Datos del estudiante',\n icon: 'warning'\n })\n }\n this.formTitle = 'Formulario para verificar y editar información del COD actual';\n } else if (this.dataFromPreviusCodData?.cod_renovation == false && this.editCod == false) {\n this.formTitle = 'Formulario para creación del COD';\n }else if(this.dataFromPreviusCodData.cod_renovation == true && this.editCod == false){\n this.formTitle = 'Formulario para la renovacion del COD';\n }\n }\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n allowedRole(): boolean {\n return this.allowedRoles.includes(this.userRole);\n }\n\n getCodbyCode() {\n // TODO: Traer COD por código y pintarlo\n }\n\n\n saveFinancingData(data: any[]) {\n if (data) {\n const dates: string[] = [];\n data.forEach(p => {\n const date = p[2];\n dates.push(date);\n })\n this.financingData = dates;\n }\n }\n\n getFormAction(action: string) {\n if (this.isRenovation ==true) {\n this.financingData=[];\n }else{\n if (!this.financingData && this.localStorageCOD.getCodFormData(4, 'payment_method') === '1') {\n Swal.fire({\n title: 'Querido asesor',\n text: 'Debe hacer el cálculo de las cuotas en el paso 4',\n icon: 'error'\n })\n return;\n }\n }\n const totalData: any[] = [];\n\n this.subscription = this.codFormControls.getControlValues().subscribe((controls) => {\n for (let i = 1; i <= this.formSteps; i++) {\n let controlsByStep: Control[] = controls[i-1];\n controlsByStep.forEach(control => {\n let value = this.localStorageCOD.getCodFormData(i, control.name);\n // Cambiar True/False del multiculturalismo 1/0\n if (value === 'false' && control.description === 'Multiculturalismo') {\n totalData.push({\n control: control.name,\n isRequired: control.required,\n value: '0',\n description: control.description\n })\n } else if (value === 'true' && control.description === 'Multiculturalismo') {\n totalData.push({\n control: control.name,\n isRequired: control.required,\n value: '1',\n description: control.description\n })\n } else {\n totalData.push({\n control: control.name,\n isRequired: control.required,\n value,\n description: control.description\n })\n }\n });\n }\n\n // Validar errores\n for (let i = 0; i < totalData.length; i++) {\n const element = totalData[i];\n if (!element.value && element.isRequired) {\n Swal.fire({\n title: 'Error Form Action Validate Error',\n text: `Revisar el campo: \"${element.description}\"`,\n icon: 'error'\n });\n break;\n }\n }\n\n if (action === 'create') this.createCOD(totalData);\n if (action === 'update') this.updateCOD(totalData);\n })\n\n this.subscription.unsubscribe();\n }\n\n updateCOD(totalData: any[]) {\n if (this.codCreationSubscription && !this.codCreationSubscription.closed) {\n return;\n }\n this.isLoading = true;\n this.loaderMessage = 'Editando COD, espere un momento'\n let request: IUpdateCODRq = this.getUpdateCOD(totalData);\n this.commercialService.updateCOD(request).subscribe({\n next: (response: any) => {\n if (response.message.code === 1) {\n this.isLoading = false;\n this.loaderMessage = '';\n Swal.fire({\n title: 'Perfecto!',\n text: 'El COD ha sido Editado exitosamente.',\n icon: 'success'\n })\n this.localStorageCOD.clearData();\n this.okCreatedCOD.emit(true);\n } else if (response.message.code === 4) {\n this.isLoading = false;\n this.loaderMessage = '';\n const errorMessages = (response.data.errors as any[]).map(error => `- ${error.message}`).join('<br>');\n\n Swal.fire({\n title: 'Revisar lo seleccionado en los campos',\n html: `${errorMessages}`,\n icon: 'warning'\n });\n } else {\n this.isLoading = false;\n this.loaderMessage = '';\n\n Swal.fire({\n title: 'Warning!',\n text: response.message.message,\n icon: 'error'\n })\n }\n },\n error: (err: any) => {\n this.isLoading = false;\n this.loaderMessage = '';\n Swal.fire({\n title: 'Error in cod creation',\n text: err.message,\n icon: 'error'\n })\n },\n complete: () => {\n this.codCreationSubscription = null;\n }\n })\n\n }\n\n createCOD(totalData: any[]) {\n if (this.codCreationSubscription && !this.codCreationSubscription.closed) {\n return;\n }\n this.isLoading = true;\n this.loaderMessage = 'Creando COD, espere un momento'\n let request: CreateCODRq = this.getCreateCOD(totalData);\n this.commercialService.createCOD(request).subscribe({\n next: (response: any) => {\n if (response.message.code === 1) {\n this.isLoading = false;\n this.loaderMessage = '';\n Swal.fire({\n title: 'Perfecto!',\n text: 'El COD ha sido creado exitosamente.',\n icon: 'success'\n })\n this.localStorageCOD.clearData();\n this.okCreatedCOD.emit(true);\n }else if(response.message.code === 3){\n let alertHtml = `\n <div class=\"my-custom-alert\">\n <h2>Warning!</h2>\n `;\n if (!response.data.warning.average_score) {\n alertHtml += `<p>No pasó el promedio final</p><br>`;\n }\n if (!response.data.warning.non_attendance) {\n alertHtml += `<p>Tiene más del 25% de inasistencias</p><br>`;\n }\n if (!response.data.warning.outstanding_payments) {\n alertHtml += `<p>Tiene pagos pendientes</p>`;\n }\n alertHtml += `</div>`;\n Swal.fire({\n html: alertHtml,\n icon: 'error',\n // showCancelButton: true,\n confirmButtonText: 'Confirmar',\n // cancelButtonText: 'Cancelar',\n })\n this.isLoading = false;\n } else if (response.message.code === 4) {\n this.isLoading = false;\n this.loaderMessage = '';\n const errorMessages = (response.data.errors as any[]).map(error => `- ${error.message}`).join('<br>');\n\n Swal.fire({\n title: 'Revisar lo seleccionado en los campos',\n html: `${errorMessages}`,\n icon: 'warning'\n });\n } else {\n this.isLoading = false;\n this.loaderMessage = '';\n\n Swal.fire({\n title: 'Warning!',\n text: response.message.message,\n icon: 'error'\n })\n }\n },\n error: (err: any) => {\n this.isLoading = false;\n this.loaderMessage = '';\n Swal.fire({\n title: 'Error in cod creation',\n text: err.message,\n icon: 'error'\n })\n },\n complete: () => {\n this.codCreationSubscription = null;\n }\n })\n\n }\n\n getCreateCOD(data: any[]): CreateCODRq {\n let request: CreateCODRq = {\n token: this.baseService.getUserToken(),\n student_name: data.filter(data => data.control === 'student_name')[0].value,\n student_last_name: data.filter(data => data.control === 'student_last_name')[0].value,\n nickname: data.filter(data => data.control === 'nickname')[0].value,\n student_email: data.filter(data => data.control === 'student_email')[0].value,\n student_phone_indicative: data.filter(data => data.control === 'student_phone_indicative')[0].value,\n student_phone_number: data.filter(data => data.control === 'student_phone_number')[0].value,\n gender: data.filter(data => data.control === 'gender')[0].value,\n birthdate: data.filter(data => data.control === 'birthdate')[0].value,\n city: data.filter(data => data.control === 'city')[0].value,\n student_id_card_type: data.filter(data => data.control === 'student_id_card_type')[0].value,\n student_id_card: data.filter(data => data.control === 'student_id_card')[0].value,\n password: data.filter(data => data.control === 'password')[0].value,\n needAtendant: data.filter(data => data.control === 'needAtendant')[0].value,\n parent_name: data.filter(data => data.control === 'parent_name')[0].value,\n parent_last_name: data.filter(data => data.control === 'parent_last_name')[0].value,\n parent_id_card_type: data.filter(data => data.control === 'parent_id_card_type')[0].value,\n parent_id_card: data.filter(data => data.control === 'parent_id_card')[0].value,\n parent_phone_indicative: data.filter(data => data.control === 'parent_phone_indicative')[0].value,\n parent_phone_number: data.filter(data => data.control === 'parent_phone_number')[0].value,\n parent_occupation: data.filter(data => data.control === 'parent_occupation')[0].value,\n parent_office_address: data.filter(data => data.control === 'parent_address')[0].value,\n social_stratum: data.filter(data => data.control === 'stratum')[0].value,\n civil_status: data.filter(data => data.control === 'civil_status')[0].value,\n educational_level: data.filter(data => data.control === 'grade')[0].value,\n student_address: data.filter(data => data.control === 'student_address')[0].value,\n student_occupation: data.filter(data => data.control === 'student_occupation')[0].value,\n disability: data.filter(data => data.control === 'disability')[0].value,\n health_regimen: data.filter(data => data.control === 'health_regimen')[0].value,\n marketing_reasons: data.filter(data => data.control === 'marketing_reasons')[0].value,\n study_reasons: data.filter(data => data.control === 'study_reasons')[0].value,\n observation: data.filter(data => data.control === 'observation')[0].value,\n multiculturalism_1: data.filter(data => data.control === 'multiculturalism_1')[0].value,\n multiculturalism_2: data.filter(data => data.control === 'multiculturalism_2')[0].value,\n multiculturalism_3: data.filter(data => data.control === 'multiculturalism_3')[0].value,\n multiculturalism_4: data.filter(data => data.control === 'multiculturalism_4')[0].value,\n multiculturalism_5: data.filter(data => data.control === 'multiculturalism_5')[0].value,\n multiculturalism_6: data.filter(data => data.control === 'multiculturalism_6')[0].value,\n availible_courses: data.filter(data => data.control === 'availible_courses')[0].value,\n course_type: data.filter(data => data.control === 'course_type')[0].value,\n agreement_by_category: data.filter(data => data.control === 'agreement_by_category')[0].value,\n english_level: data.filter(data => data.control === 'english_level')[0].value,\n payment_method: data.filter(data => data.control === 'payment_method')[0].value,\n quota_times: data.filter(data => data.control === 'quota_times')[0].value,\n payment_date: data.filter(data => data.control === 'payment_date')[0].value,\n payment_dates: this.financingData!,\n program_price: data.filter(data => data.control === 'program_price')[0].value,\n total_price: data.filter(data => data.control === 'total_price')[0].value,\n paid_level: data.filter(data => data.control === 'paid_level')[0].value,\n terms: data.filter(data => data.control === 'terms')[0].value,\n re_password: data.filter(data => data.control === 're_password')[0].value,\n age: data.filter(data => data.control === 'age')[0].value,\n country: data.filter(data => data.control === 'country')[0].value,\n state: data.filter(data => data.control === 'state')[0].value,\n academic_plan: data.filter(data => data.control === 'academic_plan')[0].value,\n code_refers: data.filter(data => data.control === 'code_refers')[0].value,\n }\n return request;\n }\n\n getUpdateCOD(data: any[]): IUpdateCODRq {\n let request: IUpdateCODRq = {\n token: this.baseService.getUserToken(),\n student_name: data.filter(data => data.control === 'student_name')[0].value,\n student_last_name: data.filter(data => data.control === 'student_last_name')[0].value,\n nickname: data.filter(data => data.control === 'nickname')[0].value,\n student_email: data.filter(data => data.control === 'student_email')[0].value,\n student_phone_indicative: data.filter(data => data.control === 'student_phone_indicative')[0].value,\n student_phone_number: data.filter(data => data.control === 'student_phone_number')[0].value,\n gender: data.filter(data => data.control === 'gender')[0].value,\n birthdate: data.filter(data => data.control === 'birthdate')[0].value,\n city: data.filter(data => data.control === 'city')[0].value,\n student_id_card_type: data.filter(data => data.control === 'student_id_card_type')[0].value,\n student_id_card: data.filter(data => data.control === 'student_id_card')[0].value,\n needAtendant: data.filter(data => data.control === 'needAtendant')[0].value,\n parent_name: data.filter(data => data.control === 'parent_name')[0].value,\n parent_last_name: data.filter(data => data.control === 'parent_last_name')[0].value,\n parent_id_card_type: data.filter(data => data.control === 'parent_id_card_type')[0].value,\n parent_id_card: data.filter(data => data.control === 'parent_id_card')[0].value,\n parent_phone_indicative: data.filter(data => data.control === 'parent_phone_indicative')[0].value,\n parent_phone_number: data.filter(data => data.control === 'parent_phone_number')[0].value,\n parent_occupation: data.filter(data => data.control === 'parent_occupation')[0].value,\n parent_office_address: data.filter(data => data.control === 'parent_address')[0].value,\n social_stratum: data.filter(data => data.control === 'stratum')[0].value,\n civil_status: data.filter(data => data.control === 'civil_status')[0].value,\n educational_level: data.filter(data => data.control === 'grade')[0].value,\n student_address: data.filter(data => data.control === 'student_address')[0].value,\n student_occupation: data.filter(data => data.control === 'student_occupation')[0].value,\n disability: data.filter(data => data.control === 'disability')[0].value,\n health_regimen: data.filter(data => data.control === 'health_regimen')[0].value,\n marketing_reasons: data.filter(data => data.control === 'marketing_reasons')[0].value,\n study_reasons: data.filter(data => data.control === 'study_reasons')[0].value,\n observation: data.filter(data => data.control === 'observation')[0].value,\n multiculturalism_1: data.filter(data => data.control === 'multiculturalism_1')[0].value,\n multiculturalism_2: data.filter(data => data.control === 'multiculturalism_2')[0].value,\n multiculturalism_3: data.filter(data => data.control === 'multiculturalism_3')[0].value,\n multiculturalism_4: data.filter(data => data.control === 'multiculturalism_4')[0].value,\n multiculturalism_5: data.filter(data => data.control === 'multiculturalism_5')[0].value,\n multiculturalism_6: data.filter(data => data.control === 'multiculturalism_6')[0].value,\n availible_courses: data.filter(data => data.control === 'availible_courses')[0].value,\n course_type: data.filter(data => data.control === 'course_type')[0].value,\n agreement_by_category: data.filter(data => data.control === 'agreement_by_category')[0].value,\n english_level: data.filter(data => data.control === 'english_level')[0].value,\n payment_method: data.filter(data => data.control === 'payment_method')[0].value,\n quota_times: data.filter(data => data.control === 'quota_times')[0].value,\n payment_date: data.filter(data => data.control === 'payment_date')[0].value,\n payment_dates: this.financingData!,\n program_price: data.filter(data => data.control === 'program_price')[0].value,\n total_price: data.filter(data => data.control === 'total_price')[0].value,\n paid_level: data.filter(data => data.control === 'paid_level')[0].value,\n terms: data.filter(data => data.control === 'terms')[0].value,\n age: data.filter(data => data.control === 'age')[0].value,\n country: data.filter(data => data.control === 'country')[0].value,\n state: data.filter(data => data.control === 'state')[0].value,\n academic_plan: data.filter(data => data.control === 'academic_plan')[0].value,\n code_refers: this.parseNumber(data.filter(data => data.control === 'code_refers')[0].value),\n code_cod: data.filter(data => data.control === 'code_cod')[0].value,\n }\n return request;\n }\n\n changeStep(step: number) {\n this.currentStep = step;\n }\n\n parseNumber(value: any): number | null {\n const parsedValue = parseFloat(value);\n return isNaN(parsedValue) ? null : parsedValue;\n }\n\n getParameters(){\n this.parameterService.getAllParametersCodForm().subscribe((response) => {\n this.parametersAll = response.data;\n });\n }\n}\n","<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && !dataFromPreviusCodData?.cod_renovation\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && dataFromPreviusCodData?.cod_renovation == true\" class=\"p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"background-color:#1da750; color: white;\">{{ formTitle }}</span>\n <div *ngIf=\"parametersAll !== null\">\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" [courseSelectRenovation]=\"CourseSelectRenovation\" [isRenovation]=\"isRenovation\" [parametersAll]=\"parametersAll\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" [parametersAll]=\"parametersAll\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" [parametersAll]=\"parametersAll\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\" [isRenovation]=\"isRenovation\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" [isRenovation]=\"isRenovation\" class=\"p-1\" [parametersAll]=\"parametersAll\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n </div>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comunícate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MessageService } from 'primeng/api';\nimport { TabViewModule } from 'primeng/tabview';\nimport { ComponentsModule } from '../components/components.module';\nimport { CodDocumentsSectionComponent } from './cod-documents-section/cod-documents-section.component';\n\nimport { CodFormComponent } from './cod-form/cod-form.component';\nimport { CodFormStepFiveComponent } from './steps/cod-form-step-five/cod-form-step-five.component';\nimport { CodFormStepFourComponent } from './steps/cod-form-step-four/cod-form-step-four.component';\nimport { CodFormStepOneComponent } from './steps/cod-form-step-one/cod-form-step-one.component';\nimport { CodFormStepTwoComponent } from './steps/cod-form-step-two/cod-form-step-two.component';\nimport { CodFormStepThreeComponent } from './steps/cod-form-step-three/cod-form-step-three.component';\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { TableModule } from 'primeng/table';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { ModalReferredComponent } from './modal-referred/modal-referred.component';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@NgModule({\n imports: [\n CommonModule,\n TabViewModule,\n ComponentsModule,\n MatCheckboxModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n InputTextareaModule,\n InputTextModule\n ],\n exports: [\n CodFormComponent,\n CodDocumentsSectionComponent,\n CodFormStepOneComponent,\n CodFormStepTwoComponent,\n CodFormStepThreeComponent,\n CodFormStepFourComponent,\n CodFormStepFiveComponent,\n ],\n declarations: [\n CodFormComponent,\n CodDocumentsSectionComponent,\n CodFormStepOneComponent,\n CodFormStepTwoComponent,\n CodFormStepThreeComponent,\n CodFormStepFourComponent,\n CodFormStepFiveComponent,\n ModalReferredComponent,\n ],\n providers: [\n MessageService\n ],\n})\nexport class CodModule { }\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\n@Injectable()\nexport class RedirectGuard implements CanActivate {\n constructor(private router: Router) {}\n\n canActivate( route: ActivatedRouteSnapshot, state: RouterStateSnapshot ): boolean {\n window.location.href = route.data['externalUrl'];\n return true;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SwitchService {\n\n constructor() { }\n\n $modal = new EventEmitter<any>();\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n CopyExamRq,\n CreateAnswerRq,\n CreateQuestionRq,\n CreateSectionRq,\n CreateSectionWithAllRq,\n Exam,\n GetAllExamsRq,\n GetAllSectionsRq,\n GetQuestionsBySectionRq,\n getQuestionsBySectionsRq,\n UpdateAnswerRq,\n UpdateExamRq,\n UpdateExamStatusRq,\n UpdateQuestionRq,\n UpdateQuestionStateRq,\n UpdateSectionMediaRq,\n UpdateSectionRq,\n UpdateSectionStateRq,\n} from '../../models/test/test.model';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TestService extends IPTGeneralService{\n private SERVICE_URL = 'test/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n // ---------------------- EXÁMENES ---------------------- //\n createExam(exam: Exam): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/exam';\n this.generateRequestParams(exam);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n //Este servicio solo trae todos los examenes pero del autor que los hizo \n getAllExams(params: GetAllExamsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/all/exam';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateExam(params: UpdateExamRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/exam';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n updateExamStatus(params: UpdateExamStatusRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/exam/status';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n copyExam(params: CopyExamRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'copy/exam';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n getExamByCode(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/exam/by/code/' + code;\n return this.http.get(serviceUrl);\n }\n\n // ---------------------- SECCIONES ---------------------- //\n createSectionWithAll(params: CreateSectionWithAllRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/section/with/all';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n createSection(params: CreateSectionRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/section';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllSections(params: GetAllSectionsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/all/sections';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateSection(params: UpdateSectionRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/section';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n updateSectionMedia(params: UpdateSectionMediaRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/section/media';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateSectionState(params: UpdateSectionStateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/section/state';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n getSectionsByExam(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/sections/by/exam/' + code;\n return this.http.get(serviceUrl);\n }\n\n // ---------------------- PREGUNTAS ---------------------- //\n createQuestion(params: CreateQuestionRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/question';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateQuestion(params: UpdateQuestionRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/question';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n getQuestionsBySections(params: getQuestionsBySectionsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/questions/by/sections';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getQuestionsBySection(params: GetQuestionsBySectionRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/questions/by/section';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n // ---------------------- RESPUESTAS ---------------------- //\n createAnswer(params: CreateAnswerRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/answer';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateAnswer(params: UpdateAnswerRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/answer';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n getAnswersByQuestion(code: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/answers/by/question/' + code;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n updateQuestionState(params: UpdateQuestionStateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'update/question/state';\n this.generateRequestParams(params);\n return this.http.put(serviceUrl, this.httpOptions);\n }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getStrategyByUserCommercialRq, CreateObservationsRq } from '../../models/marketing/marketing.model';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class MarketingService extends IPTGeneralService{\n\n private SERVICE_URL = 'commercial/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getStrategyByUserCommercial(user: getStrategyByUserCommercialRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/contact/strategy/byaviser';\n this.generateRequestParams(user);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getObservationsContact(codeContact: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/observation/strategy/bycode/' + codeContact;\n return this.http.get(serviceUrl);\n }\n\n createObservations(params: CreateObservationsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/contact/observation/create';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getUserStatistics(userToken: getStrategyByUserCommercialRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/statistics';\n this.generateRequestParams(userToken);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getTopAdviser(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/topadviser';\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n getMovementStatus(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/movements/status';\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n getgroupSignupStatus(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/group/signup';\n return this.http.get(serviceUrl, this.httpOptions);\n }\n obtainAllTypeSocialNetworks(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/type/social/network';\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n}\n","import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getdiscountAllRq, DiscountRq, DiscountUpdateRq, IObtainAllCoursewallet, IAssignRequestRq, IObtainAvailableCourseRs, IGetCodByPaymentPlanRq, IUpdateAmountCodPaymentsRq, IParamsUpdateDateCodPaymentsRq, ICancelStudentReceiptRq, ICancelledReceiptByDateRq, IPaymentsReceivedByUserRq, IObtainCourseByCoodDiffParamRq, NameCommonExpenses, IObtainPaymentTranHistoryRq, IObtainStudentPaymentByDiffParamRq, InfoCashClosingRq, IcashClosingDateRq, IcashClosingRq, IpaymentBillEgressRq, IncomesAndEgressRq, IObatinDetailedIncomeByUserAndDateRq, IObatinBalacesByCoodinatorRq, SendEmailPayment,SendEmailPaymentCancellationRS, IPaymentCorrelativeRq, IObtainGatewayPaymentRecordRq, IUpdateEpaycoPaymentRq, IElectronicInvoiceRS, IAccountsBalanceRq, IGetFullPaymentInformationRq, IGetFullPaymentInformationRs, ISearchPaymentBillRq, ISearchPaymentBillRs, IGetSummaryByCoordinatorRq } from '../../models/budget/budget.model';\nimport { IFullCodStudentOverdueByCoordinatorRq, IPaymentOverdueByCoordinatorCourseRq, IPaymentOverdueByCoordinatorRq, IPaymentReferenceRq, ITransfer, ITransferAssignImage, ITransferCreateRq, ITransferDeleteRq, ITransferGetAllRq, ITransferGetRq, ITransferSearchRq, ITransferShowImageRq, ITransferStatusUpdateRq, ITransferUpdateRq, PaymentBillRq, PaymentBillRq2, PriceByTypeServiceRq,IDeleteCodPaymentsRq,ICreateCodPaymentsRq, ITransferStatusUpdateRequestRq, IUpdateElectronicInvoiceRq, IValidationOfTransfersByNumberRq } from '../../models/payment/payment-rq.model';\nimport { IgetCoursesFinishAndunassignedRq } from '../../models/reports/reports.model';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { ICodPaymentRq } from '../../models/cod/cod-rq.model';\nimport { ICreateTransferRq, ISearchTransferRq, IUpdateTransferRq } from '../../models/transfer/transfer.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BudgetService extends IPTGeneralService{\n\n private SERVICE_URL = 'budget/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getAllDiscount(user: getdiscountAllRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/discounts/coupon/all';\n this.generateRequestParams(user);\n return this.http.post(serviceUrl,this.httpOptions);\n }\n createDiscount(params: DiscountRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/discount/coupon/create';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n updateDiscount(params: DiscountUpdateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/discount/coupon/update';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getPaymentStudentsByCode(codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/cod/student/by/code/' + codeStudent;\n return this.http.get(serviceUrl);\n }\n\n getPaymentWalletByCampus(codeCampus: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/wallet/by/campus/' + codeCampus;\n return this.http.get(serviceUrl);\n }\n\n paymentBillDues(params: PaymentBillRq2): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/bill/register/dues';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n paymentBillServices(params: PaymentBillRq2): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/bill/register/services';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getPaymentBillAll(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/bill/canceled/all';\n return this.http.get(serviceUrl);\n }\n\n getPaymentBillByCode(codePayment: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/bill/canceled/by/code/' + codePayment;\n return this.http.get(serviceUrl);\n }\n\n getPaymentBillByStudent(codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/bill/canceled/by/student/' + codeStudent;\n return this.http.get(serviceUrl);\n }\n\n getPaymentBillByReference(reference: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/bill/canceled/by/reference/' + reference;\n return this.http.get(serviceUrl);\n }\n\n\n getPriceByTypeService(params: PriceByTypeServiceRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/price/by/type/service';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCoursesByCoordinator(params: IObtainAllCoursewallet): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/wallet/user/by/coordinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getWalletByCodeUser (codeUser: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/wallet/by/code/user/' + codeUser;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n getpaymentBillByWalletCode (codeWallet: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/payment/bill/by/wallets/by/' + codeWallet;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n getpaymentBillIncome (codeWallet: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/bill/wallets/code/filter/income/' + codeWallet;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n getpaymentBillEgress (codeWallet: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/bill/wallets/code/filter/egress/' + codeWallet;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n getPaymentOverdueStudent(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/payment/overdue/all/student';\n return this.http.get(serviceUrl);\n }\n\n getDayPaymentOverdueStudent(codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/day/payment/overdue/student/by/code/' + codeStudent;\n return this.http.get(serviceUrl);\n }\n\n getPaymentOverdueCourseByCoordinator(params: IPaymentOverdueByCoordinatorRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/overdue/course/by/coordinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getPaymentOverdueStudentByCoordinator(params: IPaymentOverdueByCoordinatorRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/overdue/student/by/coodinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getPaymentOverdueStudentByCoordinatorAndCourseCode(params: IPaymentOverdueByCoordinatorCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/overdue/student/by/coodinatorcourse';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getObtainCodStudentByCoordinator(params: IFullCodStudentOverdueByCoordinatorRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/stundent/by/coordinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCoursesFinishAndunassigned(params: IgetCoursesFinishAndunassignedRq): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'get/course/by/user/budget';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n // AssingCourse(params: any): Observable<any> {\n // let serviceUrl = this.SERVICE_URL + 'post/course/by/code/user/budget/assign';\n // this.generateRequestParams(params);\n // return this.http.post(serviceUrl, this.httpOptions);\n // }\n AssingCourse(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/course/assign/detail/by/adviser/budget';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n AssingCourses(params: IAssignRequestRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/user/budget/assign';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainAllAvailableCoursesByStudent(params: IObtainAvailableCourseRs): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/available/courses/by/student';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainObservationByCodStudent(params: IFullCodStudentOverdueByCoordinatorRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/observarion/by/cod/studet';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n adminStudentByCoordinator(params: IFullCodStudentOverdueByCoordinatorRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/admin/student/by/coordinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodbyPaymentPlanRq(params: IGetCodByPaymentPlanRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/stundent/payments/by/code/user';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n UpdateAmountCodPayments(params: IUpdateAmountCodPaymentsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/change/amount/cod/payments';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n UpdateDateCodPayments(params: IParamsUpdateDateCodPaymentsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'put/change/date/payment/cod/by/cod';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n UpdateDateCodPaymentsForPaymentPlan(params: IParamsUpdateDateCodPaymentsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/change/date/payment/cod';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentReceiptByCode (codeReceipt: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/payment/receipt/by/code/' + codeReceipt;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentsForStudentCode (codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/payments/for/student/code/' + codeStudent;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n obtainStudentPaymentsByGroupingCod (codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/student/payments/by/grouping/cod/' + codeStudent;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n obtainReceiptByCode (codeReceipt: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/receipt/by/code/' + codeReceipt;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentsForReceiptCode (codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/obtain/payments/for/receipt/code/' + codeStudent;\n return this.http.get(serviceUrl, this.httpOptions);\n }\n\n canelStudentReceipt(params: ICancelStudentReceiptRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/cancel/student/receipt';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCancelledReceiptsByDate(params: ICancelledReceiptByDateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/cancelled/receipts/by/date';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentreceivedByUser(params: IPaymentsReceivedByUserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/payments/received/by/user';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getTotalCashReceiptsByDateAndUser(params: IPaymentsReceivedByUserRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/total/cash/receipts/by/date/and/user';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCoursesByCoordAndDiffParam(params: IObtainCourseByCoodDiffParamRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/course/wallet/by/coordinator/diffetent/param';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllCommonExpenses(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/common/expenses/all';\n return this.http.get(serviceUrl);\n }\n createCommmonExpenses(param: NameCommonExpenses): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/common/expenses/create';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n obtainCodAndStatusApprovedLevelByGroup(param: NameCommonExpenses): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/student/status/approved/by/group';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainStudentPaymentTransactionHistoryByCourse(param: IObtainPaymentTranHistoryRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/student/payment/transaction/history/by/course';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentTransactionHistoryByCod(param: IObtainPaymentTranHistoryRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/payment/transaction/history/by/cod';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainStudentPaymentByDifferentParameter(param: IObtainStudentPaymentByDiffParamRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/student/payment/by/different/parameters';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n createEgress(param: IpaymentBillEgressRq): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'post/payment/bill/register/egress';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getCategory(): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'get/type/supplier/all';\n return this.http.get(serviceUrl);\n }\n createCashClosing(param: IcashClosingRq): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'post/payment/bill/close/cash';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl,this.httpOptions);\n }\n searchCommonExpenses(name:string): Observable<any>{\n let serviceUrl = this.SERVICE_URL +'get/search/common/expenses/' + name;\n return this.http.get(serviceUrl);\n }\n getUsersCashClosing(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/bill/close/cash/by/user';\n return this.http.get(serviceUrl);\n }\n\n getCashClosingDay(code:number): Observable<any> {\n let serviceUrl = this.SERVICE_URL +'post/payment/bill/close/cash/by/day/codeuser/' + code;\n return this.http.get(serviceUrl);\n }\n getCashClosingMonth(code:number): Observable<any> {\n let serviceUrl = this.SERVICE_URL+ 'post/payment/bill/close/cash/by/month/codeuser/' + code;\n return this.http.get(serviceUrl);\n }\n getCashClosingYear(code:number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/bill/close/cash/by/year/codeuser/' + code;\n return this.http.get(serviceUrl);\n }\n getInfoCashClosingByCode(param:InfoCashClosingRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/bill/close/cash/by/code';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCashClosingDate(param:IcashClosingDateRq): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'post/payment/bill/close/cash/by/date/range';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n exportObtainStudentPaymentTransactionHistoryByCourse(param: IObtainPaymentTranHistoryRq): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'export/excel/data/payment/transaction/history/by/course';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getTotalCashIncomeEgress(param: IncomesAndEgressRq): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'post/total/cash/receipts/incomes/egress';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obatinBalacesByCoodinator(params: IAccountsBalanceRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/accounts/and/balances/by/coodinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obatinDetailedIncomeByUserAndDate(params: IObatinDetailedIncomeByUserAndDateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/detailed/income/report/by/advisor';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n exportIncomeExpenseHistoryData(params: IObatinDetailedIncomeByUserAndDateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'export/income/expense/history/data';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainAllPaymentBillCanceledByStudent(codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/all/payment/bill/cancelled/by/student/' + codeStudent;\n return this.http.get(serviceUrl);\n }\n\n getPaymentInfoByReference(params: IPaymentReferenceRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/payment/bill/by/reference';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentsByCod(param:ICodPaymentRq):Observable<any>{\n const serviceUrl = this.SERVICE_URL + 'post/obtain/payments/by/cod';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentsMadeByDates(params: ICancelledReceiptByDateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/payments/made/by/dates';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n sendEmailPayment(params: SendEmailPayment): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/send/email/payment';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n sendEmailPaymentCancellation(params: SendEmailPaymentCancellationRS): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/send/email/payment/cancellation';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n}\n\n getAllTransfers(params: ITransferGetAllRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/transfers/all';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n\n getTransferByCode(params: ITransferGetRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/transfers/specific';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n // createTransfer(params: ITransferCreateRq): Observable<any> {\n // const serviceUrl = this.SERVICE_URL + 'post/transfers/create';\n // this.generateRequestParams(params);\n // return this.http.post(serviceUrl, this.httpOptions);\n // }\n\n createTransfer(params: ITransferCreateRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/transfers/create';\n\n const formData = new FormData();\n formData.append('params[token]', params.token);\n formData.append('params[transfer_amount]', params.transfer_amount.toString());\n formData.append('params[bank_code]', params.bank_code.toString());\n formData.append('params[transfer_date]', params.transfer_date); // ahora string\n formData.append('params[reference_number]', params.reference_number);\n\n\n if (params.image) {\n formData.append('params[image]', params.image, params.image.name);\n }\n return this.http.post(serviceUrl, formData);\n }\n/*\n showTransferImage(params: ITransferShowImageRq): Observable<Blob> {\n const serviceUrl = this.SERVICE_URL + 'post/transfer/show-image';\n const body = { code: params.code };\n\n return this.http.post<Blob>(serviceUrl, body, {\n responseType: 'blob' as 'json',\n });\n }\n\n assignImageToTransfer(params: ITransferAssignImage): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/transfer/assign-image';\n const formData = new FormData();\n formData.append('token', params.token);\n formData.append('code', params.code.toString());\n formData.append('image', params.image, params.image.name);\n\n return this.http.post(serviceUrl, formData);\n } */\n\n assignImageToTransfer(params: ITransferAssignImage): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/transfer/assign-image';\n const formData = new FormData();\n formData.append('params[token]', params.token);\n formData.append('params[code]', params.code.toString());\n if (params.image) {\n formData.append('image', params.image, params.image.name);\n }\n return this.http.post(serviceUrl, formData);\n }\n\n showTransferImage(params: ITransferShowImageRq): Observable<HttpResponse<Blob>> {\n const serviceUrl = this.SERVICE_URL + 'post/transfer/show-image';\n const body = {\n params: {\n code: params.code\n }\n };\n return this.http.post(serviceUrl, body, {\n observe: 'response',\n responseType: 'blob'\n });\n }\n\n\n\n updateTransfer(params: ITransferUpdateRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/transfers/update';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateTransferStatus(params: ITransferStatusUpdateRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/transfers/update';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n deleteTransfer(params: ITransferDeleteRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/transfers/delete';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n searchTransfer(params: ITransferSearchRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/transfer/search';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n exportPaymentCorrelativeeHistoryData(param:IPaymentCorrelativeRq):Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'export/payments/correlative/history/data';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainPaymentsMadeByFilter(param: IPaymentCorrelativeRq): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'obtain/payment/correlatives/by/filter';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainGatewayPaymentRecord(param: IObtainGatewayPaymentRecordRq): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'obtain/gateway/payment/record';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n epaycoPaymentUpdate(param: IUpdateEpaycoPaymentRq): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'epayco/payment/update';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n exportElectronicInvoiceHistoryData(param:IElectronicInvoiceRS): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'export/electronic/invoice/history/data';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n exportAccountsAndBalancesByCoodinator(param:IAccountsBalanceRq): Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'export/accounts/and/balances/by/coodinator';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n createCodPayments(params: ICreateCodPaymentsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/create/cod/payments';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n deleteCodPayments(params: IDeleteCodPaymentsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/delete/cod/payments';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n\n getFullPaymentInformation(params: IGetFullPaymentInformationRq): Observable<IGetFullPaymentInformationRs> {\n const serviceUrl = this.SERVICE_URL + 'post/payment/bill/full-information';\n this.generateRequestParams(params);\n return this.http.post<IGetFullPaymentInformationRs>(serviceUrl, this.httpOptions);\n }\n\n updateTransferStatusByCode(params: ITransferStatusUpdateRequestRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/transfer/update-status';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateElectronicInvoice(params: IUpdateElectronicInvoiceRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/payment/bill/update-electronic-invoice';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n searchPaymentBill(params: ISearchPaymentBillRq): Observable<ISearchPaymentBillRs> {\n const serviceUrl = this.SERVICE_URL + 'post/payment/bill/search-information';\n this.generateRequestParams(params);\n return this.http.post<ISearchPaymentBillRs>(serviceUrl, this.httpOptions);\n }\n\n getValidationOfTransfersByNumber(params: IValidationOfTransfersByNumberRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'get/validation/of/transfers/by/number';\n this.generateRequestParams(params);\n return this.http.post<ISearchPaymentBillRs>(serviceUrl, this.httpOptions);\n }\n\n getSummaryByCoordinator(params: IGetSummaryByCoordinatorRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'get/summary/by/coordinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n\n createTransferValidate(params: ICreateTransferRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'create/transfer/validate';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n searchTransferByReference(params: ISearchTransferRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'search/transfer/by/reference';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateTransferData(params: IUpdateTransferRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'update/transfer/data';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainListStudentPaymentStatus(params: IObtainCourseByCoodDiffParamRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'obtain/list/student/payment/status';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n exportListStudentPaymentStatus(params: IObtainCourseByCoodDiffParamRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'export/student/payment/status/list/by/coordinator';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ClassroomByIdCalendarRq, ClassroomByTypeUserRq, ClassroomModalityRq, ClassroomStudentRq, IObatinRoomByModalityCampusRq } from '../../models/classroom/classroom-rq.model';\n\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ClassroomService extends IPTGeneralService{\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getClassroomsByModality(params: ClassroomModalityRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/classroom/by/modality';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n obtainRoomByModalityAndCampus(params: IObatinRoomByModalityCampusRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/rooms/by/modality/and/location';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getClassroomByIdCalendar(params: ClassroomByIdCalendarRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/classroom/by/idcalendar';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getAllClassroomByTypeUser(params: ClassroomByTypeUserRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/classroom/by/user';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getClassroomByStudent(params: ClassroomStudentRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/classroom/by/student';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ActivityService extends IPTGeneralService{\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getActivityByCourse(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/activities/by/course/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getNoticesByCourse(codeCourse: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/notices/by/course/code/' + codeCourse;\n return this.http.get(serviceUrl);\n }\n\n getUnitsByActivity(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/units/by/activity/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getElementsByUnit(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/element/by/unit/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourseTeacherByToken(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/teacher/by/token';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllTypeResource(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/type/resource/template';\n return this.http.get(serviceUrl);\n }\n\n getAllTypeElement(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/type/element/template';\n return this.http.get(serviceUrl);\n }\n\n getElementsByUnitNew(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/element/by/unit/code/new';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateCourseByCronogram(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/update/course/by/code';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getTemplateCourseByCourse(codeCourse: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/template/course/by/course/code/' + codeCourse;\n return this.http.get(serviceUrl);\n }\n\n saveMagnageActivity(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/manage/activities/by/course/element';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n postNotesActivityH5P(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/activity/h5p/notes';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getMagnageActivity(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/template/admin/by/course/element';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getNoteActivityH5P(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/note/activity/h5p';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { GetCourseByTypeRq, GetStudentByCourse, GetLastStudentCodRq, GetStudentByTeacherRq, GetAllStudentByTeacherRq, ClassRoomRQI, IManageCreatedScherduleEventsRq, IParamsObtainCoursesByTypeCourseInCreatedCoursesRs, IgetAvailableCoursesByLevStaModalRq, IGetCoursesAvailableForExchangeRq } from '../../models/academic/academic.component';\nimport { UserTokenRq } from '../../models/user/user-rq.model';\nimport { GetStudentsByCourseRq } from '../../models/student/student.interface';\nimport { GetCodByStudentCourseRq } from '../../models/cod/cod-rq.model';\nimport { IChangeOfStudentGroupRq, IgetCodBcourseByModalityAndDisponibilityRq, IgetCodBcourseByModalityAndLevelAndCourseTypeRq } from '../../models/course/course-rq.model';\nimport { IObtainCoursesByDifferentParametersRq, IObtainCoursesStatusByAreaRq, IObtainCoursesStatusByDifferentParametersRq, IgetCodBcourseByModalityAndStatusAndLevelInglishRq } from '../../models/course/courses.model';\nimport { INotesStudentRq, NotesStudents } from '../../models/notes/INotesTemplate';\nimport { IAttendanceCodRq } from '../../models/attendance/attendance.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AcademicService extends IPTGeneralService{\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getCourseByType(params: GetCourseByTypeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/by/type';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getStudentByCourse(params: GetStudentByCourse): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/students';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainLastStudentCod(params: GetLastStudentCodRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/last/student/cod/by/student';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodGenDataStudent(codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/general/data/student/by/code/' + codeStudent;\n return this.http.get(serviceUrl);\n }\n\n getAllCoursesInitialized(params: UserTokenRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/all/courses/initialized';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getStudentByTeacher(params: GetStudentByTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/students/by/teacher';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllStudentByTeacher(params: GetAllStudentByTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/students/by/teacher';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllStudentByCourse(params: GetStudentsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/students/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainStudentsByTeacher(params: GetStudentByTeacherRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/students/by/teacher';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAllCodActiveByCourse(params: GetStudentsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/all/cod/active/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n createClassroom(params: ClassRoomRQI): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/create/classroom';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodByStudentAndCourse(params: GetCodByStudentCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/by/student/and/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodBcourseByModalityAndDisponibility(params: IgetCodBcourseByModalityAndDisponibilityRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/obtain/by/modality';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCodBcourseByModalityAndStatusAndLevelInglish(params: IgetCodBcourseByModalityAndStatusAndLevelInglishRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/course/obtain/by/modality/status';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n manageCreatedScherduleEvents(params: IManageCreatedScherduleEventsRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/manage/created/schedule/events';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCoursesByDifferentParameters(params: IObtainCoursesByDifferentParametersRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/courses/by/different/parameters';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n getCodBcourseByModalityAndlevelEnglishAndCourseType(params: IgetCodBcourseByModalityAndLevelAndCourseTypeRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/courses/by/level/and/type/course/renovation/modality';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCoursesTheoryByDifferentParameters(params: IObtainCoursesByDifferentParametersRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/courses/theory/by/different/parameters';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCourseTheoryByCode(courseCode: number): Observable<any> {\n let serviceUrl = `${this.SERVICE_URL}obtain/course/theory/${courseCode}`;\n return this.http.get<any>(serviceUrl);\n }\n\n obtainCoursesTheoryByDiffParametersForNotes(params: IObtainCoursesByDifferentParametersRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/courses/theory/by/diffparameters/for/notes';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCoursesByTypeCoursesInCreatdCourseRs(params: IParamsObtainCoursesByTypeCourseInCreatedCoursesRs): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/course/by/plan/academic/type/course/modality';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainAllCodAirByCourse(params: GetStudentsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/all/cod/air/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCourseStatusByParameters(params: IObtainCoursesStatusByDifferentParametersRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/courses/status/by/different/parameters';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCourseStatusByArea(params: IObtainCoursesStatusByAreaRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/courses/status/by/area';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getEventsByCourseCode(coudeCourse: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/events/by/course/' + coudeCourse;\n return this.http.get(serviceUrl);\n }\n\n obtainPlansCourseAvalaibleForPosibleStudentByAgeAndGrade(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'obtain/avalaible/plans/course/by/age/and/grade/education';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n ObtainGradesByStudent(param:INotesStudentRq):Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'post/obtain/notes/student';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n ObtainLevelsCodsByStudent(param:NotesStudents):Observable<any>{\n let serviceUrl = this.SERVICE_URL + 'post/obtain/cods/by/student';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getAttendanceByCod(param:IAttendanceCodRq):Observable<any>{\n const serviceUrl = this.SERVICE_URL + 'post/obtain/attendance/by/cod/by/student';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getInfoStudentCourseByCod(param: IAttendanceCodRq):Observable<any>{\n const serviceUrl = this.SERVICE_URL + 'post/obtain/info/student/course/by/cod';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCourseTypeByAcademicPlan(codeAcademic: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/coursetype/by/academic/plan/' + codeAcademic;\n return this.http.get(serviceUrl);\n }\n\n getAvailableCoursesByModalityStatusAndLevel(param: IgetAvailableCoursesByLevStaModalRq):Observable<any>{\n const serviceUrl = this.SERVICE_URL + 'get/available/courses/by/modality/status/level';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n obtainCoursesAvailableSpacesAndClassesViewed(param:IgetAvailableCoursesByLevStaModalRq):Observable<any>{\n const serviceUrl = this.SERVICE_URL + 'obtain/course/active/by/quotas/classes';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCoursesAvailableForStudentChange(param:IGetCoursesAvailableForExchangeRq):Observable<any>{\n const serviceUrl = this.SERVICE_URL + 'get/courses/available/for/student/change';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n changeOfStudentGroup(param:IChangeOfStudentGroupRq):Observable<any>{\n const serviceUrl = this.SERVICE_URL + 'change/student/to/new/course';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Response } from '../../models/response/response.interface';\nimport { Observable } from 'rxjs';\nimport { AddEventByCourseRq, CourseAttendance, GetEventByCodeRq, GetEventsByCourseCodeRq, GetNotAttendancesByCodRq, IRegisterNewAttendanceRq, IServiceAllDataAttendanceRq, IUpdateAttendacenByCodeRq, RegisterNewAttendanceByEventRq,AddIndividualAttendanceRq,DeleteIndividualAttendanceRq,IUpdateOrCreateAttendancesRq,IAttendanceTakenUpdateRq,IUpdateOrCreateAttendancesRs, GetTeacherEventsAndStudentsRq, GetStudentsForEventRq, GetTeacherEventsAndStudentsRs,GetStudentsForEventRs } from '../../models/attendance/attendance.interface';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AttendanceService extends IPTGeneralService{\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n addEventByCourseRq(params: AddEventByCourseRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/event/by/course`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getEventsByCourseCode(params: GetEventsByCourseCodeRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/obtain/events/by/course_code`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getEventByCode(params: GetEventByCodeRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/obtain/event/by/code`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n registerNewAttendanceByEvent(params: RegisterNewAttendanceByEventRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}register/attendance/by/event`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getAttendaceByCourse(courseCode: number): Observable<CourseAttendance> {\n let serviceUrl = `${this.SERVICE_URL}post/obtain/attendances/by/course/${courseCode}`;\n return this.http.get<CourseAttendance>(serviceUrl);\n }\n\n getAttendaceByCourseAssigned(courseCode: number): Observable<CourseAttendance> {\n let serviceUrl = `${this.SERVICE_URL}obtain/attendances/by/course/assigned/${courseCode}`;\n return this.http.get<CourseAttendance>(serviceUrl);\n }\n\n getCODCodeByStudentCode(studentCode: number) {\n let serviceUrl = `${this.SERVICE_URL}get/cod_code/by/student_code/${studentCode}`;\n return this.http.get<any>(serviceUrl);\n }\n\n getAttendanceHistoryByStudent(token: string, cod_code: number): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/obtain/attendance/history/by/student`;\n this.generateRequestParams({ token, cod_code });\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getAllNotAttendancesByCod(params: GetNotAttendancesByCodRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}get/all/not/attendances/by/cod`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getNotAttendancesOfLastWeekByCod(params: GetNotAttendancesByCodRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}get/all/not/attendances/lastweek/by/cod`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getAllAttendaceByCourse(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}get/all/data/attendances/by/course/${courseCode}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n newAttendanceByEvent(params: IRegisterNewAttendanceRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/register/new/attendance/by/event`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n obtainAttendancesStustudentByCourse(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}obtain/attendances/students/by/course/${courseCode}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n obtainAttendancessByCourse(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}obtain/attendances/by/course/${courseCode}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n obtainAttendancessByAssigned(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}obtain/attendances/by/assigned/${courseCode}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n obtainCourseEventByCode(code: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}obtain/course/event/by/code/${code}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n obtainFullDataAttendanceByCode(code: number): Observable<IServiceAllDataAttendanceRq> {\n let serviceUrl = `${this.SERVICE_URL}obtain/full/data/attendance/by/code/${code}`;\n return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n }\n\n UpdateIndividualAttendance(params: IUpdateAttendacenByCodeRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}update/individual/attendance/by/code`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n exportExcelAttendance(codeStudent: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'dowload/excel/attendances/students/by/course/' + codeStudent;\n return this.http.get(serviceUrl);\n }\n\n updateAttendanceByEvent(params: IRegisterNewAttendanceRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}update/attendance/by/event`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n addIndividualAttendance(param: AddIndividualAttendanceRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'add/individual/attendance';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n deleteIndividualAttendance(param: DeleteIndividualAttendanceRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'delete/individual/attendance';\n this.generateRequestParams(param);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n updateOrCreateAttendances(params: IUpdateOrCreateAttendancesRq): Observable<IUpdateOrCreateAttendancesRs> {\n const serviceUrl = this.SERVICE_URL + 'update/or/create/attendances';\n this.generateRequestParams(params);\n return this.http.post<IUpdateOrCreateAttendancesRs>(serviceUrl, this.httpOptions);\n }\n\n getTeacherEventsAndStudents(params: GetTeacherEventsAndStudentsRq): Observable<GetTeacherEventsAndStudentsRs> {\n const serviceUrl = this.SERVICE_URL + 'get/teacher/events/and/students';\n this.generateRequestParams(params);\n return this.http.post<GetTeacherEventsAndStudentsRs>(serviceUrl, this.httpOptions);\n }\n\n getStudentsForEvent(params: GetStudentsForEventRq): Observable<GetStudentsForEventRs> {\n const serviceUrl = this.SERVICE_URL + 'get/students/for/event';\n this.generateRequestParams(params);\n return this.http.post<GetStudentsForEventRs>(serviceUrl, this.httpOptions);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { GetCertificate } from '../../models/academic/academic.component';\nimport { IAllCodInfExportingRs, IForwardAcceptTermsEmailRq } from '../../models/terms/terms-rs.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CertificateService extends IPTGeneralService{\n private SERVICE_URL = 'certificates/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getCertificate(params: GetCertificate): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/kids';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getCertificateApiUrl(): string {\n return this.SERVICE_URL + 'post/certificate';\n }\n\n getCertificatesApiUrl(): string {\n return this.SERVICE_URL + 'post/certificates';\n }\n\n generateCodFileInPdf(params: IAllCodInfExportingRs): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'generate/cod/file/in/pdf';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n generateCodSendEmail(params: any): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'generate/cod/send/email';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n exportCodFileInPdf(params: IAllCodInfExportingRs): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'export/cod/file/in/pdf';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n forwardAcceptanceOfTermsEmail(params: IForwardAcceptTermsEmailRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'forward/acceptance/of/terms/email';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserEktService extends IPTGeneralService{\n private SERVICE_URL = 'ekt/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getAllUserEkt(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/users/1161419';\n return this.http.get(serviceUrl);\n }\n\n getAllAnnouncementByUser(codeUser: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/all/announcement/by/user/' + codeUser;\n return this.http.get(serviceUrl);\n }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { AnnouncementEpaycoRefRq } from '../../models/epayco/epayco.interfaces';\nimport { IPTGeneralService } from '../../services/service-enviroments';\nimport { Response } from '../../models/response/response.interface';\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class EpaycoService extends IPTGeneralService{\n private EPAYCO_URL = 'https://secure.epayco.co/validation/v1/reference';\n private SERVICE_URL = 'https://iptdev.com.co/ekt/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.EPAYCO_URL = this.EPAYCO_URL;\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getPaymentStatus(reference: string): Observable<any> {\n let serviceUrl = `${this.EPAYCO_URL}/${reference}`;\n return this.http.get<any>(serviceUrl);\n }\n\n setAnnouncementEpaycoRef(params: AnnouncementEpaycoRefRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/announcement/epayco_ref`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n setAnnouncementGroupEpaycoRef(params: AnnouncementEpaycoRefRq): Observable<Response> {\n let serviceUrl = `${this.SERVICE_URL}post/announcementGroup/epayco_ref`;\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CourseService } from './services/course-service/course-service.model';\nimport { ParameterService } from './services/parameters-service/parameters.service';\nimport { RedirectGuard } from './utils/route-service/route.service';\nimport { StorageService } from './services/storage-service/storage-service';\nimport { SwitchService } from './services/switch-service/switch.service';\nimport { UserService } from './services/user-service/user-service';\nimport { BaseService } from './utils/base-service/base.service';\nimport { TestService } from './services/test-service/test.service';\nimport { MarketingService } from './services/marketing-service/marketing-service';\nimport { BudgetService } from './services/budget-service/budget-service';\nimport { ClassroomService } from './services/classroom-service/classroom-service.service';\nimport { ActivityService } from './services/activity-service/activity.service';\nimport { CommercialService } from './services/commercial-service/comercial.service';\nimport { AcademicService } from './services/academic-service/academic.service';\nimport { AttendanceService } from './services/attendance-service/attendance.service';\nimport { CalendarService } from './services/calendar-service/calendar.service';\nimport { CertificateService } from './services/certificate-service/certificate.service';\nimport { UserEktService } from './services/ekt-service/userekt.service';\nimport { CopiesService } from './services/copies.service';\nimport { PipeModule } from './pipes/pipe.module';\nimport { EpaycoService } from './services/ePayco/epayco.service';\n\n@NgModule({\n providers: [\n CommercialService,\n ParameterService,\n CourseService,\n StorageService,\n UserService,\n SwitchService,\n RedirectGuard,\n BaseService,\n TestService,\n MarketingService,\n ClassroomService,\n BudgetService,\n ActivityService,\n AcademicService,\n AttendanceService,\n CalendarService,\n CertificateService,\n UserEktService,\n CopiesService,\n EpaycoService,\n PipeModule\n ]\n})\nexport class CoreModule {}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\nexport interface ControlSteps {\n name: string;\n required: boolean;\n description: string;\n}\n@Injectable({\n providedIn: 'root'\n})\nexport class CodSelfManagedControls {\n\n public controls: Array<ControlSteps[]> = [\n [\n { name: 'student_name', required: true, description: 'Nombres del estudiante' },\n { name: 'student_last_name', required: true, description: 'Apellidos del estudiante' },\n { name: 'student_id_card_type', required: true, description: 'Tipo de documento del estudiante' },\n { name: 'student_id_card', required: true, description: 'Documento del estudiante' },\n { name: 'gender', required: true, description: 'Género' },\n { name: 'birthdate', required: true, description: 'Fecha de nacimiento del estudiante' },\n { name: 'age', required: true, description: 'Edad' },\n { name: 'country', required: true, description: 'País' },\n { name: 'state', required: true, description: 'Departamento o estado' },\n { name: 'city', required: true, description: 'Ciudad de residencia' },\n { name: 'student_email', required: true, description: 'Correo del estudiante' },\n { name: 'student_phone_indicative', required: true, description: 'Indicativo del estudiante' },\n { name: 'student_phone_number', required: true, description: 'Teléfono del estudiante' },\n { name: 'grade', required: true, description: 'Grado del estudiante' },\n { name: 'agreement_by_category', required: true, description: 'Convenio' },\n ],\n [\n { name: 'academic_plan', required: true, description: 'Plan académico' },\n { name: 'course_type', required: true, description: 'Tipo de curso' },\n { name: 'english_level', required: true, description: 'Nivel de inglés' },\n { name: 'availible_courses', required: false, description: 'Cursos disponibles' },\n { name: 'course_modality', required: false, description: 'Modalidad del curso' },\n ],\n [\n { name: 'program_price', required: true, description: 'Valor total del programa' },\n { name: 'payment_date', required: true, description: 'Fecha de pago' },\n { name: 'payment_method', required: true, description: 'Método de pago' },\n { name: 'quota_times', required: true, description: 'Cantidad de cuotas' },\n { name: 'total_price', required: true, description: 'Precio total de la matricula' },\n { name: 'paid_level', required: true, description: 'Niveles pagos' },\n ],\n [\n { name: 'optionsPayments', required: true, description: 'Tipo de pago' },\n { name: 'invoicing_name', required: true, description: 'Nombre de facturacion' },\n { name: 'invoicing_Apellido', required: true, description: 'Apellido de facturacion' },\n { name: 'invoicing_idType', required: true, description: 'Tipo de documento de facturacion' },\n { name: 'invoicing_document', required: true, description: 'documento de facturacion' },\n ],\n ];\n\n private $controls = new BehaviorSubject<Array<ControlSteps[]>>([]);\n\n constructor() {\n this.$controls.next(this.controls);\n }\n\n getControlValues(): Observable<Array<ControlSteps[]>> {\n return this.$controls.asObservable();\n }\n\n // Cambiar los valores de los controls, ejemplo: true y false del checkbox\n changeValue(step: number, controlName: string, newValue: any) {\n const controls: Array<ControlSteps[]> = { ...this.controls };\n let control = controls[step-1].filter(element => element.name === controlName);\n control[0].required = newValue;\n\n this.$controls.next(controls)\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorageCodSelfMaganedService {\n\n constructor() { }\n\n getCodFormData(step: number, control: string): string | null {\n if (step === 1) return localStorage.getItem(`COD SELF - step1(${control})`);\n if (step === 2) return localStorage.getItem(`COD SELF - step2(${control})`);\n if (step === 3) return localStorage.getItem(`COD SELF - step3(${control})`);\n if (step === 4) return localStorage.getItem(`COD SELF - step4(${control})`);\n\n return null;\n }\n\n setCodFormData(step: number, control: string, value: string) {\n if (step === 1) localStorage.setItem(`COD SELF - step1(${control})`, value);\n if (step === 2) localStorage.setItem(`COD SELF - step2(${control})`, value);\n if (step === 3) localStorage.setItem(`COD SELF - step3(${control})`, value);\n if (step === 4) localStorage.setItem(`COD SELF - step4(${control})`, value);\n }\n\n clearData() {\n let keySessionUser = '606a7d4e73650b75ebb06972e77d6cc4';\n let sessionUser: string | null = localStorage.getItem(keySessionUser);\n localStorage.clear();\n\n if(sessionUser !== null) {\n localStorage.setItem(keySessionUser, sessionUser);\n } else {\n console.log('raro que no haya sesion');\n }\n }\n\n}\n","import { Observable } from \"rxjs\";\nimport { ControlSteps } from \"./cod-self-managed-controls\";\nimport { LocalStorageCodSelfMaganedService } from \"./local-storage-cod.service\";\n\nexport interface localStorageValuesTwo {\n control: string,\n value: any\n}\n\nexport abstract class CodSelfManagedSteps {\n\n public localStorageCOD = new LocalStorageCodSelfMaganedService();\n\n constructor() {}\n\n readAndWriteLS(step: number, control: string): localStorageValuesTwo {\n if (this.localStorageCOD.getCodFormData(step, control)) {\n const value = this.localStorageCOD.getCodFormData(step, control);\n return { control, value };\n } else {\n return { control, value: '' }\n }\n }\n\n setDataInLocalStorage(step: number, control: string, value: any) {\n this.localStorageCOD.setCodFormData(step, control, value);\n }\n\n listenFormChanges(step: number, control: string, obs: Observable<any>) {\n obs.subscribe(value => {\n this.setDataInLocalStorage(step, control, value);\n });\n }\n\n resetLocalStorage(controls: ControlSteps[]) {\n controls.forEach(control => {\n localStorage.removeItem(control.name);\n });\n }\n\n}\n","import { BaseService } from './../../../core/utils/base-service/base.service';\nimport { UserService } from './../../../core/services/user-service/user-service';\nimport { Component, Output, EventEmitter, OnInit, Input, SimpleChanges, OnChanges } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { map } from 'rxjs';\n\n//import services\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { CodSelfManagedControls } from '../../logic/cod-self-managed-controls';\nimport { CodSelfManagedSteps, localStorageValuesTwo } from '../../logic/cod-self-managed-steps';\n\n//import Prime ng\nimport { MessageService } from 'primeng/api';\n\n//import Models\nimport { IUserIPTRqs } from '../../../core/models/user/user-rs.model';\n\n@Component({\n selector: 'app-cod-self-form-step-one',\n templateUrl: './cod-self-form-step-one.component.html',\n styleUrls: ['./cod-self-form-step-one.component.css'],\n})\nexport class CodSelfFormStepOneComponent extends CodSelfManagedSteps implements OnChanges, OnInit {\n\n @Input() userStudent?: IUserIPTRqs;\n\n @Output() completed = new EventEmitter<number>();\n @Output() idTypesChanged = new EventEmitter<any>();\n controls = new CodSelfManagedControls().controls[0];\n codSelfFormStepOne!: FormGroup\n genders: any[] = [];\n stratums: any;\n idTypes: any;\n indicatives: any;\n civilStatus: any;\n countrySelected: any;\n countries: any;\n states: any;\n cities: any;\n grades:any[] = [];\n errorMessage: string = 'Faltan campos por llenar.';\n visible: boolean = false;\n messageInfo='Esta seccion solo es para datos del estudiante.';\n showAgreementSelect: boolean = false;\n agreements=[\n {\n code:2,\n name: \"sin convenio\"\n },\n {\n code:3,\n name: \"Universidad Francisco de Paula Santander\"\n },\n ];\n\n constructor(\n private fb: FormBuilder,\n private parameterService: ParameterService,\n private messageService: MessageService,\n private userService: UserService,\n private baseService:BaseService\n ) {\n super();\n this.initForm();\n }\n\n ngOnInit(): void {\n this.getParameters();\n\n }\n ngOnChanges(changes: SimpleChanges): void {\n this.startLocalStorageWork();\n if (changes['userStudent'] && this.userStudent != null) {\n this.setDataUsers();\n }\n }\n\n initForm() {\n this.codSelfFormStepOne = this.fb.group({\n student_name: ['', [Validators.required]],\n student_last_name:['', [Validators.required]],\n student_id_card_type: ['', [Validators.required], []],\n student_id_card: [{value: '', disabled: true}, [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],\n gender: ['', [Validators.required]],\n birthdate: ['', [Validators.required], []],\n age: ['', [Validators.required], []],\n country: ['', [Validators.required], []],\n state: ['', [Validators.required], []],\n city: ['', [Validators.required], []],\n student_email: ['', [Validators.required, Validators.email]],\n student_phone_indicative: ['', [Validators.required], []],\n student_phone_number: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(15)]],\n grade: ['', [Validators.required]],\n agreement_by_category: [''],\n });\n this.codSelfFormStepOne.controls['grade'].valueChanges.subscribe((grade) => {\n if (grade == 15 || grade == 16) {\n this.showAgreementSelect = true;\n this.codSelfFormStepOne.controls['agreement_by_category'].setValidators([Validators.required]);\n } else {\n this.showAgreementSelect = false;\n this.codSelfFormStepOne.controls['agreement_by_category'].clearValidators();\n this.codSelfFormStepOne.controls['agreement_by_category'].setValue(null);\n }\n this.codSelfFormStepOne.controls['agreement_by_category'].updateValueAndValidity();\n });\n // Calcular edad y setear valor\n this.codSelfFormStepOne.controls['birthdate'].valueChanges.subscribe({\n next: (change) => {\n let today = new Date();\n let birthday = new Date(change);\n let age = today.getFullYear() - birthday.getFullYear();\n let month = today.getMonth() - birthday.getMonth();\n\n if (month < 0 || (month === 0 && today.getDate() < birthday.getDate())) {\n age--;\n }\n if (age < 3) {\n this.errorMessage = 'Fecha de nacimiento no válida'\n this.codSelfFormStepOne.controls['birthdate'].setErrors({\n invalidAge: true\n })\n } else {\n this.codSelfFormStepOne.controls['birthdate'].setErrors(null);\n }\n\n this.codSelfFormStepOne.controls['age'].setValue(age);\n }\n })\n\n }\n getParameters() {\n this.parameterService.getCardTypes('col').subscribe((response) => {\n this.idTypes = response.data;\n this.idTypesChanged.emit(this.idTypes);\n });\n this.parameterService.getIndicatives().subscribe((response) => {\n this.indicatives = response.data;\n });\n this.parameterService.getCountries().subscribe((response) => {\n this.countries = response.data;\n });\n this.parameterService.getAllCities().subscribe((response) => {\n this.cities = response.data;\n });\n this.parameterService.getAllStates().subscribe((response) => {\n this.states = response.data;\n });\n this.parameterService.getGenders().pipe(map((response: any) => response.data)).subscribe((genders: any[]) => {\n genders.forEach(gender => {\n let genderItem = {\n code: gender.code,\n name: gender.name_spanish\n }\n this.genders.push(genderItem)\n })\n });\n this.parameterService.GetAllGradeEducation().pipe\n (map((response: any) => response.data)).subscribe((grades: any[]) => {\n grades.forEach(grade => {\n let gradesItems = {\n code: grade.code,\n name: grade.grade\n }\n this.grades.push(gradesItems)\n });\n });\n }\n\n setDataUsers(){\n this.codSelfFormStepOne.controls['student_name'].setValue(this.userStudent?.name);\n this.codSelfFormStepOne.controls['student_last_name'].setValue(this.userStudent?.last_name);\n this.codSelfFormStepOne.controls['student_id_card_type'].setValue(this.userStudent?.id_card_type);\n this.codSelfFormStepOne.controls['student_id_card'].setValue(this.userStudent?.id_card);\n this.codSelfFormStepOne.controls['country'].setValue(this.userStudent?.city[0]?.country != (1 || null) ? this.userStudent?.city[0]?.country : null);\n this.codSelfFormStepOne.controls['state'].setValue(this.userStudent?.city[0]?.state != (33 || null) ? this.userStudent?.city[0]?.state : null);\n this.codSelfFormStepOne.controls['city'].setValue(this.userStudent?.city[0]?.code != (1 || null) ? this.userStudent?.city[0]?.code : null);\n this.codSelfFormStepOne.controls['gender'].setValue(this.userStudent?.gender);\n this.codSelfFormStepOne.controls['birthdate'].setValue(this.userStudent?.birthdate);\n this.codSelfFormStepOne.controls['student_email'].setValue(this.userStudent?.email);\n this.codSelfFormStepOne.controls['student_phone_indicative'].setValue(this.userStudent?.phone_indicative);\n this.codSelfFormStepOne.controls['student_phone_number'].setValue(this.userStudent?.phone_number);\n\n }\n\n selectCountry(country: any) {\n let iso = '';\n if (country === '2') iso = 'col';\n else if (country === '3') iso = 'ven';\n else if (country === '4') iso = 'usa';\n else iso = '';\n\n if (iso != '') {\n this.codSelfFormStepOne.controls['country'].setValue(country);\n this.parameterService.getStatesByCountry(iso).subscribe((response) => {\n this.states = response.data;\n this.selectState(this.localStorageCOD.getCodFormData(2, 'state'));\n });\n } else {\n this.codSelfFormStepOne.controls['country'].setValue(null);\n }\n this.countrySelected = country;\n }\n\n selectState(state: any) {\n if (state !== 'Departamento o estado') {\n this.getState(state);\n this.codSelfFormStepOne.controls['state'].setValue(state);\n } else {\n this.codSelfFormStepOne.controls['state'].setValue(null);\n this.codSelfFormStepOne.controls['city'].setValue(null);\n this.cities = [];\n }\n }\n\n selectCity(city: any) {\n if (city !== 'Ciudad de residencia') {\n this.codSelfFormStepOne.controls['city'].setValue(city);\n } else {\n this.codSelfFormStepOne.controls['city'].setValue(null);\n }\n }\n\n selectIdType(idType: any) {\n if (idType !== 'Tipo de documento') {\n this.codSelfFormStepOne.controls['student_id_card_type'].setValue(idType);\n } else {\n this.codSelfFormStepOne.controls['student_id_card_type'].setValue(null);\n }\n }\n selectGender(gender: any) {\n if (gender !== 'Género') {\n this.codSelfFormStepOne.controls['gender'].setValue(gender);\n } else {\n this.codSelfFormStepOne.controls['gender'].setValue(null);\n }\n }\n selectIndicatives(indicative: any) {\n if (indicative !== 'Indicativo') {\n this.codSelfFormStepOne.controls['student_phone_indicative'].setValue(indicative);\n } else {\n this.codSelfFormStepOne.controls['student_phone_indicative'].setValue(null);\n }\n }\n selectGrade(grade: any) {\n\n if (grade !== 'Grado Educativo') {\n this.codSelfFormStepOne.controls['grade'].setValue(grade);\n if (grade == 15 || grade == 16) {\n // Si es 15 o 16, mostrar el otro ipt-select\n this.showAgreementSelect = true;\n } else {\n this.showAgreementSelect = false;\n this.codSelfFormStepOne.controls['agreement_by_category'].setValue(null);\n }\n } else {\n this.codSelfFormStepOne.controls['grade'].setValue(null);\n this.codSelfFormStepOne.controls['agreement_by_category'].setValue(null);\n this.showAgreementSelect = false;\n }\n }\n selectAgreement(grade: any) {\n if (grade !== 'Convenio') {\n this.codSelfFormStepOne.controls['agreement_by_category'].setValue(grade);\n } else {\n this.codSelfFormStepOne.controls['agreement_by_category'].setValue(null);\n }\n }\n sendForm() {\n this.codSelfFormStepOne.markAllAsTouched();\n if (this.codSelfFormStepOne.invalid) return;\n const request:any = {\n token: this.baseService.getUserToken(),\n student_name: this.codSelfFormStepOne.controls['student_name'].value,\n student_last_name: this.codSelfFormStepOne.controls['student_last_name'].value,\n student_id_card_type: this.codSelfFormStepOne.controls['student_id_card_type'].value,\n student_id_card: this.codSelfFormStepOne.controls['student_id_card'].value,\n country: this.codSelfFormStepOne.controls['country'].value,\n state: this.codSelfFormStepOne.controls['state'].value,\n city: this.codSelfFormStepOne.controls['city'].value,\n gender: this.codSelfFormStepOne.controls['gender'].value,\n birthdate: this.codSelfFormStepOne.controls['birthdate'].value,\n student_email: this.codSelfFormStepOne.controls['student_email'].value,\n student_phone_indicative: this.codSelfFormStepOne.controls['student_phone_indicative'].value,\n student_phone_number: this.codSelfFormStepOne.controls['student_phone_number'].value,\n grade: this.codSelfFormStepOne.controls['grade'].value,\n agreement_by_category: this.codSelfFormStepOne.controls['agreement_by_category'].value,\n };\n this.userService.updateUser(request).subscribe((response:any)=>{\n })\n\n this.completed.emit(1);\n }\n getState(state: any) {\n this.getCity(state);\n }\n getCity(state: any) {\n this.parameterService.getCitiesByState(state).subscribe((response) => {\n this.cities = response.data;\n this.selectCity(this.localStorageCOD.getCodFormData(1, 'city'));\n });\n }\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValuesTwo = this.readAndWriteLS(1, control.name);\n this.codSelfFormStepOne.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(1, control.name, this.codSelfFormStepOne.controls[control.name].valueChanges);\n });\n }\n showConfirm() {\n if (!this.visible) {\n this.messageService.add({ key: 'confirm', sticky: true, severity: 'success', summary: 'Can you send me the report?', life: 5000 });\n this.visible = true;\n }\n }\n\n onReject() {\n this.messageService.clear('confirm');\n this.visible = false;\n }\n\n\n}\n","<div class=\"container-main\">\n <div class=\"container-form\">\n <!-- <i class=\"pi pi-user-edit icon__tittle\"></i> -->\n <h2>Datos Personales</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"./assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form [formGroup]=\"codSelfFormStepOne\">\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepOne.controls['student_name']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_name'].invalid && codSelfFormStepOne.controls['student_name'].touched\">\n <span class=\"error-message\">Por favor ingresa un nombre válido.</span>\n </div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codSelfFormStepOne.controls['student_last_name']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_last_name'].invalid && codSelfFormStepOne.controls['student_last_name'].touched\">\n <span class=\"error-message\">Por favor ingresa un apellido válido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['student_id_card_type'].value\"\n [control]=\"codSelfFormStepOne.controls['student_id_card_type']\"\n [selectCode]=\"codSelfFormStepOne.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codSelfFormStepOne.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['student_id_card_type'].invalid && codSelfFormStepOne.controls['student_id_card_type'].touched\">\n <span class=\"error-message\">Por favor ingresa un tipo de documento válido.</span>\n </div>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de documento'\"\n [control]=\"codSelfFormStepOne.controls['student_id_card']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_id_card'].invalid && codSelfFormStepOne.controls['student_id_card'].touched\">\n <span class=\"error-message\">Por favor ingresa un documento válido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['gender'].value\"\n [control]=\"codSelfFormStepOne.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'Género'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['gender'].invalid && codSelfFormStepOne.controls['gender'].touched\">\n <span class=\"error-message\">Por favor ingresa un genero válido.</span>\n </div>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codSelfFormStepOne.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['birthdate'].invalid && codSelfFormStepOne.controls['birthdate'].touched\">\n <span class=\"error-message\">Por favor ingresa una fecha mayor de 3 años.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['country'].value\"\n [control]=\"codSelfFormStepOne.controls['country']\"\n [selectCode]=\"codSelfFormStepOne.controls['country'].value === null ? 'País de residencia' : codSelfFormStepOne.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'País de residencia'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['country'].invalid && codSelfFormStepOne.controls['country'].touched\">\n <span class=\"error-message\">Por favor ingresa un pais válido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['state'].value\"\n [control]=\"codSelfFormStepOne.controls['state']\"\n [selectCode]=\"codSelfFormStepOne.controls['state'].value === null ? 'Departamento o estado' : codSelfFormStepOne.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['state'].invalid && codSelfFormStepOne.controls['state'].touched\">\n <span class=\"error-message\">Por favor ingresa un departamento válido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['city'].value\"\n [control]=\"codSelfFormStepOne.controls['city']\"\n [selectCode]=\"codSelfFormStepOne.controls['city'].value === null ? 'Ciudad de residencia' : codSelfFormStepOne.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['city'].invalid && codSelfFormStepOne.controls['city'].touched\">\n <span class=\"error-message\">Por favor ingresa una ciudad válido.</span>\n </div>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electrónico'\"\n [control]=\"codSelfFormStepOne.controls['student_email']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_email'].invalid && codSelfFormStepOne.controls['student_email'].touched\">\n <span class=\"error-message\">Por favor ingresa un email valido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['student_phone_indicative'].value\"\n [control]=\"codSelfFormStepOne.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['student_phone_indicative'].invalid && codSelfFormStepOne.controls['student_phone_indicative'].touched\">\n <span class=\"error-message\">Por favor ingresa un indicativo valido.</span>\n </div>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de teléfono'\"\n [control]=\"codSelfFormStepOne.controls['student_phone_number']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_phone_number'].invalid && codSelfFormStepOne.controls['student_phone_number'].touched\">\n <span class=\"error-message\">Por favor ingresa un indicativo valido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['grade'].value\"\n [control]=\"codSelfFormStepOne.controls['grade']\"\n [data]=\"grades\"\n (eventSelect)=\"selectGrade($event)\"\n [defaultText]=\"'Grado Educativo'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['grade'].invalid && codSelfFormStepOne.controls['grade'].touched\">\n <span class=\"error-message\">Por favor selecciona un grado educativo</span>\n </div>\n <ipt-select\n *ngIf=\"showAgreementSelect\"\n [initialValue]=\"codSelfFormStepOne.controls['agreement_by_category'].value\"\n [control]=\"codSelfFormStepOne.controls['agreement_by_category']\"\n [data]=\"agreements\"\n (eventSelect)=\"selectAgreement($event)\"\n [defaultText]=\"'Convenio'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['agreement_by_category'].invalid && codSelfFormStepOne.controls['agreement_by_category'].touched\">\n <span class=\"error-message\">Por favor selecciona un convenio valido</span>\n </div>\n </form>\n\n <div class=\"flex justify-content-end mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n [disabled]=\"!codSelfFormStepOne.valid\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n\n</div>\n","import { Component, Output, EventEmitter, OnInit, Input } from '@angular/core';\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\n\n//import services\nimport { AcademicService } from './../../../core/services/academic-service/academic.service';\nimport { BaseService } from './../../../core/utils/base-service/base.service';\nimport { CodSelfManagedControls } from '../../logic/cod-self-managed-controls';\nimport { CodSelfManagedSteps, localStorageValuesTwo } from '../../logic/cod-self-managed-steps';\n\n//import Prime ng\nimport { MessageService } from 'primeng/api';\n\n//import Models\nimport { IweekDaysRq } from '../../../core/models/academic/academic.component';\n\n@Component({\n selector: 'app-cod-self-form-step-two',\n templateUrl: './cod-self-form-step-two.component.html',\n styleUrls: ['./cod-self-form-step-two.component.css'],\n})\nexport class CodSelfFormStepTwoComponent extends CodSelfManagedSteps implements OnInit {\n\n @Output() completed = new EventEmitter<number>();\n\n @Input() scorePlacementTest?:any;\n @Input() codPrevious?:any;\n\n controls = new CodSelfManagedControls().controls[1];\n codSelfFormStepTwo!: FormGroup;\n startDate1!: string;\n visible: boolean = false;\n messageInfo:string = 'Busca un plan de acuerdo a tu disponibilidad.';\n stateOptionsModality: any[] = [\n { code: 1, key: 'pr', name: 'Presencial'},\n { code: 2, key: 'vi', name: 'Virtual'},\n ];\n schedules: IweekDaysRq[] = [\n {code: 1, name: 'Mañana', key: 'ma' },\n {code: 2, name: 'Tarde', key: 'ta' },\n {code: 3, name: 'Noche', key: 'no' },\n ];\n OptionPlacementTest: any[]=[\n {code: 1, key: 'si', name: 'Si'},\n {code: 2, key: 'ni', name: 'No'},\n ];\n selectedSchedules: IweekDaysRq[] = [];\n disableweekdays: boolean[] = [];\n selectedModality: IweekDaysRq[]=[]\n selectedOptionPlacementTest: IweekDaysRq[]=[];\n messageAlertSchedules = false;\n messageAlertModality = false;\n messageAlertPlacementTest = false;\n SearchData = true;\n dataCourse: any[] = [];\n isLoading = true;\n courseSelect?: any;\n visibleGroupReview = false;\n\n constructor(\n private fb: FormBuilder,\n private messageService: MessageService,\n private baseService: BaseService,\n private academicService: AcademicService\n ) {\n super();\n this.initForm();\n }\n\n ngOnInit(): void {\n this.startLocalStorageWork();\n this.isLoading=true;\n }\n\n initForm() {\n\n this.codSelfFormStepTwo = this.fb.group({\n academic_plan: ['', [Validators.required]],\n course_type:['', [Validators.required]],\n english_level: [{value: '', disabled: true}, [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],\n availible_courses: ['', [Validators.required]],\n course_modality: ['', [Validators.required],],\n\n });\n }\n\n back() {\n this.completed.emit(0);\n }\n sendForm() {\n this.completed.emit(2);\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValuesTwo = this.readAndWriteLS(2, control.name);\n this.codSelfFormStepTwo.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(2, control.name, this.codSelfFormStepTwo.controls[control.name].valueChanges);\n });\n }\n\n searchAvalaibleCourse(){\n this.isLoading=true;\n const age = Number(this.localStorageCOD.getCodFormData(1, 'age'))\n const grade = Number(this.localStorageCOD.getCodFormData(1, 'grade'))\n const agreement = Number(this.localStorageCOD.getCodFormData(1, 'agreement_by_category'))\n const userCode = this.baseService.getUserCode();\n\n const request: any = {\n code_user: userCode,\n codPrevious: this.codPrevious,\n scorePlacementTest: this.scorePlacementTest,\n age: age,\n grade: grade,\n agreement: agreement,\n modality: this.selectedModality,\n schedules: this.selectedSchedules,\n decitionPlacementTest: this.selectedOptionPlacementTest,\n token: this.baseService.getUserToken()\n\n }\n this.academicService.obtainPlansCourseAvalaibleForPosibleStudentByAgeAndGrade(request).subscribe((response)=>{\n this.SearchData = false;\n this.dataCourse = response.data;\n this.isLoading = false;\n this.visibleGroupReview = true\n })\n }\n\n onReject() {\n this.messageService.clear('confirm');\n this.visible = false;\n }\n\n showConfirm() {\n if (!this.visible) {\n this.messageService.add({ key: 'confirm', sticky: true, severity: 'success', summary: 'Can you send me the report?', life: 5000 });\n this.visible = true;\n }\n }\n\n selectSchedules(eve: IweekDaysRq[]) {\n this.selectedSchedules = eve\n if (this.selectedSchedules.length === 0) {\n this.messageAlertSchedules = true;\n }else{\n this.messageAlertSchedules = false\n }\n }\n\n selectModality(eve: IweekDaysRq[]){\n this.selectedModality = eve\n if (this.selectedModality.length === 0) {\n this.messageAlertModality = true;\n }else{\n this.messageAlertModality = false\n }\n }\n selectOpcionsPlacementTest(eve: IweekDaysRq[]){\n this.selectedOptionPlacementTest = eve\n if (this.selectedOptionPlacementTest.length === 0) {\n this.messageAlertPlacementTest = true;\n }else{\n this.messageAlertPlacementTest = false\n }\n }\n\n filterAgain(){\n this.SearchData = true\n }\n\n courseCode(codeCourse: any){\n this.courseSelect = codeCourse;\n this.visibleGroupReview = false;\n this.SearchData = false;\n this.setValuesForm();\n }\n\n setValuesForm(){\n this.codSelfFormStepTwo.controls['academic_plan'].setValue(this.courseSelect.course_type.academic_plan.code);\n this.codSelfFormStepTwo.controls['course_type'].setValue(this.courseSelect.course_type?.code);\n // this.codSelfFormStepTwo.controls['agreement_by_category'].setValue(this.courseSelect.agreement?.code);\n this.codSelfFormStepTwo.controls['english_level'].setValue(this.courseSelect.english_level?.code);\n this.codSelfFormStepTwo.controls['availible_courses'].setValue(this.courseSelect.code);\n this.codSelfFormStepTwo.controls['course_modality'].setValue(this.courseSelect.course_modality.code);\n }\n\n openTestInNewTab(): void {\n window.open('https://test.inglesparatodos.edu.co/', '_blank');\n }\n}\n","<div class=\"container-main\">\n <div class=\"container-form\">\n <div class=\"title_step\">\n <h2 class=\"title\">Planes</h2>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mt-4 mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n </div>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"./assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n <div class=\"container-button\" *ngIf=\"!SearchData\">\n <ipt-button\n [label]=\"'Filtrar'\"\n (onClick)=\"filterAgain()\"\n [primary]=\"true\">\n </ipt-button>\n </div>\n\n <div *ngIf=\"SearchData\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"Placement test\">\n <span>Tienes un Placement Test realizado. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n <span>\"NO APLICA PLACEMENT TEST PARA PLANES TECNICOS\"</span>\n <div class=\"containerDay mt-3\">\n <h3>¿Deseas iniciar en este nivel {{ scorePlacementTest?.level_inglish_next.name }}?</h3>\n\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest == null\" header=\"Prueba diagnóstico Placement Test\">\n <span>Presenta totalmente gratis esta prueba para conocer tu nivel de inglés y nuestras ofertas para ti.</span>\n <div class=\"containerDay mt-3\">\n <ipt-button\n [label]=\"'Presentar Test'\"\n (onClick)=\"openTestInNewTab()\"\n [primary]=\"true\">\n </ipt-button>\n\n <div class=\"flex flex-column gap-3\">\n\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pTooltip=\"Buscar Planes\"\n tooltipPosition=\"left\"\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n\n\n <ipt-card-select-course-self-cod-managed\n *ngIf=\"courseSelect != null\"\n [courseSelect]=\"courseSelect\">\n </ipt-card-select-course-self-cod-managed>\n\n <article *ngIf=\"visibleGroupReview\" class=\"cards-container\">\n\n <ipt-card-course-self-cod-managed\n [CourseData]=\"dataCourse\"\n (codeCourse)=\"courseCode($event)\"\n [isLoading]=\"isLoading\">\n </ipt-card-course-self-cod-managed>\n </article>\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n [disabled]=\"!codSelfFormStepTwo.valid || courseSelect === null\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n </div>\n</div>\n\n\n\n","import { Injectable } from '@angular/core';\nimport Swal from 'sweetalert2';\n\nexport interface CalculateQuotesParams {\n date: Date;\n quotaValues: number;\n quotaTimes: any;\n totalPrice: any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CalculateQuotesService {\n\n monthsDays: number[] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n constructor() { }\n\n calculateQuotes(params: CalculateQuotesParams): any[] {\n let dataFinancing: any[] = [];\n let index = 1; // Indicador de cant. de cuotas\n let dateJs = new Date(params.date);\n let isEndMonth = false;\n\n dateJs.setMilliseconds(dateJs.getMilliseconds() + (1000*3600*24));\n\n isEndMonth = this.monthsDays[dateJs.getMonth()] === dateJs.getDate();\n\n if (dateJs.getDay() === 0) {\n Swal.fire({\n title: 'Fecha inválida',\n text: 'Debe seleccionar un día de la semana diferente al domingo',\n icon: 'error'\n })\n } else {\n\n let enrollment: any[] = [\n index,\n Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0\n }).format(Math.round(parseFloat(params.totalPrice.toString()))),\n this.getStringDate(dateJs)\n ];\n\n let quota: any[] = [\n index,\n Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0\n }).format(Math.round(parseFloat(params.quotaValues.toString()))),\n this.getStringDate(dateJs)\n ];\n dataFinancing.push(enrollment);\n\n dataFinancing.push(quota);\n\n while (index < params.quotaTimes) {\n index = index + 1;\n let newJsDate = this.setPlusOneMonth(dateJs, isEndMonth);\n let row: any[] = [\n index,\n Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0\n }).format(Math.round(parseFloat(params.quotaValues.toString()))),\n this.getStringDate(newJsDate[newJsDate.length - 1])\n ];\n dataFinancing.push(row)\n\n dateJs = newJsDate[0];\n }\n }\n return dataFinancing;\n }\n\n setPlusOneMonth(originDate: Date, isEndMonth: boolean): Date[] {\n let response: Date [] = [];\n\n let oneDayMilis = 1000 * 3600 * 24;\n\n let day = isEndMonth ? this.monthsDays[(originDate.getMonth() + 1)%12]: originDate.getDate();\n let plusMonthDate: Date = new Date(originDate.getFullYear(), originDate.getMonth() + 1, day);\n\n response.push(new Date(originDate.getFullYear(), originDate.getMonth() + 1, day));\n\n while(plusMonthDate.getDay() === 0) {\n plusMonthDate.setMilliseconds(originDate.getMilliseconds() - oneDayMilis);\n }\n\n response.push(plusMonthDate);\n return response;\n }\n\n // setPlusOneMonth2(originDate: Date, isEndMonth: boolean): Date[] {\n // let response: Date[] = [];\n // let oneDayMilis = 1000 * 3600 * 24;\n\n // let day = isEndMonth ? this.monthsDays[(originDate.getMonth() + 1) % 12] : originDate.getDate();\n // let plusMonthDate: Date = new Date(originDate.getFullYear(), originDate.getMonth() + 1, day);\n\n // while (plusMonthDate.getDay() === 0) {\n // plusMonthDate.setMilliseconds(plusMonthDate.getMilliseconds() - oneDayMilis);\n // }\n\n // response.push(plusMonthDate);\n // response.push(new Date(originDate.getFullYear(), originDate.getMonth() + 1, day + 1));\n // return response;\n // }\n\n\n getStringDate(originDate: Date) {\n let month = originDate.getMonth()+1;\n let stringMonth = month < 10 ? '0'+month : month;\n return originDate.getFullYear() + '-' + stringMonth + '-' + originDate.getDate();\n }\n\n}\n","import { Component, EventEmitter, Output, OnInit } from '@angular/core';\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\n\n//import services\nimport { CodSelfManagedControls } from './../../logic/cod-self-managed-controls';\nimport { localStorageValuesTwo } from './../../logic/cod-self-managed-steps';\nimport { CalculateQuotesParams, CalculateQuotesService } from './../../logic/calculate-quotes.service';\nimport { BaseService } from './../../../core/utils/base-service/base.service';\nimport { IObtainCodPricesRq } from './../../../core/models/commercial/commercial.model';\nimport { CodSelfManagedSteps } from '../../logic/cod-self-managed-steps';\nimport { CommercialService } from '../../../core/services/commercial-service/comercial.service';\n\n//import Prime ng and Library Alert\nimport { MessageService } from 'primeng/api';\nimport Swal from 'sweetalert2';\n\n@Component({\n selector: 'app-cod-self-form-step-three',\n templateUrl: './cod-self-form-step-three.component.html',\n styleUrls: ['./cod-self-form-step-three.component.css'],\n})\nexport class CodSelfFormStepThreeComponent extends CodSelfManagedSteps implements OnInit {\n\n @Output() completed = new EventEmitter<number>();\n @Output() financingData = new EventEmitter<any>();\n\n controls = new CodSelfManagedControls().controls[2];\n messageInfo:string = \"Selecciona un plan de pagos\";\n visible: boolean = false;\n codSelfFormStepThree!: FormGroup;\n paymentMethods: any[] = [\n { code: '1', name: 'Financiado' },\n { code: '2', name: 'Contado' },\n ];\n feeResponse: boolean = false;\n thereArePlans: boolean = false;\n dataPrices:any;\n isFinancing: boolean = false;\n dataFinancingMaster: any[] = [];\n dataFinancing: any[] = [];\n selectedRow: number | null = null;\n errorMessage: string = 'Faltan campos por llenar.';\n totalInitialPaymentSpan?: number;\n isLoadingSelectLevels = false;\n totalInitialPayment?: number;\n\n constructor(\n private fb: FormBuilder,\n private messageService: MessageService,\n private commercialService: CommercialService,\n private baseService: BaseService,\n private codFormControls: CodSelfManagedControls,\n private calculateQuotesService: CalculateQuotesService) {\n super();\n this.initForm();\n }\n\n initForm() {\n this.codSelfFormStepThree = this.fb.group({\n program_price: [{ value: '', disabled: true }, [Validators.required]],\n payment_date: ['' , [Validators.required]],\n payment_method: ['', [Validators.required]],\n quota_times: [{ value: '', disabled: true }, [Validators.required]],\n total_price: [{ value: '', disabled: true }, [Validators.required]],\n paid_level: ['', [Validators.required]],\n quota_price: ['', [Validators.required]],\n fee_number: ['', [Validators.required]],\n selectedRow: [null],\n });\n this.listenPaymentMethodField();\n }\n ngOnInit(): void {\n this.startLocalStorageWork();\n const currentDate = new Date().toISOString().split('T')[0];\n this.codSelfFormStepThree.controls['payment_date'].setValue(currentDate)\n\n this.codSelfFormStepThree.get('payment_method')?.valueChanges.subscribe(() => {\n this.selectedRow = null;\n this.codSelfFormStepThree.controls['selectedRow'].setValue(null);\n this.codSelfFormStepThree.controls['fee_number'].setValue(null);\n this.codSelfFormStepThree.controls['quota_price'].setValue(null);\n this.codSelfFormStepThree.controls['paid_level'].setValue(null);\n this.codSelfFormStepThree.controls['selectedRow'].setValue(null);\n });\n }\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValuesTwo = this.readAndWriteLS(3, control.name);\n this.codSelfFormStepThree.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(3, control.name, this.codSelfFormStepThree.controls[control.name].valueChanges);\n });\n }\n\n listenPaymentMethodField() {\n const control = this.codSelfFormStepThree.get('payment_method');\n control?.valueChanges.subscribe((change) => {\n // Financiado\n if (change === '1') {\n // Poner validaciones\n this.codSelfFormStepThree.controls['program_price'].setValidators([Validators.required]);\n this.codSelfFormStepThree.controls['payment_date'].setValidators([Validators.required]);\n this.codSelfFormStepThree.controls['quota_times'].setValidators([Validators.required]);\n this.codSelfFormStepThree.controls['total_price'].setValidators([Validators.required]);\n\n this.updateValueAndValidity();\n this.updateGlobalControls(change)\n }\n\n // de contado\n if (change === '2') {\n // Quitar las validaciones\n this.codSelfFormStepThree.controls['program_price'].setValidators([Validators.required]);\n this.codSelfFormStepThree.controls['payment_date'].setValidators([Validators.required]);\n this.codSelfFormStepThree.controls['quota_times'].clearValidators();\n this.codSelfFormStepThree.controls['total_price'].setValidators([Validators.required]);\n\n this.updateValueAndValidity();\n this.updateGlobalControls(change)\n }\n });\n }\n updateGlobalControls(change: string) {\n let controls = this.controls.filter(control => control.name !== 'payment_method');\n controls.forEach(control => {\n if (change === '1') this.codFormControls.changeValue(3, control.name, true)\n if (change === '2') {\n if (control.name === 'quota_times') this.codFormControls.changeValue(3, control.name, false);\n }\n });\n }\n onReject() {\n this.messageService.clear('confirm');\n this.visible = false;\n }\n\n showConfirm() {\n if (!this.visible) {\n this.messageService.add({ key: 'confirm', sticky: true, severity: 'success', summary: 'Can you send me the report?', life: 5000 });\n this.visible = true;\n }\n }\n\n selectPaymentMethod(paymentMethod: any) {\n this.feeResponse = true;\n this.thereArePlans = false;\n\n if (paymentMethod !== '') {\n const request: IObtainCodPricesRq = {\n token: this.baseService.getUserToken(),\n course_type: Number(this.localStorageCOD.getCodFormData(2, 'course_type')),\n agreement: Number(this.localStorageCOD.getCodFormData(1, 'agreement_by_category')),\n course_modality: Number(this.localStorageCOD.getCodFormData(2, 'course_modality')),\n payment_method: parseInt(paymentMethod)\n }\n this.commercialService.ObtainCodPricesCodSelfManaged(request).subscribe((response)=> {\n if (response.data != null) {\n this.dataPrices = response.data;\n this.feeResponse = false;\n this.thereArePlans = true;\n }else {\n this.thereArePlans = false;\n this.feeResponse = false;\n Swal.fire({\n position: 'center',\n icon: 'warning',\n title:\n '<p style=\"font-family: Poppins\"\">Oops.. no hay planes de pagos, \\n en el curso elegido.</p>',\n showConfirmButton: false,\n timer: 3000,\n });\n this.clearInputPayment();\n }\n });\n this.codSelfFormStepThree.controls['payment_method'].setValue(paymentMethod);\n } else {\n this.codSelfFormStepThree.controls['payment_method'].setValue(null);\n }\n }\n\n clearInputPayment(){\n this.codSelfFormStepThree.controls['program_price'].setValue(null);\n this.codSelfFormStepThree.controls['quota_times'].setValue(null);\n this.codSelfFormStepThree.controls['total_price'].setValue(null);\n }\n back() {\n this.completed.emit(1);\n }\n\n sendForm() {\n\n this.completed.emit(3);\n }\n\n showTable() {\n this.isLoadingSelectLevels = true;\n this.isFinancing = true;\n this.financingData.emit(null);\n const total_price = this.codSelfFormStepThree.controls['total_price'].value;\n if ((total_price === 'null') || this.codSelfFormStepThree.invalid) {\n Swal.fire({\n title: 'Error table',\n text: 'Debes ingresar el monto total de la matrícula y la cuota inicial',\n icon: 'error'\n })\n return;\n }\n\n // Calcular cuotas\n this.dataFinancing = [];\n\n let params: CalculateQuotesParams = {\n date: new Date(this.codSelfFormStepThree.controls['payment_date'].value),\n quotaValues: Number(this.codSelfFormStepThree.controls['quota_price'].value),\n quotaTimes: Number(this.codSelfFormStepThree.controls['fee_number'].value),\n totalPrice: this.codSelfFormStepThree.controls['total_price'].value,\n }\n\n this.dataFinancingMaster = this.calculateQuotesService.calculateQuotes(params);\n if (this.dataFinancingMaster.length > 1) {\n\n const enrollmentValue = this.dataFinancingMaster[0][1];\n const firstQuotaValue = this.dataFinancingMaster[1][1];\n this.totalInitialPaymentSpan = parseFloat(enrollmentValue.replace(/[^\\d.-]/g, '')) + parseFloat(firstQuotaValue.replace(/[^\\d.-]/g, ''));\n\n const enrollmentValueTwo = parseFloat(this.dataFinancingMaster[0][1].replace(/[^\\d.-]/g, ''));\n const firstQuotaValueTwo = parseFloat(this.dataFinancingMaster[1][1].replace(/[^\\d.-]/g, ''));\n this.totalInitialPayment = enrollmentValueTwo + firstQuotaValueTwo;\n\n const totalInitialPaymentInteger = Math.round(this.totalInitialPayment);\n\n const formattedTotalInitialPayment = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD',minimumFractionDigits: 0 }).format(totalInitialPaymentInteger);\n\n const combinedRecord = [\n this.dataFinancingMaster[0][0],\n formattedTotalInitialPayment,\n this.dataFinancingMaster[0][2]\n ];\n this.dataFinancing = [combinedRecord, ...this.dataFinancingMaster.slice(2)];\n }\n this.isFinancing = true;\n this.financingData.emit(this.dataFinancingMaster);\n this.isLoadingSelectLevels = false;\n }\n\n selectLevels(dataPayment: any, rowIndex: number){\n rowIndex\n if (this.codSelfFormStepThree.get('payment_method')?.value == 1) {\n this.selectedRow = rowIndex;\n this.codSelfFormStepThree.controls['selectedRow'].setValue(rowIndex);\n this.codSelfFormStepThree.controls['quota_times'].setValue(dataPayment.code);\n this.codSelfFormStepThree.controls['total_price'].setValue(dataPayment.enrollment);\n this.codSelfFormStepThree.controls['program_price'].setValue(dataPayment.financed_price);\n this.codSelfFormStepThree.controls['paid_level'].setValue(dataPayment.paid_level - 1);\n this.codSelfFormStepThree.controls['fee_number'].setValue(dataPayment.fee_number);\n this.codSelfFormStepThree.controls['quota_price'].setValue(dataPayment.quota_price);\n this.updateValueAndValidity();\n this.showTable();\n } else if(this.codSelfFormStepThree.get('payment_method')?.value == 2){\n this.selectedRow = rowIndex;\n this.codSelfFormStepThree.controls['selectedRow'].setValue(rowIndex);\n this.codSelfFormStepThree.controls['quota_times'].setValue(dataPayment.code);\n this.codSelfFormStepThree.controls['total_price'].setValue(dataPayment.enrollment);\n this.codSelfFormStepThree.controls['program_price'].setValue(dataPayment.normal_price);\n this.codSelfFormStepThree.controls['paid_level'].setValue(dataPayment.paid_level - 1);\n this.codSelfFormStepThree.controls['fee_number'].setValue(dataPayment.fee_number);\n this.codSelfFormStepThree.controls['quota_price'].setValue(dataPayment.quota_price);\n this.updateValueAndValidity();\n }\n }\n\n updateValueAndValidity() {\n this.codSelfFormStepThree.controls['program_price'].updateValueAndValidity();\n this.codSelfFormStepThree.controls['payment_date'].updateValueAndValidity();\n this.codSelfFormStepThree.controls['quota_times'].updateValueAndValidity();\n this.codSelfFormStepThree.controls['total_price'].updateValueAndValidity();\n }\n\n}\n","<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Pagos</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"./assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n <div class=\"container__body__select flex justify-content-center flex-wrap\">\n\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepThree\" class=\"grid mt-2 flex flex-column align-items-center\">\n\n <div class=\"container_selects col-12\">\n <ipt-select\n [initialValue]=\"codSelfFormStepThree.controls['payment_method'].value\"\n [control]=\"codSelfFormStepThree.controls['payment_method']\"\n (eventSelect)=\"selectPaymentMethod($event)\"\n [data]=\"paymentMethods\"\n [defaultText]=\"'Método de pago'\"\n ></ipt-select>\n <ipt-loader *ngIf=\"feeResponse\"></ipt-loader>\n\n <div class=\"col-12\" *ngIf=\"thereArePlans\">\n <p-table\n [value]=\"dataPrices\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n Click en niveles a cancelar\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\"></th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cancelar</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cuotas</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data let-rowIndex=\"rowIndex\">\n <tr [class.selected-row]=\"selectedRow === rowIndex\" (click)=\"selectLevels(data, rowIndex)\">\n <td class=\"pt-0 pb-0 text-center\">\n <p-radioButton [value]=\"rowIndex\" formControlName=\"selectedRow\"></p-radioButton>\n </td>\n <td class=\"pt-1 pb-1\">{{ data.paid_level }} {{ data.paid_level == 1 ? \"Nivel\" : \"Niveles\"}}</td>\n <td class=\"pt-1 pb-1 text-center\">{{ data.fee_number }}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n\n <div class=\"container_selects col-12\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Monto total de la matrícula'\"\n [control]=\"codSelfFormStepThree.controls['total_price']\"\n [withPipe]=\"true\"\n ></ipt-input>\n </div>\n\n <div class=\"container_selects col-12\">\n <ipt-input\n [withPipe]=\"true\"\n [inputType]=\"'text'\"\n [control]=\"codSelfFormStepThree.controls['program_price']\"\n [placeHolder]=\"'Valor total del programa'\"\n ></ipt-input>\n </div>\n\n <div class=\"flex justify-content-center flex-wrap m-2\">\n </div>\n\n <!-- Tabla de financiación -->\n <div class=\"col-12\" *ngIf=\"codSelfFormStepThree.controls['payment_method'].value === '1' && isFinancing\">\n <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n </div>\n <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n <span><strong>NOTA:</strong> Deberá pagar la matrícula y la primera cuota <strong>(total: ${{ totalInitialPaymentSpan }})</strong> para completar el proceso de inscripción.</span><br>\n <span>Recuerda que las fechas cambian de acuerdo a la fecha que comienza el plan</span>\n </div>\n </div>\n\n <p-table\n *ngIf=\"!isLoadingSelectLevels\"\n [value]=\"dataFinancing\"\n [tableStyle]=\"{'min-width': '100%'}\"\n [rowHover]=\"true\"\n >\n <ng-template pTemplate=\"caption\">\n <div class=\"flex align-items-center\">\n Cálculo de cuotas\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">#</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Valor</th>\n <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Fecha</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td class=\"p-0 text-center text-sm\">{{ data[0] }}</td>\n <td class=\"p-0 text-center text-sm\">{{ data[1] }}</td>\n <td class=\"p-0 text-center text-sm\">{{ data[2] }}</td>\n </tr>\n </ng-template>\n </p-table>\n <ipt-loader *ngIf=\"isLoadingSelectLevels\"></ipt-loader>\n </div>\n\n </form>\n </div>\n\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n [disabled]=\"!codSelfFormStepThree.valid\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Output, EventEmitter, OnInit, Input } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormControl, AbstractControl, ValidatorFn } from '@angular/forms';\nimport { MessageService } from 'primeng/api';\nimport { IweekDaysRq } from './../../../core/models/academic/academic.component';\nimport { CodSelfManagedSteps, localStorageValuesTwo } from '../../logic/cod-self-managed-steps';\nimport { CodSelfManagedControls } from '../../logic/cod-self-managed-controls';\n\n@Component({\n selector: 'app-cod-self-form-step-four',\n templateUrl: './cod-self-form-step-four.component.html',\n styleUrls: ['./cod-self-form-step-four.component.css'],\n})\nexport class CodSelfFormStepFourComponent extends CodSelfManagedSteps implements OnInit {\n\n @Input() idTypes: any;\n @Output() completed = new EventEmitter<number>();\n @Output() action = new EventEmitter<string>();\n\n controls = new CodSelfManagedControls().controls[3];\n messageInfo: string = \"Datos de facturacion de acuerdo a tu eleccion\";\n visible: boolean = false;\n codSelfFormStepFour!: FormGroup;\n selectedOptionPayments?: IweekDaysRq;\n messageAlertPlacementTest = false;\n disableweekdays: boolean[] = [];\n isSelectionOptionPayments = true;\n isEditBillingData = true;\n OptionPayments: any[] = [\n { code: 1, key: 'in', name: 'Instalaciones' },\n // { code: 2, key: 'tr', name: 'Transferencia' },\n { code: 3, key: 'ps', name: 'Pasarela pagos' },\n ];\n\n studentIdCardType = new FormControl();\n\n constructor(\n private fb: FormBuilder,\n private messageService: MessageService,\n private codFormControls: CodSelfManagedControls,\n ) {\n super();\n this.initForm();\n }\n\n ngOnInit(): void {\n this.startLocalStorageWork();\n this.subscribeToStudentIdCardTypeChanges();\n this.getDataUser();\n }\n\n initForm() {\n this.codSelfFormStepFour = this.fb.group({\n optionsPayments: ['', [Validators.required]],\n invoicing_name: ['', [Validators.required]],\n invoicing_Apellido: ['', [Validators.required]],\n invoicing_idType: ['', [Validators.required]],\n invoicing_document: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(20), Validators.pattern(/^[0-9]*$/)]],\n });\n }\n\n subscribeToStudentIdCardTypeChanges() {\n this.studentIdCardType.valueChanges.subscribe(value => {\n this.updateBillingDataFields(value);\n });\n }\n\n getDataUser() {\n const typeIdCard = this.localStorageCOD.getCodFormData(1, 'student_id_card_type');\n this.studentIdCardType.setValue(typeIdCard);\n }\n\n updateBillingDataFields(typeIdCard: string | null) {\n if (typeIdCard != null && typeIdCard != \"2\") {\n const nameStudent = this.localStorageCOD.getCodFormData(1, 'student_name');\n const lastNameStudent = this.localStorageCOD.getCodFormData(1, 'student_last_name');\n const typeIdCardStudent = this.localStorageCOD.getCodFormData(1, 'student_id_card_type');\n const idCardStudent = this.localStorageCOD.getCodFormData(1, 'student_id_card');\n\n\n this.codSelfFormStepFour.controls['invoicing_name'].setValue(nameStudent);\n this.codSelfFormStepFour.controls['invoicing_Apellido'].setValue(lastNameStudent);\n this.codSelfFormStepFour.controls['invoicing_idType'].setValue(typeIdCardStudent);\n this.codSelfFormStepFour.controls['invoicing_document'].setValue(idCardStudent);\n } else {\n // Limpia los campos si el tipo de documento es \"2\"\n this.codSelfFormStepFour.controls['invoicing_name'].setValue('');\n this.codSelfFormStepFour.controls['invoicing_Apellido'].setValue('');\n this.codSelfFormStepFour.controls['invoicing_idType'].setValue('');\n this.codSelfFormStepFour.controls['invoicing_document'].setValue('');\n }\n }\n\n back() {\n if (!this.isSelectionOptionPayments && !this.isEditBillingData) {\n this.isEditBillingData = true;\n } else if (!this.isSelectionOptionPayments && this.isEditBillingData) {\n this.isSelectionOptionPayments = true;\n } else {\n this.completed.emit(2);\n }\n }\n\n next() {\n if (this.isSelectionOptionPayments) {\n this.isSelectionOptionPayments = false;\n } else if (!this.isEditBillingData) {\n this.isEditBillingData = true;\n } else {\n this.sendForm();\n }\n }\n\n startLocalStorageWork() {\n this.controls.forEach(control => {\n let localStorageValue: localStorageValuesTwo = this.readAndWriteLS(4, control.name);\n this.codSelfFormStepFour.controls[control.name].setValue(localStorageValue.value);\n this.listenFormChanges(4, control.name, this.codSelfFormStepFour.controls[control.name].valueChanges);\n });\n }\n\n editBillingData() {\n this.isEditBillingData = false;\n }\n\n updateDatosBillingData() {\n this.isEditBillingData = true;\n }\n\n sendForm() {\n this.codSelfFormStepFour.markAllAsTouched();\n this.action.emit('create');\n }\n\n onReject() {\n this.messageService.clear('confirm');\n this.visible = false;\n }\n\n showConfirm() {\n if (!this.visible) {\n this.messageService.add({ key: 'confirm', sticky: true, severity: 'success', summary: 'Can you send me the report?', life: 5000 });\n this.visible = true;\n }\n }\n\n selectOpcionsPayments(eve: IweekDaysRq) {\n this.selectedOptionPayments = eve;\n this.isSelectionOptionPayments = false;\n\n if (this.selectedOptionPayments !== null) {\n this.codSelfFormStepFour.controls['optionsPayments'].setValue(this.selectedOptionPayments.code);\n\n if (this.selectedOptionPayments.code === 1) { // Instalaciones\n this.addValidators();\n } else if (this.selectedOptionPayments.code === 3) { // Pasarela Pago\n this.removeValidators();\n }\n\n // Aplicar el validador personalizado basado en la opción seleccionada\n this.codSelfFormStepFour.setValidators(paymentOptionValidator(this.selectedOptionPayments));\n this.codSelfFormStepFour.updateValueAndValidity();\n this.updateGlobalControls(this.selectedOptionPayments.code);\n } else {\n this.codSelfFormStepFour.controls['optionsPayments'].setValue(null);\n }\n }\n\n addValidators() {\n this.codSelfFormStepFour.controls['invoicing_name'].setValidators([Validators.required]);\n this.codSelfFormStepFour.controls['invoicing_Apellido'].setValidators([Validators.required]);\n this.codSelfFormStepFour.controls['invoicing_idType'].setValidators([Validators.required]);\n this.codSelfFormStepFour.controls['invoicing_document'].setValidators([Validators.required, Validators.minLength(5), Validators.maxLength(20), Validators.pattern(/^[0-9]*$/)]);\n this.codSelfFormStepFour.controls['invoicing_name'].updateValueAndValidity();\n this.codSelfFormStepFour.controls['invoicing_Apellido'].updateValueAndValidity();\n this.codSelfFormStepFour.controls['invoicing_idType'].updateValueAndValidity();\n this.codSelfFormStepFour.controls['invoicing_document'].updateValueAndValidity();\n }\n\n removeValidators() {\n this.codSelfFormStepFour.controls['invoicing_name'].clearValidators();\n this.codSelfFormStepFour.controls['invoicing_Apellido'].clearValidators();\n this.codSelfFormStepFour.controls['invoicing_idType'].clearValidators();\n this.codSelfFormStepFour.controls['invoicing_document'].clearValidators();\n this.codSelfFormStepFour.controls['invoicing_name'].updateValueAndValidity();\n this.codSelfFormStepFour.controls['invoicing_Apellido'].updateValueAndValidity();\n this.codSelfFormStepFour.controls['invoicing_idType'].updateValueAndValidity();\n this.codSelfFormStepFour.controls['invoicing_document'].updateValueAndValidity();\n }\n\n selectIdType(idType: any) {\n if (idType !== 'Tipo de documento') {\n this.codSelfFormStepFour.controls['invoicing_idType'].setValue(idType);\n } else {\n this.codSelfFormStepFour.controls['invoicing_idType'].setValue(null);\n }\n }\n\n getViewBasedOnPaymentOption(): string {\n if (this.selectedOptionPayments?.code === 1) {\n return 'in';\n } else if (this.selectedOptionPayments?.code === 3) {\n return 'ps';\n }\n return 'default';\n }\n\n getIdTypeDescription(idType: string): string {\n switch (idType) {\n case '0':\n return 'N/A';\n case '1':\n return 'C.C';\n case '2':\n return 'T.I';\n case '3':\n return 'C.E';\n case '4':\n return 'P.E.P';\n case '5':\n return 'R.U.M';\n case '6':\n return 'P.P.T';\n case '7':\n return 'P.A';\n case '8':\n return 'R.C';\n case '9':\n return 'C.D';\n default:\n return '';\n }\n }\n updateGlobalControls(change: number) {\n let controls = this.controls.filter(control => control.name !== 'optionsPayments');\n controls.forEach(control => {\n if (change === 1) this.codFormControls.changeValue(4, control.name, true)\n if (change === 3) this.codFormControls.changeValue(4, control.name, false)\n });\n }\n}\n\n\n// Definición de la función de validador personalizada\nfunction paymentOptionValidator(selectedOptionPayments: IweekDaysRq): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (selectedOptionPayments?.code === 1) { // Instalaciones\n if (!control.get('invoicing_name')?.value || !control.get('invoicing_Apellido')?.value ||\n !control.get('invoicing_idType')?.value || !control.get('invoicing_document')?.value) {\n return { 'requiredFieldsMissing': true };\n }\n }\n return null;\n };\n}\n","<div class=\"container-main\">\n <div class=\"container-form\">\n <div class=\"title_step\">\n <h2>Datos de Facturación</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"./assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n </div>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto \" (click)=\"showConfirm()\" pTooltip=\"Más info.\" tooltipPosition=\"bottom\"></i>\n <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepFour\" class=\"grid mt-2 flex flex-column align-items-center\">\n <div class=\"container__body__select flex justify-content-center flex-wrap\">\n <div class=\"container__type__payments\" *ngIf=\"isSelectionOptionPayments\">\n <div class=\"flex flex-column gap-3\">\n <h3>¿Cómo quieres pagar?</h3>\n <div *ngFor=\"let category of OptionPayments; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPayments\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPayments($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n\n <div class=\"container__option__instalations\" *ngIf=\"!isSelectionOptionPayments\">\n <!-- Vista para la opción de pago \"Instalaciones\" -->\n <div *ngIf=\"getViewBasedOnPaymentOption() === 'in'\">\n <div class=\"container__info flex flex-column align-items-center justify-content-center mt-1 mb-4\" *ngIf=\"isEditBillingData\">\n <img src=\"./assets/logos/lobo-web.png\" alt=\"Receipt Icon\" shape=\"circle\" class=\"circular-image\" />\n <strong>{{ codSelfFormStepFour.get('invoicing_name')?.value }} {{ codSelfFormStepFour.get('invoicing_Apellido')?.value }}</strong>\n <span>{{ getIdTypeDescription(codSelfFormStepFour.get('invoicing_idType')?.value) }} {{ codSelfFormStepFour.get('invoicing_document')?.value }}</span>\n <div class=\"container-button\">\n <ipt-button [label]=\"'Modificar Datos'\" (onClick)=\"editBillingData()\" [primary]=\"false\"></ipt-button>\n </div>\n </div>\n <div class=\"m-2\" *ngIf=\"!isEditBillingData\">\n <h3>Completa los nuevos datos para la emisión de tu factura</h3>\n <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Más info.\" tooltipPosition=\"bottom\"></i>\n </div>\n <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n <span>Si proporcionas datos de un tercero, confirmas que los datos son correctos y que tienes su consentimiento para el uso de la información. Estos datos se tratarán de acuerdo a nuestra <a href=\"\">Declaración de Privacidad</a></span>\n </div>\n </div>\n <div>\n <ipt-input [inputType]=\"'text'\" [placeHolder]=\"'Nombres'\" [control]=\"codSelfFormStepFour.controls['invoicing_name']\"></ipt-input>\n <ipt-input [inputType]=\"'text'\" [placeHolder]=\"'Apellidos'\" [control]=\"codSelfFormStepFour.controls['invoicing_Apellido']\"></ipt-input>\n <ipt-select\n [initialValue]=\"codSelfFormStepFour.controls['invoicing_idType'].value\"\n [control]=\"codSelfFormStepFour.controls['invoicing_idType']\"\n [selectCode]=\"codSelfFormStepFour.controls['invoicing_idType'].value === null ? 'Tipo de documento' : codSelfFormStepFour.controls['invoicing_idType'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input [inputType]=\"'number'\" [placeHolder]=\"'Número de documento'\" [control]=\"codSelfFormStepFour.controls['invoicing_document']\"></ipt-input>\n </div>\n <div class=\"flex justify-content-end mt-3 align-items-center gap-3\">\n <button pButton [disabled]=\"!codSelfFormStepFour.valid\" label=\"Continuar\" type=\"button\" (click)=\"updateDatosBillingData()\"></button>\n </div>\n </div>\n </div>\n\n <!-- Vista para la opción de pago \"Pasarela pagos\" -->\n <div *ngIf=\"getViewBasedOnPaymentOption() === 'ps'\">\n <!-- TODO:<h3>Completa los datos para Pasarela pagos</h3> -->\n <!-- Aquí puedes agregar el formulario específico para Pasarela pagos -->\n </div>\n </div>\n </div>\n </form>\n\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button pButton icon=\"pi pi-arrow-left\" type=\"button\" (click)=\"back()\"></button>\n <button *ngIf=\"!isSelectionOptionPayments && isEditBillingData && codSelfFormStepFour.valid\" pButton label=\"¡Matricularme!\" type=\"button\" (click)=\"sendForm()\"></button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnDestroy, OnInit, Output, EventEmitter } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n//import services\nimport { BaseService } from '../../core/utils/base-service/base.service';\nimport { CommercialService } from '../../core/services/commercial-service/comercial.service';\n\n//import Models\nimport { IUserIPTRqs } from '../../core/models/user/user-rs.model';\n\n//import Prime ng\nimport { MenuItem } from 'primeng/api';\nimport Swal from 'sweetalert2';\nimport { CodSelfManagedControls, ControlSteps } from '../logic/cod-self-managed-controls';\nimport { LocalStorageCodSelfMaganedService } from '../logic/local-storage-cod.service';\n\n\n@Component({\n selector: 'ipt-cod-self-managed',\n templateUrl: './cod-self-managed.component.html',\n styleUrls: ['./cod-self-managed.component.css']\n})\nexport class CodSelfManagedComponent implements OnDestroy, OnInit {\n\n @Input() user?: IUserIPTRqs;\n @Input() scorePlacementTest?:any;\n @Input() codPrevious?:any;\n @Output() okCreatedCOD = new EventEmitter<any>();\n\n public currentStep: number = 0;\n public financingData?: any[];\n public loaderMessage: string = '';\n public isLoading: boolean = false;\n public formSteps: number = 4;\n public codCreationSubscription: Subscription | null = null;\n\n countInitialStep:number = 0;\n subscription?: Subscription;\n idTypes: any;\n items: MenuItem[] = [\n { label: 'Datos', icon: 'pi pi-user-edit', id: '1' },\n { label: 'Planes', icon: 'pi pi-box', id: '2' },\n { label: 'Pago', icon: 'pi pi-wallet', id: '3' },\n { label: 'Facturacion', icon: 'pi pi-receipt', id: '4' }\n ];\n\n constructor(private baseService: BaseService,\n private commercialService: CommercialService,\n private codSelfManagedFormControls:CodSelfManagedControls,\n private localStorageCodSelfManaged:LocalStorageCodSelfMaganedService){}\n\n ngOnInit(): void {\n this.countInitialStep = 1;\n this.changeStep(this.currentStep);\n\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n changeStep(step: any) {\n this.currentStep = step;\n\n const request: any = {\n currentStep: this.currentStep + 1,\n user_code: this.baseService.getUserCode(),\n count: this.countInitialStep,\n token: this.baseService.getUserToken()\n }\n this.commercialService.updateControlStepsCodSelfManaged(request).subscribe((response)=>{\n this.countInitialStep = 0;\n })\n\n }\n saveFinancingData(data: any[]) {\n if (data) {\n const dates: string[] = [];\n data.forEach(p => {\n const date = p[2];\n dates.push(date);\n })\n this.financingData = dates;\n }\n }\n handleIdTypesChanged(idTypes: any) {\n this.idTypes = idTypes;\n }\n getFormAction(action: string) {\n if (!this.financingData && this.localStorageCodSelfManaged.getCodFormData(4, 'payment_method') === '1') {\n Swal.fire({\n title: 'Opss',\n text: 'Debe hacer el cálculo de las cuotas en el paso 4',\n icon: 'error'\n });\n return;\n }\n\n const totalData: any[] = [];\n this.subscription = this.codSelfManagedFormControls.getControlValues().subscribe((controls) => {\n for (let i = 1; i <= this.formSteps; i++) {\n const controlsByStep: ControlSteps[] = controls[i-1];\n controlsByStep.forEach(control => {\n const value = this.localStorageCodSelfManaged.getCodFormData(i, control.name);\n totalData.push({\n control: control.name,\n isRequired: control.required,\n value,\n description: control.description\n });\n });\n }\n\n const validationErrors = this.validateFormData(totalData);\n if (validationErrors.length > 0) {\n Swal.fire({\n title: 'Error Form Action Validate Error',\n html: validationErrors.join('<br>'),\n icon: 'error'\n });\n return;\n }\n\n if (action === 'create') {\n this.createCOD(totalData);\n }\n\n this.subscription?.unsubscribe();\n });\n }\n\n validateFormData(data: any[]): string[] {\n const errors: string[] = [];\n data.forEach(element => {\n if (!element.value && element.isRequired) {\n errors.push(`Revisar el campo: \"${element.description}\"`);\n }\n });\n return errors;\n }\n\n createCOD(totalData: any[]) {\n if (this.codCreationSubscription && !this.codCreationSubscription.closed) {\n return;\n }\n this.isLoading = true;\n this.loaderMessage = 'Creando COD, espere un momento';\n const request: any = this.getCreateCOD(totalData);\n\n this.codCreationSubscription = this.commercialService.createCodSelfManaged(request).subscribe({\n next: (response: any) => {\n this.isLoading = false;\n this.loaderMessage = '';\n if (response.message.code === 1) {\n Swal.fire({\n title: 'Perfecto!',\n text: 'El COD ha sido creado exitosamente.',\n icon: 'success'\n });\n this.localStorageCodSelfManaged.clearData();\n this.okCreatedCOD.emit(response.data);\n } else {\n Swal.fire({\n title: 'Warning!',\n text: response.message.message,\n icon: 'error'\n });\n }\n },\n error: (err: any) => {\n this.isLoading = false;\n this.loaderMessage = '';\n Swal.fire({\n title: 'Error en la creación de COD',\n text: err.message,\n icon: 'error'\n });\n },\n complete: () => {\n this.codCreationSubscription = null;\n }\n });\n }\n\n getCreateCOD(data: any[]): any {\n return {\n token: this.baseService.getUserToken(),\n student_name: this.getDataByName(data, 'student_name'),\n student_last_name: this.getDataByName(data, 'student_last_name'),\n student_id_card_type: this.getDataByName(data, 'student_id_card_type'),\n student_id_card: this.getDataByName(data, 'student_id_card'),\n gender: this.getDataByName(data, 'gender'),\n birthdate: this.getDataByName(data, 'birthdate'),\n age: this.getDataByName(data, 'age'),\n country: this.getDataByName(data, 'country'),\n state: this.getDataByName(data, 'state'),\n city: this.getDataByName(data, 'city'),\n student_email: this.getDataByName(data, 'student_email'),\n student_phone_indicative: this.getDataByName(data, 'student_phone_indicative'),\n student_phone_number: this.getDataByName(data, 'student_phone_number'),\n educational_level: this.getDataByName(data, 'grade'),\n agreement_by_category: this.getDataByName(data, 'agreement_by_category'),\n academic_plan: this.getDataByName(data, 'academic_plan'),\n course_type: this.getDataByName(data, 'course_type'),\n english_level: this.getDataByName(data, 'english_level'),\n availible_courses: this.getDataByName(data, 'availible_courses'),\n course_modality: this.getDataByName(data, 'course_modality'),\n program_price: this.getDataByName(data, 'program_price'),\n payment_date: this.getDataByName(data, 'payment_date'),\n payment_dates: this.financingData!,\n payment_method: this.getDataByName(data, 'payment_method'),\n quota_times: this.getDataByName(data, 'quota_times'),\n total_price: this.getDataByName(data, 'total_price'),\n paid_level: this.getDataByName(data, 'paid_level'),\n optionsPayments: this.getDataByName(data, 'optionsPayments'),\n invoicing_name: this.getDataByName(data, 'invoicing_name'),\n invoicing_Apellido: this.getDataByName(data, 'invoicing_Apellido'),\n invoicing_idType: this.getDataByName(data, 'invoicing_idType'),\n invoicing_document: this.getDataByName(data, 'invoicing_document')\n };\n }\n\n getDataByName(data: any[], name: string): any {\n return data.filter(item => item.control === name)[0]?.value || null;\n }\n}\n","<!-- <p-steps [model]=\"items\" [(activeIndex)]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" ></p-steps> -->\n<p-steps [model]=\"items\" [(activeIndex)]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\">\n <ng-template pTemplate=\"item\" let-item>\n <span class=\"p-steps-number\">{{ item.id }}</span>\n <i [class]=\"item.icon\"></i>\n <span class=\"p-steps-title\">{{ item.label }}</span>\n </ng-template>\n</p-steps>\n\n<p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\">\n <p-tabPanel [disabled]=\"true\">\n <app-cod-self-form-step-one (completed)=\"changeStep($event)\" [userStudent]=\"user\" (idTypesChanged)=\"handleIdTypesChanged($event)\"></app-cod-self-form-step-one>\n </p-tabPanel>\n <p-tabPanel [disabled]=\"true\">\n <app-cod-self-form-step-two (completed)=\"changeStep($event)\" [codPrevious]=\"codPrevious\" [scorePlacementTest]=\"scorePlacementTest\"></app-cod-self-form-step-two>\n </p-tabPanel>\n <p-tabPanel [disabled]=\"true\">\n <app-cod-self-form-step-three (completed)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\"></app-cod-self-form-step-three>\n </p-tabPanel>\n <p-tabPanel [disabled]=\"true\">\n <app-cod-self-form-step-four (completed)=\"changeStep($event)\" [idTypes]=\"idTypes\" (action)=\"getFormAction($event)\"></app-cod-self-form-step-four>\n </p-tabPanel>\n</p-tabView>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CodSelfManagedComponent } from './cod-form-self-managed/cod-self-managed.component';\nimport { ComponentsModule } from '../components/components.module';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { CodSelfFormStepOneComponent } from './steps/cod-form-step-one/cod-self-form-step-one.component';\nimport { StepsModule } from 'primeng/steps';\nimport { CodSelfFormStepTwoComponent } from './steps/cod-form-step-two/cod-self-form-step-two.component';\nimport { CodSelfFormStepThreeComponent } from './steps/cod-form-step-three/cod-self-form-step-three.component';\nimport { CodSelfFormStepFourComponent } from './steps/cod-form-step-four/cod-self-form-step-four.component';\nimport { ButtonModule } from 'primeng/button';\nimport { ToastModule } from 'primeng/toast';\nimport { CalendarModule } from 'primeng/calendar';\nimport { TabViewModule } from 'primeng/tabview';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { AccordionModule } from 'primeng/accordion';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TableModule } from 'primeng/table';\n\n@NgModule({\n imports:[\n CommonModule,\n ComponentsModule,\n ReactiveFormsModule,\n StepsModule,\n FormsModule,\n ButtonModule,\n ToastModule,\n CalendarModule,\n TabViewModule,\n SelectButtonModule,\n AccordionModule,\n CheckboxModule,\n RadioButtonModule,\n TooltipModule,\n TableModule\n ],\n declarations:[\n CodSelfManagedComponent,\n CodSelfFormStepOneComponent,\n CodSelfFormStepTwoComponent,\n CodSelfFormStepThreeComponent,\n CodSelfFormStepFourComponent,\n ],\n exports:[\n CodSelfManagedComponent,\n CodSelfFormStepOneComponent,\n CodSelfFormStepTwoComponent,\n CodSelfFormStepThreeComponent,\n CodSelfFormStepFourComponent,\n ],\n})\nexport class codSelfManagedModule { }\n","import { NgModule } from '@angular/core';\nimport { CurrencyMaskModule } from 'ng2-currency-mask';\nimport { CodModule } from './cod/cod.module';\n\nimport { ComponentsModule } from './components/components.module';\nimport { CoreModule } from './core/core.module';\nimport { codSelfManagedModule } from './cod-self-managed/cod-self-managed.module';\n\n@NgModule({\n imports: [\n ComponentsModule,\n CoreModule,\n CurrencyMaskModule,\n CodModule,\n codSelfManagedModule\n ],\n exports: [\n ComponentsModule,\n CoreModule,\n CurrencyMaskModule,\n CodModule,\n codSelfManagedModule\n ],\n})\n\nexport class DesignSystemModule { }\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { CreateNewNoteRq, GetNotesByGroupRq, GetNotesByStudentRq, INotesByUCourseAndStudentRq, IServiceCreateNewNoteRq, IServiceDeleteNoteRq, IServiceUpdateNoteRq, IdeletedNoteScoreRq, Notes, UpdateStudentNoteRq, calculateFinalNoteRq } from '../../models/notes/notes.interface';\nimport { Observable } from 'rxjs';\nimport { Response } from '../../models/response/response.interface';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { animate } from '@angular/animations';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotesService extends IPTGeneralService{\n\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n\n getNotesByGroup(params: GetNotesByGroupRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/notes/by/course';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getNotesByStudent(params: GetNotesByStudentRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/notes/by/student';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n createNewNote(params: IServiceCreateNewNoteRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/create/note';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n updateStudentNote(params: UpdateStudentNoteRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'update/note';\n this.generateRequestParams(params);\n return this.http.put<Response>(serviceUrl, this.httpOptions);\n }\n\n calculateFinalNote(params: calculateFinalNoteRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/calculate/final/note';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n getNotesByUserCourseStudent(params: INotesByUCourseAndStudentRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/notes/by/courseandstudent';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n updateNoteByTypeAndStudent(params: IServiceUpdateNoteRq): Observable<Response> {\n let serviceUrl = this.SERVICE_URL + 'update/note/by/type/and/student';\n this.generateRequestParams(params);\n return this.http.put<Response>(serviceUrl, this.httpOptions);\n }\n\n\n\n deleteNoteByTypeAndStudent(params: IdeletedNoteScoreRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'delete/note/by/type/and/student';\n this.generateRequestParams(params);\n return this.http.post<Response>(serviceUrl, this.httpOptions);\n }\n\n\n\n getNotesByCourseExcel(params: GetNotesByGroupRq): Observable<any> {\n const serviceUrl = this.SERVICE_URL + 'post/notes/by/course/export' ;\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GetStudentsByCourseRq } from '../../models/student/student.interface';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StudentService extends IPTGeneralService{\n\n private SERVICE_URL = 'academic/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getStudentsByCourse(params: GetStudentsByCourseRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/obtain/students/by/course';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { FormControl } from '@angular/forms';\n\n\nexport const validateCoupunts = (control: FormControl) => {\n const value: string = control.value.trim();\n};\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { IObtainNoteByDateRq, IObtainNoteByNameRq } from '../../models/PlacementTest/PlacementTest.models';\n\n@Injectable({providedIn: 'root'})\nexport class PlacementService extends IPTGeneralService {\n\n private SERVICE_URL = 'placement/api/';\n\n constructor(private http: HttpClient) {\n super();\n this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n }\n\n getAllPlacementTestUsers(): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/possible/students';\n return this.http.get(serviceUrl);\n }\n\n getNotePlacementTestByDate(params: IObtainNoteByDateRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/note/placement/test/by/date';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n getNotePlacementTestByName(params: IObtainNoteByNameRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'post/note/placement/test/by/name/student';\n this.generateRequestParams(params);\n return this.http.post(serviceUrl, this.httpOptions);\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable } from 'rxjs';\nimport { JoinAnnouncementUserGroupRq } from \"../../models/announcement/announcement-user-rq.model\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AnnouncementService {\n\n private SERVICE_URL = 'https://iptdev.com.co/ekt/api/';\n //private SERVICE_URL = 'http://lab.iptdev.com.co/ekt/api/';\n\n httpOptions: any;\n\n constructor(private http: HttpClient) {\n }\n\n announcementUser(user: number, announcement: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/announcement/' + 41 + \"/user/\" + user;\n return this.http.get(serviceUrl);\n }\n\n getAnnouncementEktByEpaycoRef(user: number, announcement: number, payment_ref: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/announcement/' + announcement + \"/user/\" + user + \"/paymenref/\" + payment_ref;\n return this.http.get(serviceUrl);\n }\n\n announcementUserGroup(announcement: number, user: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/announcementGroup/' + 41 + \"/user/\" + user;\n return this.http.get(serviceUrl);\n }\n\n getAnnouncementGroupByEpaycoRef(announcement: number, user: number, payment_ref: string): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'get/announcementGroup/' + announcement + \"/user/\" + user + \"/paymenref/\" + payment_ref;;\n return this.http.get(serviceUrl);\n }\n\n joinAnnouncementUserGroup(request: JoinAnnouncementUserGroupRq): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'join/announcementGroup';\n let httpOptions = {\n header: new HttpHeaders(),\n params: request\n }\n return this.http.post(serviceUrl, httpOptions);\n }\n\n joinAnnouncement(user: number, announcement: number, typeAnnouncement?: number): Observable<any> {\n let serviceUrl = this.SERVICE_URL + 'join/announcement';\n\n let httpOptions = {\n header: new HttpHeaders(),\n params: {\n token: 'DS7zBTcVX1UlvWO94AwyexGskPcWi55PG5WP',\n announcement_code: 41,\n typeAnnouncement,\n user_code: user\n }\n }\n\n return this.http.post(serviceUrl, httpOptions);\n }\n\n}\n","import { ICourseEventRq } from \"../academic/academic.component\";\nimport { ICourseModality } from \"../activities/activities.interface\";\nimport { longDateAvailabilityRs } from \"../cronogram/cronogram.models\";\nimport { English_Levels } from \"./courses.model\";\n\nexport interface CreateCourseRq {\n token?: string;\n teacher?: number | null;\n academic_plan?: string;\n course_type?: string;\n to_start?: string;\n start_date?: string | null;\n finish_date?: string | null;\n capacity?: string;\n more_days?: string | null;\n english_level?: string;\n agreement?: string;\n time_start_monday: string | null;\n time_end_monday: string | null;\n classroom_monday: string | null;\n time_start_tuesday: string | null;\n time_end_tuesday: string | null;\n classroom_tuesday: string | null;\n time_start_wednesday: string | null;\n time_end_wednesday: string | null;\n classroom_wednesday: string | null;\n time_start_thursday: string | null;\n time_end_thursday: string | null;\n classroom_thursday: string | null;\n time_start_friday: string | null;\n time_end_friday: string | null;\n classroom_friday: string | null;\n time_start_saturday?: string | null;\n time_end_saturday?: string | null;\n classroom_saturday?: string | null;\n}\n\nexport interface EditCourseRq {\n token: string;\n course_code: number;\n course_schedule?: number;\n course_schedule_club?: number;\n teacher?: number | null;\n teacherClub?: number | null;\n capacity?: string;\n to_start?: string;\n weekDays?: string[];\n startTime?: string | null;\n endTime?: string | null;\n weekDaysClub?: string[];\n startTimeClub?: string | null;\n endTimeClub?: string | null;\n classroom?: number | null;\n classroom_club?: number | null;\n}\nexport interface GetCoursesRq {\n token: string;\n record: number;\n page: number;\n english_level?: number;\n}\n\nexport interface GetCourseByCodeRq {\n token: string;\n course_code: number;\n}\n\nexport interface GetCoursesByLevelRq {\n token: string;\n record: number;\n page: number;\n english_level: number;\n}\n\nexport interface GetAvailibleCoursesRq{\n token:string;\n english_level:number;\n agreement:number;\n course_type:number;\n}\n\nexport interface GetCoursesByTeacherRq {\n token: string;\n page: number;\n record: number;\n teacher_code: number;\n filter_type?: number,\n filter?: number\n}\n\nexport interface DataAllCourseRq {\n code: number;\n course_schedule: CourseScheduleCRq;\n teacher: TeacherCRq;\n course_type: CourseTypeCRq;\n to_start: Date;\n start_date: Date;\n finish_date: Date;\n capacity: number;\n more_days: number | null;\n english_level: EnglishLevelCRq;\n agreement: AgreementCRq;\n course_modality: number;\n}\n\nexport interface AgreementCRq {\n code: number;\n name: string;\n end_time: Date;\n category: number;\n}\n\nexport interface CourseScheduleCRq {\n code: number;\n time_start_monday: string | null;\n time_end_monday: string | null;\n classroom_monday: string | null;\n time_start_tuesday: string | null;\n time_end_tuesday: string | null;\n classroom_tuesday: string | null;\n time_start_wednesday: string | null;\n time_end_wednesday: string | null;\n classroom_wednesday: string | null;\n time_start_thursday: string | null;\n time_end_thursday: string | null;\n classroom_thursday: string | null;\n time_start_friday: string | null;\n time_end_friday: string | null;\n classroom_friday: string | null;\n time_start_saturday: string | null;\n time_end_saturday: string | null;\n classroom_saturday: string | null;\n updated_at: Date;\n created_at: Date;\n}\n\nexport interface CourseTypeCRq {\n code: number;\n name: string;\n number_class: number;\n academic_plan: string;\n}\n\nexport interface EnglishLevelCRq {\n code: number;\n name: string;\n}\n\nexport interface TeacherCRq {\n code: number;\n name: string;\n last_name: string;\n nick_name: string;\n email: string;\n email_ipt: string;\n role: number;\n service_hour: number;\n phone_indicative: number;\n phone_number: string;\n gender: number;\n birthdate: Date | null;\n city: number;\n id_card_type: number;\n id_card: string;\n token: string;\n}\nexport interface IgetCodBcourseByModalityAndDisponibilityRq{\n token: string;\n modality: number;\n english_level: English_Levels[];\n}\nexport interface IgetCodBcourseByModalityAndLevelAndCourseTypeRq{\n token: string;\n modality: number;\n english_level: English_Levels[];\n course_type: number;\n}\n\nexport interface IObtainAvailableCourseDaysRq {\n startDate: string;\n startTime: string;\n endTime: string;\n numClass: number;\n weekDays: string[];\n startDateClub: string;\n startTimeClub: string;\n endTimeClub: string;\n numClassClub: number;\n weekDaysClub: string[];\n courseType: number;\n courseClub: boolean;\n}\n\nexport interface IAvailableCourseDaysRs {\n schoolDays: longDateAvailabilityRs[];\n schoolDaysClub: longDateAvailabilityRs[];\n schoolDaysCombine: ISchoolDaysCombineRs[];\n ShortDateSchoolDays: string[];\n ShortDateSchoolDaysClub: string[];\n ShortDateSchoolDayCombine: string[];\n weeksClass: number;\n completionClass: Date;\n startTime: string;\n endTime: string;\n courseName: ICourseNameUnitRs;\n}\n\nexport interface ICourseNameUnitRs {\n unitNameTheory: string[];\n unitNameClub: IUnitNameClubRs[];\n}\n\nexport enum IUnitNameClubRs {\n Club = \"Club\",\n}\n\nexport interface ISchoolDaysCombineRs {\n longDate: string;\n nameUnit: string;\n}\n\nexport interface ICreatedScheduleEvents {\n token: string;\n courseCode: number;\n codeClassRoom: number;\n codeTeacher: string;\n startTime: string;\n endTime: string;\n weekDays: string[];\n courseCodeClub: number;\n codeClassRoomClub: number;\n codeTeacherClub: string;\n startTimeClub: string;\n endTimeClub: string;\n weekDaysClub: string[];\n course_events: ICourseEventRq[];\n}\n\nexport interface IChangeCourseStudentNotStartedRq {\n token: string;\n cod_code: number;\n current_course: number;\n current_course_event: number;\n new_course: number;\n new_course_event: number;\n number_class: number;\n}\n\nexport interface IUpdateCourseEventByCodeRq {\n token: string;\n course_code: number;\n date_event: Date;\n event_code: number;\n name_event: string;\n}\n\n\nexport interface IUpdateCourseEventByCodeRs {\n code: number;\n course_code: number;\n date_event: Date;\n name_event: string;\n description_event: string;\n}\n\nexport interface ICourse {\n code: number;\n course_schedule: string[];\n teacher: string;\n course:{\n agreement:string\n capacity:number\n code: number\n course_type:ICourseTypeRs\n course_modality:ICourseModality\n course_schedule: string[];\n created_at: string\n english_level:string\n finish_date:string\n is_club: number\n is_from?:number\n is_renovation: number\n is_visible:number\n more_days?:number\n start_date: string\n teacher:string\n to_start:string\n };\n to_start: string;\n start_date: string;\n finish_date: string;\n capacity: number;\n more_days: string | null;\n english_level: string;\n agreement: string;\n course_modality: ICourseModality;\n is_renovation: number;\n is_from: string | null;\n is_club: number;\n is_visible: number;\n created_at: string;\n}\nexport interface ICourseTypeRs {\n code: number;\n name: string;\n label: string;\n number_class: number;\n number_class_club: number;\n academic_plan: string;\n theory_classes: number;\n club_classes: number;\n}\n\nexport interface GetCoursesFilterRq {\n token: string;\n status_filter?: string;\n}\n\n/////////////////////////// Change of student group ////////////////////////////\n\n\nexport interface IChangeOfStudentGroupRq {\n token: string;\n cod_code: number;\n new_course: number;\n old_course: number;\n user_course: number;\n classes_given_theory: number;\n classes_given_club: number;\n club_classes_viewed: IClassesViewedRq[];\n theory_classes_viewed: IClassesViewedRq[];\n}\n\nexport interface IClassesViewedRq {\n attendance: number;\n cod: number;\n course: number;\n course_event: number;\n date_event: Date;\n is_attended: number;\n name_event: string;\n}\n\nexport interface IChangeOfStudentGroupRs {\n old_course: IOldCourseRs;\n new_course: INewCourseRs;\n}\n\nexport interface INewCourseRs {\n status: IStatusRs;\n courseAssigned: ICourseAssignedRs;\n capacity: ICapacityRs;\n cronogram: ICronogramRs;\n attendance: IFutureEventsClassRs;\n evaluations: INewCourseEvaluationsRs;\n}\n\nexport interface IFutureEventsClassRs {\n theory: IClubElementRs[];\n club: IClubElementRs[];\n}\n\nexport interface IClubElementRs {\n code: number;\n course_code: number;\n date_event: Date;\n name_event: string;\n}\n\nexport interface ICourseAssignedRs {\n course_theory: number;\n course_club: number;\n}\n\nexport interface ICapacityRs {\n total_capacity: number;\n enrolled_students: number;\n available_capacity: number;\n has_classroom: boolean;\n modality: string;\n classroom_code_theory: number | null;\n classroom_code_club: number | null;\n classroom_name_theory: null | string;\n classroom_name_club: null | string;\n}\n\nexport interface ICronogramRs {\n has_events: boolean;\n event_theory: number;\n event_club: number;\n pending_theory: number;\n pending_club: number;\n past_events: IFutureEventsClassRs;\n future_events: IFutureEventsClassRs;\n}\n\nexport interface INewCourseEvaluationsRs {\n course_code: number;\n total_students: number;\n total_evaluations: number;\n evaluations_by_type: IEvaluationsByTypeRs;\n evaluations_above_60_percent: IEvaluationsAbove60PercentRs;\n course_details: ICourseDetailsRs;\n}\n\nexport interface ICourseDetailsRs {\n start_date: Date;\n finish_date: Date;\n capacity: number;\n}\n\nexport interface IEvaluationsAbove60PercentRs {\n [noteType: string]: INoteEvaluationRs;\n}\n\nexport interface INoteEvaluationRs {\n note_name?: string;\n total_notes: number;\n unique_students: number;\n percent_of_students: number;\n average_evaluations: number;\n percent_weight?: number;\n}\n\nexport interface IEvaluationsByTypeRs {\n [noteType: string]: INoteEvaluationRs;\n}\n\nexport interface IStatusRs {\n code_status: number;\n status: string;\n}\n\nexport interface IOldCourseRs {\n status: IStatusRs;\n courseAssigned: ICourseAssignedRs;\n capacity: ICapacityRs;\n user_course: IOldCourseUserCourseRs;\n cronogram: ICronogramRs;\n attendance: IOldCourseAttendanceRs;\n evaluations: IOldCourseEvaluationsRs;\n}\n\nexport interface IOldCourseAttendanceRs {\n club: IPurpleClubRs;\n theory: IPurpleClubRs;\n}\n\nexport interface IPurpleClubRs {\n has_duplicates: boolean;\n unique_classes: IDuplicatesFoundRs[];\n duplicates_found: IDuplicatesFoundRs[];\n delete_result: IDeleteResultRs;\n}\n\nexport interface IDeleteResultRs {\n success: boolean;\n deleted_count: number;\n message: string;\n}\n\nexport interface IDuplicatesFoundRs {\n attendance: number;\n cod: number;\n course: number;\n course_event: number;\n date_event: Date;\n is_attended: number;\n name_event: string;\n}\n\nexport interface INoteScoreRs {\n code: number;\n note_code: number;\n note_type: number;\n note_value: number;\n observation: string;\n}\n\nexport interface IOldCourseEvaluationsRs {\n note_details: INoteDetailsRs;\n note_scores: INoteScoreRs[];\n}\n\nexport interface INoteDetailsRs {\n code: number;\n student_code: number;\n cod_code: number;\n final_score: number;\n user_course: INoteDetailsUserCourseRs;\n note_scores: INoteScoreRs[];\n}\n\nexport interface INoteDetailsUserCourseRs {\n code: number;\n student_code: number;\n course_code: number;\n notes: number;\n}\n\nexport interface IOldCourseUserCourseRs {\n success: boolean;\n message: string;\n duplicates: boolean;\n kept_note: number;\n kept_user_course: number;\n note_details: INoteDetailsRs;\n note_scores: INoteScoreRs[];\n duplicate_notes: number[];\n duplicate_user_course: number[];\n deleted_notes: any[];\n deleted_user_course: any[];\n}\n\nexport interface CreateCourseEventRq {\n token: string;\n course_code: number;\n name_event: string;\n date_event: string;\n event_type: 'THEORETICAL' | 'CLUB';\n}\n\nexport interface IUpdateCourseEventByCodeNewRq {\n token: string;\n event_code: number;\n course_code: number;\n name_event: string;\n date_event: string;\n event_type: 'THEORETICAL' | 'CLUB';\n}\n\nexport interface DeleteCourseEventRq {\n token: string;\n event_code: number;\n}\n\nexport interface GetEventEditDataRq {\n token: string;\n event_code: number;\n}\n\nexport interface GetCourseScheduleRq {\n token: string;\n course_code: number;\n}\n\nexport interface GetCourseAssignedByCourseCodeRq {\n token: string;\n course_code: number;\n}\n\nexport interface GetLastEventByCourseCodeRq {\n token: string;\n course_code: number;\n}\n\nexport interface EnableCourseByRequestAndCodeRq {\n token: string;\n course: number[];\n moreCupos: number;\n renovations: number;\n isVisible: number;\n selected_requested: number;\n observations: string;\n}\nexport interface ICourseDisableByCodeRq {\n token: string;\n course: number[];\n}\n","import { UserRs } from '../user/user-rs.model';\n\nexport class Session {\n token!: string;\n user!: UserRs;\n}","import { MessageRq } from \"../attendance/attendance.interface\";\n\nexport class UserRs {\n code!: number;\n name!: string;\n last_name!: string;\n nick_name!: string;\n email!: string;\n email_ipt!: string;\n role!: number;\n service_hour!: number;\n phone_indicative!: number;\n phone_number!: number;\n gender!: string;\n birthdate!: string;\n city!: number;\n id_card_type!: number;\n id_card!: number;\n comment?: string;\n password!: string;\n token!: string;\n}\n\nexport class IUserEktRs {\n code!: number;\n name!: string;\n last_name!: string;\n id_card!: number;\n ufps_code!: number;\n email!: string;\n phone_indicative!: number;\n phone!: number;\n token!: string;\n}\n\nexport class UserLoginRs {\n code!: number;\n name!: string;\n last_name!: string;\n email!: string;\n id_card!: string;\n id_card_type!: number;\n phone_indicative!: number;\n phone!: string;\n gender!: number;\n city!: number;\n role!: number;\n birthdate!: string;\n token!: string;\n}\n\nexport class IUserFullDataRs {\n code!: number;\n name!: string;\n last_name!: string;\n nick_name!: string;\n email!: string;\n email_ipt!: string;\n role!: number;\n service_hour!: number;\n phone_indicative!: number;\n phone_number!: string;\n gender!: number;\n birthdate!: string;\n city!: number;\n id_card_type!: number;\n id_card!: string;\n password!: string;\n token!: string;\n user_status!: number;\n}\n\nexport interface IUserResetPasswordRs {\n ip_applicant: string;\n status: number;\n message: MessageRq;\n data: IDataUserResetPasswordRs[];\n}\n\nexport interface IDataUserResetPasswordRs {\n code: number;\n name: string;\n last_name: string;\n nick_name: string;\n email: string;\n email_ipt: string;\n role: number;\n service_hour: number;\n phone_indicative: number;\n phone_number: string;\n gender: number;\n birthdate: null;\n city: number;\n id_card_type: number;\n id_card: string;\n token: string;\n user_status: number;\n password_change: number;\n updated_at: Date;\n newPassword: string;\n}\n\nexport interface IUserIPTRqs {\n code: number;\n name: string;\n last_name: string | null;\n nick_name: string | null;\n email: string;\n email_ipt: string | null;\n role: number;\n phone_indicative: number;\n phone_number: string;\n gender: number | null;\n birthdate: Date | null;\n city: ICityRS[];\n id_card_type: number;\n id_card: string | null;\n user_status: number;\n password_change: number;\n status_asing: number;\n}\n\nexport interface ICityRS {\n code: number;\n capital: number;\n state: number;\n country: number;\n}\n","export class AnnouncementUserRs {\n code!: number;\n announcement!: string;\n user_ekt!: string;\n need_pay!: number;\n is_pay!: number;\n}","/*\n * Public API Surface of design-system dockerizada\n */\n\nexport * from \"./lib/design-system.module\"\nexport * from \"./lib/cod/cod.module\"\nexport * from \"./lib/components/components.module\"\nexport * from \"./lib/core/core.module\"\n\n// Atomos\nexport * from \"./lib/components/atoms/aside-button/aside-button.component\"\nexport * from \"./lib/components/atoms/button/button.component\"\nexport * from \"./lib/components/atoms/checkbox/checkbox.component\"\nexport * from \"./lib/components/atoms/datalist/datalist.component\"\nexport * from \"./lib/components/atoms/input/input.component\"\nexport * from \"./lib/components/atoms/level-button/level-button.component\"\nexport * from \"./lib/components/atoms/level-text/level-text.component\"\nexport * from \"./lib/components/atoms/loader/loader.component\"\nexport * from \"./lib/components/atoms/radio/radio.component\"\nexport * from \"./lib/components/atoms/select/select.component\"\nexport * from \"./lib/components/atoms/text-link/text-link.component\"\n\n// Formularios\nexport * from \"./lib/components/forms/login-form/login-form.component\"\nexport * from \"./lib/components/molecules/sidenav/sidenav.component\"\nexport * from \"./lib/components/molecules/question-type/edit-question-types.component\"\nexport * from \"./lib/components/forms/create-user-form/create-user-form.component\"\nexport * from \"./lib/components/molecules/card-course/card-course.component\"\nexport * from \"./lib/components/molecules/card-select-course/card-select-course.component\"\nexport * from \"./lib/components/forms/update-user-form/update-user-form.component\"\n\n// Servicios\nexport * from \"./lib/core/services/attendance-service/attendance.service\"\nexport * from \"./lib/core/services/budget-service/budget-service\"\nexport * from \"./lib/core/services/course-service/course-service.model\"\nexport * from \"./lib/core/services/calendar-service/calendar.service\"\nexport * from \"./lib/core/services/marketing-service/marketing-service\"\nexport * from \"./lib/core/services/notes-service/notes.service\"\nexport * from \"./lib/core/services/parameters-service/parameters.service\"\nexport * from \"./lib/core/services/student-service/student.service\"\nexport * from \"./lib/core/services/storage-service/storage-service\"\nexport * from \"./lib/core/services/switch-service/switch.service\"\nexport * from \"./lib/core/services/test-service/test.service\"\nexport * from \"./lib/core/services/user-service/user-service\"\nexport * from \"./lib/core/utils/base-service/base.service\"\nexport * from \"./lib/core/utils/route-service/route.service\"\nexport * from \"./lib/core/services/classroom-service/classroom-service.service\"\nexport * from \"./lib/core/services/activity-service/activity.service\"\nexport * from \"./lib/core/services/commercial-service/comercial.service\"\nexport * from \"./lib/core/services/commercial-service/validators\"\nexport * from \"./lib/core/services/academic-service/academic.service\"\nexport * from \"./lib/core/services/certificate-service/certificate.service\"\nexport * from \"./lib/core/services/ekt-service/userekt.service\"\nexport * from \"./lib/core/services/copies.service\"\nexport * from \"./lib/core/services/placement-service/placement.service\"\nexport * from \"./lib/core/services/ePayco/epayco.service\"\nexport * from \"./lib/core/services/announcement/announcement.service\"\n\n\n// Modelos\nexport * from \"./lib/core/models/activities/activities.interface\"\nexport * from \"./lib/core/models/attendance/attendance.interface\"\nexport * from \"./lib/core/models/budget/budget.model\"\nexport * from \"./lib/core/models/cod/cod-rq.model\"\nexport * from \"./lib/core/models/calendar/calendar-rq.models\"\nexport * from \"./lib/core/models/cronogram/cronogram.models\"\nexport * from \"./lib/core/models/course/course-rq.model\"\nexport * from \"./lib/core/models/marketing/marketing.model\"\nexport * from \"./lib/core/models/notes/notes.interface\"\nexport * from \"./lib/core/models/notes/INotesTemplate\"\nexport * from \"./lib/core/models/response/response.interface\"\nexport * from \"./lib/core/models/session/session.model\"\nexport * from \"./lib/core/models/student/student.interface\"\nexport * from \"./lib/core/models/table/table-rs.model\"\nexport * from \"./lib/core/models/test/test.model\"\nexport * from \"./lib/core/models/url/url.model\"\nexport * from \"./lib/core/models/user/user-rq.model\"\nexport * from \"./lib/core/models/user/user-rs.model\"\nexport * from \"./lib/core/models/classroom/classroom-rq.model\"\nexport * from \"./lib/core/models/academic/academic.component\"\nexport * from \"./lib/core/models/course/courses.model\"\nexport * from \"./lib/core/models/payment/payment-rq.model\"\nexport * from \"./lib/core/models/commercial/commercial.model\"\nexport * from \"./lib/core/models/reports/reports.model\"\nexport * from \"./lib/core/models/homeTemplate/homeTemplate.models\"\nexport * from \"./lib/core/models/PlacementTest/PlacementTest.models\"\nexport * from \"./lib/core/models/PossibleStudent/PossibleStudent.models\"\nexport * from \"./lib/core/models/announcement/announcement-user-rq.model\"\nexport * from \"./lib/core/models/announcement/announcement-user-rs.model\"\nexport * from \"./lib/core/models/epayco/epayco.interfaces\"\n\n//Pipes\nexport * from \"./lib/core/pipes/course-pipes/schedule-form.pipe\"\nexport * from \"./lib/core/pipes/course-pipes/time-form.pipe\"\nexport * from \"./lib/core/pipes/course-pipes/type-level.pipe\"\n\n// Librería para máscara de moneda\nexport * from \"./lib/components/components.module\"\n\n// Modulo del COD\nexport * from \"./lib/cod/cod.module\"\n\n// Componentes del COD\nexport * from \"./lib/cod/cod-form/cod-form.component\"\nexport * from \"./lib/cod/cod-documents-section/cod-documents-section.component\"\n\n// Lógica del COD\nexport * from \"./lib/cod/logic/calculate-quotes.service\"\nexport * from \"./lib/cod/logic/cod-form-controls\"\nexport * from \"./lib/cod/logic/cod-form-steps\"\nexport * from \"./lib/cod/logic/communicator.service\"\nexport * from \"./lib/cod/logic/local-storage-cod.service\"\n\n// Pasos del COD\nexport * from \"./lib/cod/steps/cod-form-step-one/cod-form-step-one.component\"\nexport * from \"./lib/cod/steps/cod-form-step-two/cod-form-step-two.component\"\nexport * from \"./lib/cod/steps/cod-form-step-three/cod-form-step-three.component\"\nexport * from \"./lib/cod/steps/cod-form-step-four/cod-form-step-four.component\"\nexport * from \"./lib/cod/steps/cod-form-step-five/cod-form-step-five.component\"\n\n//Module Cod Autogestionado\nexport * from \"./lib/cod-self-managed/cod-self-managed.module\"\n\n//component Cod Autogestionado\nexport * from \"./lib/cod-self-managed/cod-form-self-managed/cod-self-managed.component\"\n\n//Steps Cod Autogestionado\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component\"\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component\"\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component\"\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component\"\n\n// Lógica del Autogestionado\nexport * from \"./lib/cod-self-managed/logic/cod-self-managed-controls\"\nexport * from \"./lib/cod-self-managed/logic/cod-self-managed-steps\"\nexport * from \"./lib/cod-self-managed/logic/local-storage-cod.service\"\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.UserService","i2.StorageService","i3.CalendarService","i2.BaseService","i3.ButtonComponent","i4.InputComponent","i2.ParameterService","i3.UserService","i4","i5.ButtonComponent","i6.InputComponent","i7.SelectComponent","i3.BaseService","i4.UserService","i5","i6","i10.ButtonComponent","i11.InputComponent","i12.SelectComponent","i13.GenderDisplayPipe","i3.StorageService","i7","i8.AsideButtonComponent","i2.InputComponent","i3","i5.LoaderComponent","i6.ScheduleFormatPipe","i7.ScheduleTimeFormatPipe","i8.TypeLevelPipe","i2.ScheduleFormatPipe","i3.ScheduleTimeFormatPipe","i4.TypeLevelPipe","i2.MediaService","i4.BaseService","i2.CopiesService","i4.CourseService","i5.CommunicatorService","i7.LoaderComponent","i8.SelectComponent","i9","i3.InputComponent","i4.SelectComponent","i2.CodFormControls","i5.SelectComponent","CalculateQuotesService","i2.CalculateQuotesService","i3.CodFormControls","i4.CommercialService","i5.BaseService","i8.InputComponent","i9.LoaderComponent","i10.SelectComponent","i12","i8","i8.ModalReferredComponent","i1.BaseService","i2.LocalStorageCODService","i5.ParameterService","i8.LoaderComponent","i9.CodFormStepOneComponent","i10.CodFormStepTwoComponent","i11.CodFormStepThreeComponent","i12.CodFormStepFourComponent","i13.CodFormStepFiveComponent","i7.InputComponent","i10","i11","i4.AcademicService","i6.ButtonComponent","i7.CardCourseComponent","i8.CardSelectCourseComponent","i13","i3.CommercialService","i5.CodSelfManagedControls","i6.CalculateQuotesService","i15","i3.CodSelfManagedControls","i2.CommercialService","i4.LocalStorageCodSelfMaganedService","i8.CodSelfFormStepOneComponent","i9.CodSelfFormStepTwoComponent","i10.CodSelfFormStepThreeComponent","i11.CodSelfFormStepFourComponent"],"mappings":"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"}
|