iptdevs-design-system 3.1.3101 → 3.1.3102

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.
@@ -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/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\n seleccionar(evt: string){\n if (this.eventSelect.emit(evt) !== this.defaultText) {\n this.boxShadow = 1;\n }\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 ngOnInit(): void {\n this.setBinding();\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 } 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\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\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 } 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}\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}\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 { Component, Output, EventEmitter, OnInit, Input } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { map } from 'rxjs';\n\n\n\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 implements OnInit {\n\n @Input() user: any;\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\n constructor(\n private fb: FormBuilder,\n private parameterService: ParameterService\n ) {}\n\n ngOnInit(): void {\n this.initForm();\n this.getParameters();\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 // student_email: ['', [Validators.required, Validators.email]],\n gender: ['', [Validators.required]],\n // age: ['', [Validators.required]],\n birthdate: ['', [Validators.required], []],\n country: ['', [Validators.required], []],\n state: ['', [Validators.required], []],\n city: ['', [Validators.required], []],\n // student_address: ['', [Validators.required], []],\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(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\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.codSelfFormStepOne.controls['state'].setValue(state);\n this.getState(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 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(2, 'city'));\n });\n }\n\n}\n","<div class=\"container-main\">\n <div>\n <h2>Paso 1: Datos Personales</h2>\n <form [formGroup]=\"codSelfFormStepOne\">\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepOne.controls['student_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codSelfFormStepOne.controls['student_last_name']\"\n ></ipt-input>\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\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de documento'\"\n [control]=\"codSelfFormStepOne.controls['student_id_card']\"\n ></ipt-input>\n\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 <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codSelfFormStepOne.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\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 <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 <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\n </form>\n\n </div>\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 label=\"Siguiente\"\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n [disabled]=\"!codSelfFormStepOne.valid\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n\n</div>\n","import { Component, Output, EventEmitter } from '@angular/core';\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 {\n\n\n @Output() completed = new EventEmitter<number>();\n\n back() {\n // Movernos al paso anterior\n this.completed.emit(0);\n }\n sendForm() {\n // this.codSelfFormStepOne.markAllAsTouched();\n // if (this.codSelfFormStepOne.invalid) return;\n\n // Movernos al paso 3\n this.completed.emit(2);\n }\n\n\n}\n","<span>step 2</span>\n\n\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 label=\"Atras\"\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n label=\"Siguiente\"\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"sendForm()\"\n ></button>\n</div>\n","import { Component } from '@angular/core';\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 {\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 { Component, OnInit, Input } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n\n@Component({\n selector: 'ipt-cod-self-managed',\n templateUrl: './cod-self-managed.component.html',\n styleUrls: []\n})\nexport class CodSelfManagedComponent implements OnInit {\n @Input() user: any;\n public currentStep: number = 0;\n items: MenuItem[]=[];\n stepCompleted: boolean[] = [false, false, false, false];\n\n ngOnInit() {\n this.items = [\n { label: 'Datos', id: '1'},\n { label: 'Planes', id: '2'},\n { label: 'Pago', id: '3'},\n { label: 'Confirmacion', id: '4'}\n ];\n }\n\n onChangeStep(step: any) {\n // console.log(step);\n this.currentStep = step;\n }\n\n\n changeStep(step: any) {\n this.currentStep = step;\n }\n}\n","<!-- <h3>Matricula</h3> -->\n\n<p-steps [model]=\"items\" [(activeIndex)]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" ></p-steps>\n<div class=\"container-steps\">\n\n <div *ngIf=\"currentStep === 0\">\n <app-cod-self-form-step-one (completed)=\"changeStep($event)\" [user]=\"user\"></app-cod-self-form-step-one>\n </div>\n\n <div *ngIf=\"currentStep === 1\">\n <app-cod-self-form-step-two (completed)=\"changeStep($event)\"></app-cod-self-form-step-two>\n </div>\n\n <div *ngIf=\"currentStep === 2\">\n <app-cod-self-form-step-three (completed)=\"changeStep($event)\"></app-cod-self-form-step-three>\n </div>\n\n <div *ngIf=\"currentStep === 3\">\n <app-cod-self-form-step-four (completed)=\"changeStep($event)\"></app-cod-self-form-step-four>\n </div>\n\n</div>\n\n\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';\n\n@NgModule({\n imports:[\n CommonModule,\n ComponentsModule,\n ReactiveFormsModule,\n StepsModule,\n FormsModule,\n ButtonModule\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","/*\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 * 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","i3.InputComponent","i4.SelectComponent","i3.CodSelfFormStepOneComponent","i4.CodSelfFormStepTwoComponent","i5.CodSelfFormStepThreeComponent","i6.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/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/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\n seleccionar(evt: string){\n if (this.eventSelect.emit(evt) !== this.defaultText) {\n this.boxShadow = 1;\n }\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 ngOnInit(): void {\n this.setBinding();\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 } 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\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\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 } 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}\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}\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 { Component, Output, EventEmitter, OnInit, Input } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { map } from 'rxjs';\n\n\n\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 implements OnInit {\n\n @Input() user: any;\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\n constructor(\n private fb: FormBuilder,\n private parameterService: ParameterService\n ) {}\n\n ngOnInit(): void {\n this.initForm();\n this.getParameters();\n this.setDataUsers();\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 // student_email: ['', [Validators.required, Validators.email]],\n gender: ['', [Validators.required]],\n // age: ['', [Validators.required]],\n birthdate: ['', [Validators.required], []],\n country: ['', [Validators.required], []],\n state: ['', [Validators.required], []],\n city: ['', [Validators.required], []],\n // student_address: ['', [Validators.required], []],\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(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.user.name ? this.user.name : null);\n this.codSelfFormStepOne.controls['student_last_name'].setValue(this.user.last_name ? this.user.last_name : null);\n this.codSelfFormStepOne.controls['student_id_card_type'].setValue(this.user.id_card_type ? this.user.id_card_type : null);\n this.codSelfFormStepOne.controls['student_id_card'].setValue(this.user.id_card ? this.user.id_card : null);\n this.codSelfFormStepOne.controls['country'].setValue(this.user.city[0]?.country ? this.user.city[0]?.country : null);\n this.codSelfFormStepOne.controls['state'].setValue(this.user.city[0]?.state ? this.user.city[0]?.state : null);\n this.codSelfFormStepOne.controls['city'].setValue(this.user.city[0]?.code ? this.user.city[0]?.code : null);\n this.codSelfFormStepOne.controls['gender'].setValue(this.user.gender ? this.user.gender : null);\n this.codSelfFormStepOne.controls['birthdate'].setValue(this.user.birthdate ? this.user.birthdate : null);\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.codSelfFormStepOne.controls['state'].setValue(state);\n this.getState(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 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(2, 'city'));\n });\n }\n\n}\n","<div class=\"container-main\">\n <div>\n <h2>Paso 1: Datos Personales</h2>\n <form [formGroup]=\"codSelfFormStepOne\">\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepOne.controls['student_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codSelfFormStepOne.controls['student_last_name']\"\n ></ipt-input>\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\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Número de documento'\"\n [control]=\"codSelfFormStepOne.controls['student_id_card']\"\n ></ipt-input>\n\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 <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codSelfFormStepOne.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\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 <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 <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\n </form>\n\n </div>\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 label=\"Siguiente\"\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n [disabled]=\"!codSelfFormStepOne.valid\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n\n</div>\n","import { Component, Output, EventEmitter } from '@angular/core';\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 {\n\n\n @Output() completed = new EventEmitter<number>();\n\n back() {\n // Movernos al paso anterior\n this.completed.emit(0);\n }\n sendForm() {\n // this.codSelfFormStepOne.markAllAsTouched();\n // if (this.codSelfFormStepOne.invalid) return;\n\n // Movernos al paso 3\n this.completed.emit(2);\n }\n\n\n}\n","<span>step 2</span>\n\n\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 label=\"Atras\"\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n label=\"Siguiente\"\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n (click)=\"sendForm()\"\n ></button>\n</div>\n","import { Component } from '@angular/core';\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 {\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 { Component, OnInit, Input } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n\n@Component({\n selector: 'ipt-cod-self-managed',\n templateUrl: './cod-self-managed.component.html',\n styleUrls: []\n})\nexport class CodSelfManagedComponent implements OnInit {\n @Input() user: any;\n public currentStep: number = 0;\n items: MenuItem[]=[];\n stepCompleted: boolean[] = [false, false, false, false];\n\n ngOnInit() {\n this.items = [\n { label: 'Datos', id: '1'},\n { label: 'Planes', id: '2'},\n { label: 'Pago', id: '3'},\n { label: 'Confirmacion', id: '4'}\n ];\n }\n\n onChangeStep(step: any) {\n // console.log(step);\n this.currentStep = step;\n }\n\n\n changeStep(step: any) {\n this.currentStep = step;\n }\n}\n","<!-- <h3>Matricula</h3> -->\n\n<p-steps [model]=\"items\" [(activeIndex)]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" ></p-steps>\n<div class=\"container-steps\">\n\n <div *ngIf=\"currentStep === 0\">\n <app-cod-self-form-step-one (completed)=\"changeStep($event)\" [user]=\"user\"></app-cod-self-form-step-one>\n </div>\n\n <div *ngIf=\"currentStep === 1\">\n <app-cod-self-form-step-two (completed)=\"changeStep($event)\"></app-cod-self-form-step-two>\n </div>\n\n <div *ngIf=\"currentStep === 2\">\n <app-cod-self-form-step-three (completed)=\"changeStep($event)\"></app-cod-self-form-step-three>\n </div>\n\n <div *ngIf=\"currentStep === 3\">\n <app-cod-self-form-step-four (completed)=\"changeStep($event)\"></app-cod-self-form-step-four>\n </div>\n\n</div>\n\n\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';\n\n@NgModule({\n imports:[\n CommonModule,\n ComponentsModule,\n ReactiveFormsModule,\n StepsModule,\n FormsModule,\n ButtonModule\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","/*\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 * 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","i3.InputComponent","i4.SelectComponent","i3.CodSelfFormStepOneComponent","i4.CodSelfFormStepTwoComponent","i5.CodSelfFormStepThreeComponent","i6.CodSelfFormStepFourComponent"],"mappings":"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"}