{
  "version": 3,
  "sources": ["src/app/pages/SaludPlus/Nomina/cargos/config/cargos.settings.ts", "src/app/pages/SaludPlus/Nomina/cargos/components/cargos.component.ts", "src/app/pages/SaludPlus/Nomina/cargos/components/cargos.component.html", "src/app/pages/SaludPlus/Nomina/cargos/service/cargos.service.ts", "src/app/pages/SaludPlus/Nomina/cargos/cargos.routing.ts"],
  "sourcesContent": ["import { UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { FormSearch } from \"src/app/models/base/FormSearch\";\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport {\r\n  TegettFormControl,\r\n  TypeField,\r\n} from \"src/app/models/Tegett/tegettFormControl\";\r\nimport { SearchTypeFilter } from \"@src/app/models/base/Search/SearchType\";\r\nimport {\r\n  MultipleFilter,\r\n} from \"@src/app/models/Tegett/SimpleFilterData\";\r\nimport { ControllerApiList } from \"@src/app/models/SaludPlus/Controller/ControllerList\";\r\nimport { FiltersRecently } from \"@src/app/models/base/FiltersRecently\";\r\nimport { BaseSearchSetting } from \"@src/app/models/base/BaseSearchSetting\";\r\nimport { EndPointMethods } from \"@src/app/models/base/filterModel\";\r\n\r\n@Component({\r\n    selector: \"app-cargosSettings\",\r\n    template: \"\",\r\n    standalone: false\r\n})\r\nexport class CargosSettings implements BaseSearchSetting {\r\n\r\n  tiposDocumentos: MultipleFilter;\r\n\r\n\r\n  constructor(\r\n    @Inject(Router) private router: Router,\r\n    @Inject(ActivatedRoute) private route: ActivatedRoute,\r\n  ) {\r\n\r\n  }\r\n  async Load() {\r\n    return true;\r\n\r\n\r\n  }\r\n  /**\r\n   * Funcion para armar la busqueda\r\n   */\r\n  loadFormSearch(): FormSearch {\r\n    const search = new FormSearch();\r\n    search.formComponents = this.FormComponents();\r\n    search.configSearch = {\r\n      title: \"cargos\",\r\n      titleIcon: \"fa-solid fa-briefcase\",\r\n      apiSearch: ControllerApiList.Nomina.Cargos,\r\n      apiSearchResult: \"Listado\",\r\n      apiSearchVersion: 3,\r\n      filtersRecently: this.LoadSimpleFilter(),\r\n      buttonNewRecordText: \"Nuevo Cargo\",\r\n      MethodRequest: EndPointMethods.GET,\r\n      buttonNewRecordClick: () => this.newRecord(),\r\n\r\n      settings: [\r\n        { objectKey: \"id\", sortV3: \"desc\", visible: false },\r\n      ],\r\n      fields: [\r\n        {\r\n          renderLabel: \"ID\",\r\n          objectKey: \"id\",\r\n          autoSize: true,\r\n        },\r\n        {\r\n          objectKey: \"nombre\",\r\n          renderLabel: \"Nombre\",\r\n          module: \"cargos\",\r\n          pipe: \"ColumnCustom\", icon: \"inherit\",\r\n          click: (row) => this.goView(row),\r\n          autoSize: true,\r\n        },\r\n        {\r\n          objectKey: \"departamentoCargo\",\r\n          renderLabel: \"Departamento\",\r\n        }\r\n      ],\r\n      filters: [\r\n        { objectKey: \"nombre\", type: SearchTypeFilter.Text }\r\n\r\n\r\n\r\n      ],\r\n    };\r\n    return search;\r\n  }\r\n\r\n\r\n\r\n\r\n  newRecord() {\r\n    this.router.navigate([\"../\"], { relativeTo: this.route });\r\n  }\r\n\r\n  goEdit(id: number) {\r\n    this.router.navigate([\"../\", id], {\r\n      queryParams: { mode: \"e\" },\r\n      queryParamsHandling: \"merge\",\r\n      relativeTo: this.route,\r\n    });\r\n  }\r\n\r\n  /**\r\n   * ir al registro\r\n   * @param row linea proveniente de la busqueda\r\n   */\r\n  goView(row: any) {\r\n    if (row.id) {\r\n      this.router.navigate([\"../\", row.id], { relativeTo: this.route });\r\n    }\r\n  }\r\n\r\n\r\n\r\n  /**\r\n   * Componentes del formulario\r\n   */\r\n  FormComponents(): UntypedFormGroup {\r\n    const formRecord = new UntypedFormGroup(\r\n      {\r\n        // nombre\r\n        nombre: new TegettFormControl({\r\n          formState: \"\",\r\n          validatorOrOpts: [Validators.required],\r\n          label: \"Nombre Cargo\",\r\n          typeField: TypeField.Input,\r\n          required: true,\r\n          nameControl: \"nombre\",\r\n        }),\r\n\r\n        // Departamento\r\n        idDepartamentoCargo: new TegettFormControl({\r\n          formState: \"\",\r\n          validatorOrOpts: [Validators.required],\r\n\r\n          label: \"Departamento\",\r\n          typeField: TypeField.List,\r\n          required: true,\r\n          dataTextField: \"nombre\",\r\n          dataValueField: \"id\",\r\n          importNoRequired: false,\r\n\r\n          nameControl: \"idDepartamentoCargo\",\r\n          searchType: \"tiposdocumentos\",\r\n        }),\r\n\r\n        // SubDepartamento\r\n        idSubDepartamentoEmpleado: new TegettFormControl({\r\n          formState: \"\",\r\n          label: \"SubDepartamento\",\r\n          typeField: TypeField.List,\r\n          required: false,\r\n          nameControl: \"idSubDepartamentoEmpleado\",\r\n        }),\r\n\r\n\r\n         // Salario base\r\n         salario: new TegettFormControl({\r\n          formState: 0,\r\n          validatorOrOpts: [],\r\n          label: \"Salario Base\",\r\n          typeField: TypeField.Input,\r\n          required: false,\r\n          nameControl: \"salario\",\r\n        }),\r\n\r\n        // Descripcion\r\n        descripcion: new TegettFormControl({\r\n          formState: \"\",\r\n          label: \"Descripción\",\r\n          typeField: TypeField.Input,\r\n          required: false,\r\n          nameControl: \"descripcion\",\r\n        }),\r\n\r\n\r\n      }\r\n    );\r\n\r\n    return formRecord;\r\n  }\r\n\r\n  LoadSimpleFilter(): FiltersRecently[] {\r\n    let filterdataRecently: FiltersRecently[] = [\r\n      {\r\n        field: 0,\r\n        text: \"Mis Actividades\",\r\n        separator: true,\r\n        value: \"1\"\r\n      },\r\n      {\r\n        field: 1,\r\n        text: \"Actualizado recientemente\",\r\n        value: \"2\"\r\n      },\r\n      {\r\n        field: 2,\r\n        text: \"Creado recientemente\",\r\n        isDefault: true,\r\n        value: \"3\"\r\n      }\r\n    ];\r\n    return filterdataRecently\r\n  }\r\n}\r\n", "import { Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { ProcessType, SPlusDialogCloseResult, SPlusDialogSettings, SPlusFormsDialogsService, SPlusMoreOption, SPlusOption, SPlusProcessMessageComponent } from '@saludplus/forms';\r\nimport { CargosDTO } from '@src/app/models/Nomina/Cargos';\r\nimport { SplusBaseForm } from '@src/app/models/base/BaseFormComponent';\r\nimport { RoutingState } from '@src/app/services/Generals/routing.state.service';\r\nimport { AuthenticationService } from '@src/app/services/Security/authentication.service';\r\nimport { CargosSettings } from '../config/cargos.settings';\r\nimport { IntlService } from '@progress/kendo-angular-intl';\r\nimport { UtilService } from '@src/app/services/Utilities/util.service';\r\nimport { PersistenceService } from '@src/app/services/Utilities/data.persistence.service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { CargosService } from '../service/cargos.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { DefaultModelDTO } from '@src/app/models/General/DefaultModelDTO';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Component({\r\n    selector: 'app-cargos',\r\n    templateUrl: './cargos.component.html',\r\n    styleUrls: ['./cargos.component.scss'],\r\n    standalone: false\r\n})\r\nexport class CargosComponent extends SplusBaseForm implements OnInit, OnDestroy {\r\n  override id = 0;\r\n  override submitted = false;\r\n  override isLoading = false;\r\n  override isDeleting = false;\r\n\r\n  // Forms\r\n  override FormRecord: UntypedFormGroup;\r\n  datosCargo: CargosDTO;\r\n  nombreCompleto = \"\";\r\n  override icon = \"\";\r\n  // Forms - control de los estados\r\n  override processType: ProcessType = ProcessType.create;\r\n  override ProcessType = ProcessType;\r\n  override showMessageProcess: boolean;\r\n  override messageProcess = new SPlusProcessMessageComponent();\r\n  nombreCargo = \"\";\r\n  //listado de opciones --\r\n  options: SPlusOption[] = [\r\n    {\r\n      id: \"Listado\",\r\n      icon: \"fa-solid fa-magnifying-glass\",\r\n      text: \"Listado\",\r\n      link: \"/nomina/cargos/listado\",\r\n    },\r\n    {\r\n      id: \"Ayuda\",\r\n      icon: \"fa-solid fa-circle-question\",\r\n      text: \"Ayuda\",\r\n      action: () => {\r\n        this.OpenDocumentacion();\r\n      },\r\n    },\r\n  ];\r\n\r\n  //listado de más opciones --\r\n  moreOptions: SPlusMoreOption[] = [\r\n    {\r\n      id: \"CrearCargo\",\r\n      showIn: ProcessType.view,\r\n      text: \"Crear nuevo cargo\",\r\n      icon: \"fa-duotone fa-plus\",\r\n      action: () => this.newRecord(),\r\n    },\r\n    {\r\n      id: \"EliminarCargo\",\r\n      showIn: ProcessType.edit,\r\n      text: \"Eliminar\",\r\n      icon: \"fa-solid fa-trash-can\",\r\n      action: () => this.dialogEliminar(),\r\n    },\r\n  ];\r\n  departamentoCargo: DefaultModelDTO[] = []\r\n  searchingDocument = false;\r\n  private unsubcribe$ = new Subject<void>();\r\n\r\n  private sPlusFormsDialogsService = inject(SPlusFormsDialogsService);\r\n  SubDepartamentoCargo: DefaultModelDTO[];\r\n  constructor(\r\n\r\n    private cargosSettings: CargosSettings,\r\n    private cargosService: CargosService,\r\n  ) {\r\n\r\n    super()\r\n\r\n    this.controlProcess();\r\n\r\n    this.routingState.loadRouting();\r\n    this.router.events.pipe(takeUntil(this.unsubcribe$)).subscribe((event) => {\r\n      if (event instanceof NavigationEnd) {\r\n        this.controlProcess();\r\n      }\r\n    });\r\n\r\n\r\n  }\r\n\r\n  onSubmit(event: any): void {\r\n    event.preventDefault();\r\n    this.submitted = true;\r\n    if (this.FormRecord.valid) {\r\n      if (this.FormRecord.pristine || this.searchingDocument) return;\r\n      this.isLoading = true;\r\n      if (this.processType === this.ProcessType.edit) {\r\n        this.UpdateRecord();\r\n      } else {\r\n        this.SaveRecord();\r\n      }\r\n    } else {\r\n      this.isLoading = false;\r\n    }\r\n  }\r\n  SaveRecord(): void {\r\n    this.cargosService\r\n      .Guardar<number>(this.FormRecord.value)\r\n      .subscribe({\r\n        next: (res) => {\r\n          this.isLoading = false;\r\n          if (res) {\r\n            this.router.navigate([`${res}`], {\r\n              queryParams: { mode: \"i\" },\r\n              relativeTo: this.route,\r\n            });\r\n          }\r\n\r\n        }\r\n      });\r\n  }\r\n  UpdateRecord(): void {\r\n    this.isLoading = true;\r\n    this.submitted = true;\r\n    if (this.FormRecord.valid && !this.FormRecord.pristine) {\r\n      this.cargosService\r\n        .ActualizarRegistro<boolean>(this.FormRecord.value, this.id)\r\n        .subscribe({\r\n          next: (res) => {\r\n            this.isLoading = false;\r\n            if (res) {\r\n              this.router.navigate([], {\r\n                queryParams: { mode: \"u\" },\r\n                queryParamsHandling: \"merge\",\r\n              });\r\n            }\r\n\r\n\r\n          }\r\n        });\r\n    } else {\r\n      this.isLoading = false;\r\n    }\r\n  }\r\n  DeleteRecord(): void {\r\n    this.isDeleting = true;\r\n    this.isLoading = true;\r\n    this.cargosService.Delete<boolean>(this.id).subscribe({\r\n      next: (res) => {\r\n        if (res) {\r\n          this.isDeleting = false;\r\n          this.router.navigate([\"../\"], {\r\n            queryParams: { mode: \"d\" },\r\n            queryParamsHandling: \"merge\",\r\n            relativeTo: this.route,\r\n          });\r\n        }\r\n\r\n      }\r\n    });\r\n  }\r\n  LoadRecord(): void {\r\n    this.nombreCargo = \"\";\r\n    this.isLoading = true;\r\n    this.cargosService.BuscarRegistro<CargosDTO>(this.id).subscribe({\r\n      next: async (res) => {\r\n        this.isDeleting = false;\r\n        if (res) {\r\n          await this.ObtenerSubDepartamentos(res.idDepartamentoCargo)\r\n          this.datosCargo = res;\r\n          if (this.datosCargo) {\r\n            this.nombreCargo = this.datosCargo.nombre;\r\n            this.nombreCompleto = this.datosCargo.nombre\r\n            this.FormRecord.patchValue(this.datosCargo);\r\n            this.isLoading = false;\r\n\r\n\r\n          }\r\n        }\r\n      },\r\n      error: (err) => {\r\n        if (err instanceof HttpErrorResponse && err.status == 401) return;\r\n        console.warn(\"Error critico de lado del cliente\", err);\r\n        let dialogSettings = {} as SPlusDialogSettings;\r\n        dialogSettings.title = \"Cargar empleado\";\r\n        dialogSettings.description =\r\n          \"Hubo un error al intentar eliminar el empleado por favor intentelo más tarde\";\r\n        dialogSettings.actions = [{ text: \"Cerrar\" }];\r\n        this.sPlusFormsDialogsService.Show(dialogSettings);\r\n      },\r\n    });\r\n  }\r\n  goEdit(): void {\r\n    this.routingState.goEdit();\r\n  }\r\n  cancelEdit(): void {\r\n    if (this.processType === ProcessType.create) {\r\n      this.goback();\r\n    } else if (this.processType === ProcessType.edit) {\r\n      // validar si se modificó el formulario visualmente\r\n      if (!this.FormRecord.pristine) {\r\n        let dialogSettings = {} as SPlusDialogSettings;\r\n        dialogSettings.title = \"Cancelar edición\";\r\n        dialogSettings.isHtml = true;\r\n        dialogSettings.description =\r\n          \"Hay cambios pendientes por guardar. <br/>¿Estás seguro que desea cancelar la edición?\";\r\n        dialogSettings.actions = [\r\n          { text: \"Seguir Editando\" },\r\n          { text: \"Si, Cancelar\", themeColor: \"primary\", value: true },\r\n        ];\r\n        this.sPlusFormsDialogsService\r\n          .Show(dialogSettings)\r\n          .pipe(takeUntil(this.unsubcribe$))\r\n          .subscribe((result) => {\r\n            if (result instanceof SPlusDialogCloseResult) {\r\n              console.log(\"close\", result);\r\n            } else {\r\n              if (result.value) {\r\n                this.cancelUpdate();\r\n              }\r\n            }\r\n          });\r\n      } else {\r\n        this.goback();\r\n      }\r\n    }\r\n  }\r\n  /**\r\n   * Cancelar edicion\r\n   */\r\n  cancelUpdate() {\r\n    this.FormRecord.patchValue(this.datosCargo);\r\n    this.FormRecord.markAsPristine();\r\n    this.router.navigate([], {\r\n      queryParams: { mode: null },\r\n      queryParamsHandling: \"merge\",\r\n    });\r\n  }\r\n  clearForm(): void {\r\n    this.FormRecord.reset();\r\n    this.FormRecord.updateValueAndValidity();\r\n    this.submitted = false;\r\n  }\r\n  ngOnInit(): void {\r\n    this.id = this.route.snapshot.params['id'];\r\n    this.icon = this.route.snapshot.data['icon'];\r\n    this.titleService.setTitle(this.route.snapshot.data['title']);\r\n    this.loadFormComponents();\r\n    this.ObtenerDepartamentos();\r\n    this.After();\r\n\r\n  }\r\n  After() {\r\n    this.FormRecord.enable();\r\n\r\n    if (this.id) {\r\n      this.LoadRecord();\r\n    }\r\n    this.isLoading = false;\r\n\r\n  }\r\n  buscarRegistroPorNombre(nombre: string) {\r\n\r\n    if (nombre === \"\" || nombre === this.nombreCargo) {\r\n      return;\r\n    }\r\n    this.searchingDocument = true;\r\n    this.cargosService.Validar<CargosDTO>(nombre).subscribe({\r\n      next: (res) => {\r\n        this.searchingDocument = false;\r\n        if (res) {\r\n          let dialogSettings = {} as SPlusDialogSettings;\r\n          dialogSettings.title = \"Cargo Encontrado\";\r\n          dialogSettings.description = `El nombre del cargo ${nombre} ya existe.`;\r\n          dialogSettings.actions = [\r\n            { text: \"Cancelar\" },\r\n            { text: \"Ver cargo\", themeColor: \"primary\", value: true },\r\n          ];\r\n          this.sPlusFormsDialogsService\r\n            .Show(dialogSettings)\r\n            .pipe(takeUntil(this.unsubcribe$))\r\n            .subscribe((result) => {\r\n              if (result instanceof SPlusDialogCloseResult || !result.value) {\r\n                this.searchingDocument = false;\r\n                this.isLoading = false;\r\n                if (this.route.routeConfig.path !== \":id\") {\r\n                  this.FormRecord.controls['nombre'].setValue(\"\");\r\n                } else {\r\n                  this.FormRecord.controls['nombre'].setValue(\r\n                    this.nombreCargo\r\n                  );\r\n                }\r\n              } else {\r\n                if (result.value) {\r\n                  if (this.route.routeConfig.path === \":id\") {\r\n                    this.processType = this.ProcessType.view;\r\n                    this.id = res.id;\r\n                    this.LoadRecord();\r\n                    this.router.navigate([\r\n                      \"nomina/cargos\" + this.id,\r\n                    ]);\r\n                    this.searchingDocument = false;\r\n                  } else {\r\n                    this.processType = this.ProcessType.view;\r\n                    this.searchingDocument = false;\r\n                    this.router.navigate([res.id], {\r\n                      relativeTo: this.route,\r\n                    });\r\n                  }\r\n                }\r\n              }\r\n            });\r\n        }\r\n      },\r\n      error: (err) => {\r\n        if (err instanceof HttpErrorResponse && err.status == 401) return;\r\n        console.warn(\"Error critico\", err);\r\n        let dialogSettings = {} as SPlusDialogSettings;\r\n        dialogSettings.title = \"Error al consultar el cargo\";\r\n        dialogSettings.description =\r\n          \"Hubo un error al intentar consultar el cargo por favor intentelo mas tarde\";\r\n        dialogSettings.actions = [{ text: \"Cerrar\" }];\r\n        this.sPlusFormsDialogsService.Show(dialogSettings);\r\n        this.isLoading = false;\r\n        this.searchingDocument = false;\r\n      },\r\n    });\r\n\r\n  }\r\n  /**\r\n  * Cargar datos departamentos\r\n  */\r\n  ObtenerDepartamentos() {\r\n\r\n    this.cargosService.ObtenerDepartamentos<DefaultModelDTO[]>().subscribe({\r\n      next: (res) => {\r\n        if (res) {\r\n          this.departamentoCargo = res;\r\n        }\r\n      },\r\n      error: (err) => {\r\n        if (err instanceof HttpErrorResponse && err.status == 401) return;\r\n        this.FormRecord.enable();\r\n        console.warn(err);\r\n        let dialogSettings = {} as SPlusDialogSettings;\r\n        dialogSettings.title = \"Error cargar listado\";\r\n        dialogSettings.description =\r\n          \"Error de comunicacion con el server por favor intentelo mas tarde\";\r\n        dialogSettings.actions = [{ text: \"Cerrar\" }];\r\n        this.sPlusFormsDialogsService.Show(dialogSettings);\r\n      },\r\n    });\r\n  }\r\n  async ObtenerSubDepartamentos(data: number) {\r\n    this.FormRecord.get(\"idSubDepartamentoEmpleado\").reset();\r\n\r\n    this.SubDepartamentoCargo = await this.cargosService.ObtenerSubDepartamentosAsync<DefaultModelDTO[]>(data);\r\n\r\n  }\r\n  /**\r\n     * Abreviacion para acceder a los controles del FormRecord\r\n     */\r\n  public get f(): any {\r\n    return this.FormRecord.controls;\r\n  }\r\n  /**\r\n    * Componentes del formulario\r\n    */\r\n  loadFormComponents() {\r\n    this.FormRecord = this.cargosSettings.FormComponents();\r\n  }\r\n  ngOnDestroy() {\r\n    this.unsubcribe$.next();\r\n    this.unsubcribe$.complete();\r\n  }\r\n\r\n  /**\r\n   * Determina el estado de la pantalla (insercion, vista, edicion, eliminacion)\r\n   */\r\n  controlProcess() {\r\n    const params = this.util.decodeURLParams(this.router.url);\r\n    const mode = params.mode;\r\n\r\n    if (this.route.routeConfig.path === \":id\") {\r\n      if (mode === \"e\") {\r\n        this.processType = ProcessType.edit;\r\n      } else {\r\n        this.processType = ProcessType.view;\r\n      }\r\n      this.showMessageProcess = mode === \"i\" || mode === \"u\";\r\n\r\n      this.messageProcess.title = \"Confirmación\";\r\n      this.messageProcess.message = \"Cargos guardado exitosamente\";\r\n      this.messageProcess.type = \"success\";\r\n      if (mode === \"df\") {\r\n        this.processType = ProcessType.view;\r\n        this.messageProcess.title = \"Error\";\r\n        this.messageProcess.message =\r\n          \"No se puede eliminar el cargo porque tiene información asociada\";\r\n        this.messageProcess.type = \"error\";\r\n        this.showMessageProcess = true;\r\n      }\r\n    } else {\r\n      if (mode === \"d\") {\r\n        this.processType = ProcessType.create;\r\n        this.messageProcess.title = \"Confirmación\";\r\n        this.messageProcess.message = \"Cargo Eliminado exitosamente\";\r\n        this.messageProcess.type = \"success\";\r\n\r\n        this.showMessageProcess = true;\r\n      }\r\n\r\n      if (mode === \"df\") {\r\n        this.processType = ProcessType.edit;\r\n        this.messageProcess.title = \"Error\";\r\n        this.messageProcess.message =\r\n          \"No se puede eliminar el cargo porque tiene información asociada\";\r\n        this.messageProcess.type = \"error\";\r\n        this.showMessageProcess = true;\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n    * Nuevo registro\r\n    */\r\n  override newRecord() {\r\n    this.routingState.newRecord(this.route);\r\n  }\r\n  /**\r\n    * Abre alerta para eliminar registro\r\n    */\r\n  dialogEliminar() {\r\n    let dialogSettings = {} as SPlusDialogSettings;\r\n    dialogSettings.title = \"Eliminar Cargo\";\r\n    dialogSettings.description =\r\n      \"¿Estas seguro que desea eliminar este cargo?\";\r\n    dialogSettings.actions = [\r\n      { text: \"Cancelar\" },\r\n      { text: \"Si, Eliminar\", themeColor: \"warning\", value: true },\r\n    ];\r\n    this.sPlusFormsDialogsService\r\n      .Show(dialogSettings)\r\n      .pipe(takeUntil(this.unsubcribe$))\r\n      .subscribe((result) => {\r\n        if (result instanceof SPlusDialogCloseResult) {\r\n          console.log(\"close\", result);\r\n        } else {\r\n          if (result.value) {\r\n            this.DeleteRecord();\r\n          }\r\n        }\r\n      });\r\n  }\r\n}\r\n", "<splus-forms id=\"cargosPage\" [submit]=\"submitted\" [messageProcess]=\"messageProcess\"\r\n  [showMessageProcess]=\"showMessageProcess\" [FormRecord]=\"FormRecord\">\r\n\r\n  <form [formGroup]=\"FormRecord\" (ngSubmit)=\"onSubmit($event)\" autocomplete=\"off\"\r\n    [ngClass]=\"{'formGroup-read': processType == ProcessType.view}\">\r\n    <splus-forms-header [isLoading]=\"isLoading\">\r\n      <splus-forms-main-title [title]=\"'Cargos'\"\r\n        [titleData]=\"processType == ProcessType.view ? nombreCompleto : 'Cargos'\" [icon]=\"icon\">\r\n      </splus-forms-main-title>\r\n\r\n      <div *ngIf=\"processType == ProcessType.view || processType == ProcessType.edit\">\r\n        <div class=\"sub-title-info \">\r\n          {{nombreCompleto | uppercase }}\r\n\r\n          <div *ngIf=\"isLoading\">\r\n\r\n            <div class=\"k-hbox\">\r\n              <kendo-skeleton shape=\"text\" animation=\"pulse\" width=\"100px\"></kendo-skeleton> &nbsp;\r\n              <kendo-skeleton shape=\"text\" animation=\"pulse\" width=\"70px\"></kendo-skeleton> &nbsp;\r\n              <kendo-skeleton shape=\"text\" animation=\"pulse\" width=\"90px\"></kendo-skeleton>\r\n            </div>\r\n          </div>\r\n\r\n\r\n        </div>\r\n      </div>\r\n\r\n\r\n      <splus-forms-toolbar [options]=\"options\">\r\n        <splus-forms-toolbar-buttons [moreOptions]=\"moreOptions\" [processType]=\"processType\">\r\n\r\n          <button type=\"Submit\" [disabled]=\"isLoading\"\r\n            *ngIf=\"processType == ProcessType.create || processType == ProcessType.edit\" kendoButton rounded=\"small\"\r\n            themeColor=\"primary\">\r\n            <i class=\"fa-solid fa-floppy-disk\"></i> Guardar\r\n          </button>\r\n\r\n          <button [disabled]=\"isLoading\"  type=\"button\" *ngIf=\"processType == ProcessType.view\" kendoButton\r\n            rounded=\"small\" themeColor=\"primary\" (click)=\"goEdit()\">\r\n            <i class=\"fa-solid fa-pencil\"></i> Editar\r\n          </button>\r\n\r\n          <button *ngIf=\"processType == ProcessType.edit\" type=\"button\" kendoButton rounded=\"small\" themeColor=\"base\"\r\n            (click)=\"cancelEdit()\">\r\n            Cancelar\r\n          </button>\r\n\r\n          <button *ngIf=\"processType == ProcessType.view\" type=\"button\" kendoButton rounded=\"small\" themeColor=\"base\"\r\n            (click)=\"goback()\">\r\n            Volver\r\n          </button>\r\n\r\n          <button *ngIf=\"processType == ProcessType.create\" type=\"button\" kendoButton rounded=\"small\" themeColor=\"base\"\r\n            (click)=\"clearForm()\">\r\n            Limpiar\r\n          </button>\r\n\r\n        </splus-forms-toolbar-buttons>\r\n      </splus-forms-toolbar>\r\n\r\n\r\n    </splus-forms-header>\r\n\r\n    <splus-forms-fields [processType]=\"processType\">\r\n\r\n\r\n\r\n\r\n      <splus-forms-group [title]=\"'Información Básica'\" #grupoBasico>\r\n\r\n\r\n        <splus-field #nombre *ngVar=\"f.nombre as ctrl\" [splusFormControl]=\"ctrl\">\r\n          <kendo-textbox splusInput [splusField]=\"nombre\" [splusGroup]=\"grupoBasico\" type=\"text\" [id]=\"ctrl.nameControl\"\r\n            [formControl]=\"ctrl\" (blur)=\"buscarRegistroPorNombre(ctrl.value)\">\r\n\r\n            <ng-template kendoTextBoxPrefixTemplate>\r\n              <div class=\"m-1\">\r\n                <i [ngClass]=\"icon\"></i>\r\n              </div>\r\n              <kendo-textbox-separator></kendo-textbox-separator>\r\n            </ng-template>\r\n\r\n            <ng-template kendoTextBoxSuffixTemplate>\r\n              <div *ngIf=\"searchingDocument\" class=\"k-i-loading w-5\">&nbsp;</div>\r\n            </ng-template>\r\n\r\n          </kendo-textbox>\r\n\r\n        </splus-field>\r\n        <splus-field *ngVar=\"f.idDepartamentoCargo as ctrl\" [splusFormControl]=\"ctrl\" #idDepartamentoCargo>\r\n          <kendo-dropdownlist #select splusInput [splusField]=\"idDepartamentoCargo\" [splusGroup]=\"grupoBasico\"\r\n            [formControl]=\"ctrl\" [data]=\"departamentoCargo\" [textField]=\"'nombre'\" [valueField]=\"'id'\" (valueChange)=\"ObtenerSubDepartamentos($event)\"\r\n            [valuePrimitive]=\"true\">\r\n          </kendo-dropdownlist>\r\n\r\n          <ng-template splusFieldViewModeTemplate>\r\n            {{select[\"text\"]}}\r\n          </ng-template>\r\n        </splus-field>\r\n      <splus-field *ngVar=\"f.idSubDepartamentoEmpleado as ctrl\" [splusFormControl]=\"ctrl\">\r\n          <kendo-dropdownlist #select splusInput [splusGroup]=\"grupoBasico\" [formControl]=\"ctrl\"\r\n              [data]=\"SubDepartamentoCargo\" [textField]=\"'nombre'\" [valueField]=\"'id'\"\r\n              [clearButton]=\"select.isOpen\" [valuePrimitive]=\"true\">\r\n\r\n              <ng-template kendoDropDownListNoDataTemplate>\r\n                  <div>\r\n                      <i class=\"fa-sharp fa-regular fa-circle-exclamation\"></i><br />\r\n                      No hay datos.<br /> por favor seleccione un departamento.\r\n                  </div>\r\n              </ng-template>\r\n\r\n          </kendo-dropdownlist>\r\n\r\n          <ng-template splusFieldViewModeTemplate>\r\n              {{select[\"text\"]}}\r\n          </ng-template>\r\n      </splus-field>\r\n        <splus-field *ngVar=\"f.salario as ctrl\" [splusFormControl]=\"ctrl\">\r\n          <kendo-numerictextbox splusInput [splusGroup]=\"grupoBasico\" [id]=\"ctrl?.nameControl\" [spinners]=\"false\"\r\n            [format]=\"{ currency: 'COP' }\" [formControl]=\"ctrl\"></kendo-numerictextbox>\r\n\r\n          <ng-template splusFieldViewModeTemplate>\r\n            {{ ctrl?.value | currency:'$':'symbol':'1.0-0' }}\r\n          </ng-template>\r\n        </splus-field>\r\n\r\n      </splus-forms-group>\r\n\r\n\r\n      <splus-forms-group [title]=\"'Descripción Cargo'\" #grupoDescrpcion [mainLayout]=\"'layout-simple'\">\r\n        <splus-field *ngVar=\"f.descripcion as ctrl\" [splusFormControl]=\"ctrl\">\r\n          <kendo-textarea splusInput [splusGroup]=\"grupoDescrpcion\" type=\"text\" [id]=\"ctrl.namecontrol\" [rows]=\"3\"\r\n            [formControl]=\"ctrl\">\r\n          </kendo-textarea>\r\n        </splus-field>\r\n      </splus-forms-group>\r\n\r\n\r\n\r\n    </splus-forms-fields>\r\n\r\n  </form>\r\n</splus-forms>\r\n", "import { Injectable } from \"@angular/core\";\r\nimport { HttpErrorResponse, HttpClient, HttpParams } from \"@angular/common/http\";\r\n\r\nimport { RequestResult } from \"src/app/models/General/RequestModel\";\r\nimport { ControllerApiList } from \"@app/models/SaludPlus/Controller/ControllerList\";\r\nimport { SaludPlusApiResponse } from \"@src/app/models/base/SaludplusApiResponse\";\r\nimport { lastValueFrom, map, Observable, retry } from \"rxjs\";\r\nimport { RequestResultServiceService } from \"@src/app/services/Generals/request-result-service.service\";\r\nimport { Empleados } from \"@src/app/models/Nomina/Empleados.model\";\r\nimport { CargosDTO } from \"@src/app/models/Nomina/Cargos\";\r\n\r\n@Injectable({\r\n  providedIn: \"root\",\r\n})\r\nexport class CargosService {\r\n  static instance: CargosService;\r\n  error: HttpErrorResponse;\r\n  constructor(\r\n    private http: HttpClient,\r\n    private resolveRequestResultService: RequestResultServiceService,) {\r\n      CargosService.instance = this;\r\n  }\r\n\r\n  /**\r\n   * Guardar registro\r\n   * @param Datos datos a guardar\r\n   */\r\n  Guardar<T>(Datos: CargosDTO) {\r\n    return this.http.post<SaludPlusApiResponse<T>>(\r\n      `${ControllerApiList.Nomina.Cargos}`,\r\n      Datos\r\n    ).pipe(map(response => {\r\n      return this.resolveRequestResultService.resolve<T>(response);\r\n    }));\r\n  }\r\n  /**\r\n   * Actualizar\r\n   * @param Datos datos a actualizar\r\n   * @param id id a actualizar\r\n   */\r\n  ActualizarRegistro<T>(Datos: CargosDTO, id: number) {\r\n    Datos.id = id;\r\n    const record = this.http.put<SaludPlusApiResponse<T>>(\r\n      `${ControllerApiList.Nomina.Cargos}`,\r\n      Datos\r\n    ).pipe(map(response => {\r\n      return this.resolveRequestResultService.resolve<T>(response);\r\n    }));\r\n\r\n    return record;\r\n  }\r\n\r\n  /**\r\n   * Buscar cargo por su id\r\n   * @param id Identificador del registro\r\n   * @returns\r\n   */\r\n  BuscarRegistro<T>(id: number): Observable<T> {\r\n    let params = new HttpParams().set(\"idCargo\", id);\r\n    const record = this.http.get<SaludPlusApiResponse<T>>(\r\n      `${ControllerApiList.Nomina.Cargos}`,\r\n      {\r\n        params: params,\r\n      }\r\n    ).pipe(map(response => {\r\n      return this.resolveRequestResultService.resolve<T>(response);\r\n    }));\r\n    return record;\r\n\r\n\r\n\r\n  }\r\n  /**\r\n   * Eliminar registro por su id\r\n   * @param id Identificador del registro\r\n   * @returns\r\n   */\r\n  Delete<T>(id: number): Observable<T> {\r\n    let params = new HttpParams().set(\"idCargo\", id);\r\n    const record = this.http.delete<SaludPlusApiResponse<T>>(\r\n      `${ControllerApiList.Nomina.Cargos}`,\r\n      {\r\n        params: params,\r\n      }\r\n    ).pipe(map(response => {\r\n      return this.resolveRequestResultService.resolve<T>(response);\r\n    }));\r\n\r\n    return record;\r\n  }\r\n\r\n  /**\r\n   * Buscar registro por documento\r\n   * @param documento numero de documento\r\n   */\r\n  Validar<T>(nombre: string): Observable<T> {\r\n    const fromObject =\r\n    {\r\n      \"nombre\": nombre\r\n    }\r\n\r\n    let params = new HttpParams({ fromObject: fromObject });\r\n\r\n    const record = this.http.get<SaludPlusApiResponse<T>>(\r\n      `${ControllerApiList.Nomina.Cargos}/Validar`, {\r\n      params: params,\r\n    }\r\n    ).pipe(map(response => {\r\n      return this.resolveRequestResultService.resolve<T>(response,false);\r\n    }));\r\n    return record;\r\n  }\r\n  /**\r\n  * Obtener Tipos de documentos\r\n  * @returns Observable<SaludPlusApiResponse<T>>\r\n  */\r\n  ObtenerDepartamentos<T>(): Observable<T> {\r\n    const record = this.http.get<SaludPlusApiResponse<T>>(\r\n      `${ControllerApiList.Nomina.Cargos}/Departamentos`\r\n    ).pipe(map(response => {\r\n      return this.resolveRequestResultService.resolve<T>(response);\r\n    }));\r\n\r\n    return record;\r\n  }\r\n  async ObtenerSubDepartamentosAsync<T>(idDepartamento: number): Promise<T> {\r\n    const fromObject =\r\n    {\r\n      \"idDepartamento\": idDepartamento\r\n    }\r\n\r\n    let params = new HttpParams({ fromObject: fromObject });\r\n    const record = this.http.get<SaludPlusApiResponse<T>>(\r\n      `${ControllerApiList.Nomina.Cargos}/SubDepartamentos`, {params:params}\r\n    ).pipe(map(response => {\r\n      return this.resolveRequestResultService.resolve<T>(response);\r\n    }));\r\n    const dataResponse = await lastValueFrom(record);\r\n    return dataResponse;\r\n\r\n  }\r\n\r\n\r\n\r\n}\r\n", "import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport { AuthGuard } from \"@app/services/Security/guard.service\";\r\nimport { AppSettings } from \"@app/helpers/AppSettings\";\r\nimport { SearchInListComponent } from \"@src/app/core/Search/search-in-list/search-in-list.component\";\r\nimport { CargosComponent } from \"./components/cargos.component\";\r\nimport { CargosSettings } from \"./config/cargos.settings\";\r\n\r\nconst routes: Routes = [\r\n  {\r\n    path: \"listado\",\r\n    component: SearchInListComponent,\r\n    data: { title: \"Contratos\" },\r\n  },\r\n  { path: \"\", component: CargosComponent },\r\n  { path: \":id\", component: CargosComponent },\r\n];\r\n\r\n@NgModule({\r\n  imports: [RouterModule.forChild(routes)],\r\n  exports: [RouterModule],\r\n})\r\nexport class CargosRoutingModule {\r\n\r\n  //Routing principal\r\n  public static RoutingCargos = {\r\n    path: \"nomina/cargos\",\r\n    loadChildren: () =>\r\n      import(\"./cargos.module\").then(\r\n        (m) => m.CargosModule\r\n      ),\r\n    canActivate: [AuthGuard],\r\n    data: {\r\n      title: `Contratos`,\r\n      icon: \"fa-duotone fa-solid fa-briefcase\",\r\n      setting: CargosSettings,\r\n    },\r\n  };\r\n}\r\n"],
  "mappings": "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",
  "names": ["CargosSettings", "constructor", "router", "route", "Load", "__async", "loadFormSearch", "search", "FormSearch", "formComponents", "FormComponents", "configSearch", "title", "titleIcon", "apiSearch", "ControllerApiList", "Nomina", "Cargos", "apiSearchResult", "apiSearchVersion", "filtersRecently", "LoadSimpleFilter", "buttonNewRecordText", "MethodRequest", "EndPointMethods", "GET", "buttonNewRecordClick", "newRecord", "settings", "objectKey", "sortV3", "visible", "fields", "renderLabel", "autoSize", "module", "pipe", "icon", "click", "row", "goView", "filters", "type", "SearchTypeFilter", "Text", "navigate", "relativeTo", "goEdit", "id", "queryParams", "mode", "queryParamsHandling", "UntypedFormGroup", "nombre", "TegettFormControl", "formState", "validatorOrOpts", "Validators", "required", "label", "typeField", "TypeField", "Input", "nameControl", "idDepartamentoCargo", "List", "dataTextField", "dataValueField", "importNoRequired", "searchType", "idSubDepartamentoEmpleado", "salario", "descripcion", "field", "text", "separator", "value", "isDefault", "\u0275\u0275directiveInject", "Router", "ActivatedRoute", "selectors", "standalone", "decls", "vars", "template", "rf", "ctx", "encapsulation", "init_core", "init_esm", "init_esm", "CargosService", "constructor", "http", "resolveRequestResultService", "instance", "Guardar", "Datos", "post", "ControllerApiList", "Nomina", "Cargos", "pipe", "map", "response", "resolve", "ActualizarRegistro", "id", "put", "BuscarRegistro", "params", "HttpParams", "set", "get", "Delete", "delete", "Validar", "nombre", "fromObject", "ObtenerDepartamentos", "ObtenerSubDepartamentosAsync", "idDepartamento", "__async", "record", "lastValueFrom", "\u0275\u0275inject", "HttpClient", "RequestResultServiceService", "factory", "\u0275fac", "providedIn", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275template", "CargosComponent_div_4_div_4_Template", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "ctx_r1", "nombreCompleto", "\u0275\u0275property", "isLoading", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r3", "\u0275\u0275nextContext", "\u0275\u0275resetView", "goEdit", "_r4", "cancelEdit", "_r5", "goback", "_r6", "clearForm", "icon", "CargosComponent_splus_field_15_ng_template_4_div_0_Template", "searchingDocument", "ctrl_r8", "_r7", "ngVar", "buscarRegistroPorNombre", "value", "CargosComponent_splus_field_15_ng_template_3_Template", "CargosComponent_splus_field_15_ng_template_4_Template", "nombre_r9", "grupoBasico_r10", "nameControl", "select_r12", "$event", "_r11", "ObtenerSubDepartamentos", "CargosComponent_splus_field_16_ng_template_4_Template", "ctrl_r13", "idDepartamentoCargo_r14", "departamentoCargo", "select_r15", "CargosComponent_splus_field_17_ng_template_3_Template", "CargosComponent_splus_field_17_ng_template_4_Template", "ctrl_r16", "SubDepartamentoCargo", "isOpen", "\u0275\u0275pipeBind4", "ctrl_r17", "CargosComponent_splus_field_18_ng_template_2_Template", "\u0275\u0275pureFunction0", "_c1", "ctrl_r18", "grupoDescrpcion_r19", "namecontrol", "CargosComponent", "SplusBaseForm", "constructor", "cargosSettings", "cargosService", "id", "submitted", "isDeleting", "processType", "ProcessType", "create", "messageProcess", "SPlusProcessMessageComponent", "nombreCargo", "options", "text", "link", "action", "OpenDocumentacion", "moreOptions", "showIn", "view", "newRecord", "edit", "dialogEliminar", "unsubcribe$", "Subject", "sPlusFormsDialogsService", "inject", "SPlusFormsDialogsService", "controlProcess", "routingState", "loadRouting", "router", "events", "pipe", "takeUntil", "subscribe", "event", "NavigationEnd", "onSubmit", "preventDefault", "FormRecord", "valid", "pristine", "UpdateRecord", "SaveRecord", "Guardar", "next", "res", "navigate", "queryParams", "mode", "relativeTo", "route", "ActualizarRegistro", "queryParamsHandling", "DeleteRecord", "Delete", "LoadRecord", "BuscarRegistro", "__async", "idDepartamentoCargo", "datosCargo", "nombre", "patchValue", "error", "err", "HttpErrorResponse", "status", "console", "warn", "dialogSettings", "title", "description", "actions", "Show", "isHtml", "themeColor", "result", "SPlusDialogCloseResult", "log", "cancelUpdate", "markAsPristine", "reset", "updateValueAndValidity", "ngOnInit", "snapshot", "params", "data", "titleService", "setTitle", "loadFormComponents", "ObtenerDepartamentos", "After", "enable", "Validar", "routeConfig", "path", "controls", "setValue", "get", "ObtenerSubDepartamentosAsync", "f", "FormComponents", "ngOnDestroy", "complete", "util", "decodeURLParams", "url", "showMessageProcess", "message", "type", "\u0275\u0275directiveInject", "CargosSettings", "CargosService", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "decls", "vars", "consts", "template", "rf", "ctx", "i0", "_r1", "CargosComponent_div_4_Template", "CargosComponent_button_7_Template", "CargosComponent_button_8_Template", "CargosComponent_button_9_Template", "CargosComponent_button_10_Template", "CargosComponent_button_11_Template", "CargosComponent_splus_field_15_Template", "CargosComponent_splus_field_16_Template", "CargosComponent_splus_field_17_Template", "CargosComponent_splus_field_18_Template", "CargosComponent_splus_field_21_Template", "\u0275\u0275pureFunction1", "_c0", "idSubDepartamentoEmpleado", "salario", "descripcion", "routes", "path", "component", "SearchInListComponent", "data", "title", "CargosComponent", "CargosRoutingModule", "RoutingCargos", "loadChildren", "then", "m", "CargosModule", "canActivate", "AuthGuard", "icon", "setting", "CargosSettings", "RouterModule", "forChild"]
}