{"version":3,"sources":["/./guid.ts","/./node_modules/moment/locale sync ^\\.\\/.*$","/./src/app/app.component.html","/./src/app/components/common/footer/footer.template.html","/./src/app/components/common/layouts/basicLayout.template.html","/./src/app/components/common/layouts/blankLayout.template.html","/./src/app/components/common/layouts/topLayout.template.html","/./src/app/components/common/navigation/navigation.template.html","/./src/app/components/common/topnavbar/topnavbar.template.html","/./src/app/components/common/topnavbar/topnavigationnavbar.template.html","/./src/app/views/appviews/common/customer/customer.template.html","/./src/app/views/appviews/dashboard/dashboard.template.html","/./src/app/views/appviews/employees/employee-documents/employee-documents.template.html","/./src/app/views/appviews/employees/employee-update.template.html","/./src/app/views/appviews/employees/list-employees.template.html","/./src/app/views/appviews/incident/detail/incident.detail.template.html","/./src/app/views/appviews/incident/incident.template.html","/./src/app/views/appviews/login/login.template.html","/./src/app/views/appviews/opening/requisition-detail/requisition-detail.template.html","/./src/app/views/appviews/opening/requisition-detail/requisition-edit/requisition-edit.template.html","/./src/app/views/appviews/opening/requisition-detail/requisition-tracking/requisition-tracking.template.html","/./src/app/views/appviews/opening/requisition-review/requisition-review.template.html","/./src/app/views/appviews/organization/companies/companies.template.html","/./src/app/views/appviews/payroll/commissions/commission-detail.template.html","/./src/app/views/appviews/payroll/commissions/external/external-customer-commission.template.html","/./src/app/views/appviews/payroll/commissions/list-commissions.template.html","/./src/app/views/appviews/payroll/payrolls/external/external-customer-payroll.template.html","/./src/app/views/appviews/payroll/payrolls/list-payrolls.template.html","/./src/app/views/appviews/payroll/payrolls/payroll-detail.template.html","/./src/app/views/appviews/payroll/retroactives/retroactives.template.html","/./src/app/views/appviews/quote/budgets/approval/budget-approval-summary.template.html","/./src/app/views/appviews/quote/budgets/approval/budget-approval.template.html","/./src/app/views/appviews/quote/budgets/budget.template.html","/./src/app/views/appviews/quote/budgets/list-budgets.template.html","/./src/app/views/appviews/quote/customer-commissions/customer-commissions.template.html","/./src/app/views/appviews/quote/customers/customers.template.html","/./src/app/views/appviews/quote/notes/notes.template.html","/./src/app/views/appviews/quote/positions/list-positions.template.html","/./src/app/views/appviews/quote/positions/position.template.html","/./src/app/views/appviews/quote/products/products.template.html","/./src/app/views/appviews/quote/projects/projects.template.html","/./src/app/views/appviews/quote/working-days/working-days.template.html","/./src/app/views/appviews/recruitment/external/enter-address/enter-address.template.html","/./src/app/views/appviews/recruitment/external/external-recruitment.template.html","/./src/app/views/appviews/recruitment/external/external-request-capture.template.html","/./src/app/views/appviews/recruitment/profile/profile.template.html","/./src/app/views/appviews/recruitment/request-review/request-review.template.html","/./src/app/views/appviews/recruitment/request/request.template.html","/./src/app/views/appviews/request/employee/employee.template.html","/./src/app/views/appviews/request/holiday/holiday-approval.template.html","/./src/app/views/appviews/request/holiday/holiday-request.template.html","/./src/app/views/appviews/request/inability/inability-records.template.html","/./src/app/views/appviews/request/inability/inability-request.template.html","/./src/app/views/appviews/request/legal/demands/authority-1/1-demand-process/demand-process.template.html","/./src/app/views/appviews/request/legal/demands/authority-1/2-conciliatory-appointment/conciliatory-appointment.template.html","/./src/app/views/appviews/request/legal/demands/authority-1/3-reception-demand/reception-demand.template.html","/./src/app/views/appviews/request/legal/demands/authority-1/4-answer-demand/answer-demand.template.html","/./src/app/views/appviews/request/legal/demands/authority-1/5-offer-admission-evidences/offer-admission-evidences.template.html","/./src/app/views/appviews/request/legal/demands/authority-1/6-release-evidences/release-evidences.template.html","/./src/app/views/appviews/request/legal/demands/authority-1/7-allegation/allegation.template.html","/./src/app/views/appviews/request/legal/demands/authority-1/8-laudo/laudo.template.html","/./src/app/views/appviews/request/legal/demands/authority-2/1-conciliatory-appointment/conciliatory-appointment-court.template.html","/./src/app/views/appviews/request/legal/demands/authority-2/2-preliminary-audience/preliminary-audience.template.html","/./src/app/views/appviews/request/legal/demands/authority-2/3-judgment-audience/judgment-audience.template.html","/./src/app/views/appviews/request/legal/demands/demand.template.html","/./src/app/views/appviews/request/legal/liquidation/approval/approve-conciliation-own.template.html","/./src/app/views/appviews/request/legal/liquidation/liquidation-detail/liquidation-detail.template.html","/./src/app/views/appviews/request/legal/liquidation/liquidation.template.html","/./src/app/views/appviews/request/legal/liquidation/list-liquidations.template.html","/./src/app/views/appviews/request/relocation/relocation-records.template.html","/./src/app/views/appviews/request/relocation/relocation.template.html","/./src/app/views/appviews/request/work-leave/work-leave-records.template.html","/./src/app/views/appviews/request/work-leave/work-leave.template.html","/./src/app/views/appviews/security/Role/role.template.html","/./src/app/views/appviews/security/account-activation/account-activation.template.html","/./src/app/views/appviews/security/change-password/change-password.template.html","/./src/app/views/appviews/security/system/system.template.html","/./src/app/views/appviews/security/user/user.template.html","/./src/app/views/modales/budget/duplicate/modal-duplicate.template.html","/./src/app/views/modales/budget/notes/modal-notes.template.html","/./src/app/views/modales/budget/versions/modal-versions.template.html","/./src/app/views/modales/common/modal-reason.template.html","/./src/app/views/modales/customer/budget-approver/modal-budget-approver.template.html","/./src/app/views/modales/customer/modal-customer.template.html","/./src/app/views/modales/customer/plan/modal-plan.template.html","/./src/app/views/modales/customer/project/modal-project.template.html","/./src/app/views/modales/demand/audience-judgment-evidence/modal-audience-judgment-evidence.template.html","/./src/app/views/modales/demand/demand-cost/modal-demand-cost.template.html","/./src/app/views/modales/demand/offter-admission-evidences/modal-offter-admission-evidences.template.html","/./src/app/views/modales/demand/offter-release-evidence/modal-release-evidence.template.html","/./src/app/views/modales/demand/preliminary-audience-evidences/modal-preliminary-audience-evidences.template.html","/./src/app/views/modales/demand/restart-demand/modal-restart-demand.template.html","/./src/app/views/modales/employees/basic-data/modal-basic-data.template.html","/./src/app/views/modales/employees/modal-employees.template.html","/./src/app/views/modales/employees/salary-format/modal-salary-format.template.html","/./src/app/views/modales/incident/modal.incident.template.html","/./src/app/views/modales/liquidation/discount/modal-discount-dismissal.template.html","/./src/app/views/modales/opening/requisition-tracking/modal-requisition-tracking.template.html","/./src/app/views/modales/organization/company/modal-company.template.html","/./src/app/views/modales/organization/employer-register-office/modal-employer-register-office.template.html","/./src/app/views/modales/organization/employer-register/modal-employer-register.template.html","/./src/app/views/modales/organization/risk-premium/modal-risk-premium.template.html","/./src/app/views/modales/payroll/retentions/modal-retentions.template.html","/./src/app/views/modales/position/commission/modal-commission.template.html","/./src/app/views/modales/position/customer-commission/modal-customer-commission.template.html","/./src/app/views/modales/position/massive-update/modal-massive-update.template.html","/./src/app/views/modales/position/product/modal-product.template.html","/./src/app/views/modales/position/voucher/modal-voucher.template.html","/./src/app/views/modales/position/working-day/modal-working-day.template.html","/./src/app/views/modales/recruitment/appearance/modal-appearance.template.html","/./src/app/views/modales/recruitment/employment-history/modal-employment-history-comments.template.html","/./src/app/views/modales/recruitment/employment-history/modal-employment-history.template.html","/./src/app/views/modales/recruitment/hire/modal-hire-employee.template.html","/./src/app/views/modales/recruitment/language/modal-language.template.html","/./src/app/views/modales/recruitment/reference/modal-reference.template.html","/./src/app/views/modales/recruitment/study/modal-study.template.html","/./src/app/views/modales/request/holiday/modal-reason-cancel.template.html","/./src/app/views/modales/request/holiday/modal-reason-rejection.template.html","/./src/app/views/modales/security/system-module/modal-system-module.template.html","/./src/app/views/modales/security/user-role/modal-user-role.template.html","/./src/app/views/modales/security/user/modal-user.template.html","/./src/$_lazy_route_resource lazy namespace object","/./src/app/app.component.css","/./src/app/app.component.ts","/./src/app/app.config.ts","/./src/app/app.helpers.ts","/./src/app/app.module.ts","/./src/app/app.routes.ts","/./src/app/components/common/footer/footer.component.ts","/./src/app/components/common/layouts/basicLayout.component.ts","/./src/app/components/common/layouts/blankLayout.component.ts","/./src/app/components/common/layouts/layouts.module.ts","/./src/app/components/common/layouts/topLayout.component.ts","/./src/app/components/common/navigation/navigation.component.ts","/./src/app/components/common/topnavbar/topnavbar.component.ts","/./src/app/components/common/topnavbar/topnavigationnavbar.component.ts","/./src/app/shared/directives/curp-validate.directive.ts","/./src/app/shared/directives/digit-decima-number.directive.ts","/./src/app/shared/directives/incident.directive.ts","/./src/app/shared/directives/only-number.directive.ts","/./src/app/shared/directives/search.directive.ts","/./src/app/shared/directives/search.pipe.ts","/./src/app/shared/directives/uppercase.directive.ts","/./src/app/shared/enums/budget-movement-type.enum.ts","/./src/app/shared/enums/budget-status.enum.ts","/./src/app/shared/enums/liquidation-status.enum.ts","/./src/app/shared/enums/mapper.ts","/./src/app/shared/models/request/holiday/range-holiday.class.ts","/./src/app/shared/services/auth-guard.service.ts","/./src/app/shared/services/auth.service.ts","/./src/app/shared/services/can-deactivate-guard.service.ts","/./src/app/shared/services/configuration.service.ts","/./src/app/shared/services/data.service.ts","/./src/app/shared/services/dialog.service.ts","/./src/app/shared/services/document.service.ts","/./src/app/shared/services/role-guard.service.ts","/./src/app/shared/services/security.service.ts","/./src/app/shared/services/signalr.service.ts","/./src/app/shared/services/storage.service.ts","/./src/app/shared/services/toast-position.service.ts","/./src/app/shared/services/validator.service.ts","/./src/app/shared/shared.module.ts","/./src/app/views/appviews/appviews.module.ts","/./src/app/views/appviews/commission.service.ts","/./src/app/views/appviews/common/customer/customer.component.ts","/./src/app/views/appviews/common/customer/customer.style.scss","/./src/app/views/appviews/dashboard.service.ts","/./src/app/views/appviews/dashboard/dashboard.component.ts","/./src/app/views/appviews/dashboard/dashboard.style.scss","/./src/app/views/appviews/demand.service.ts","/./src/app/views/appviews/discount.service.ts","/./src/app/views/appviews/email.service.ts","/./src/app/views/appviews/employee.service.ts","/./src/app/views/appviews/employees/employee-documents/employee-documents.component.ts","/./src/app/views/appviews/employees/employee-documents/employee-documents.style.scss","/./src/app/views/appviews/employees/employee-update.component.ts","/./src/app/views/appviews/employees/employee-update.style.scss","/./src/app/views/appviews/employees/list-employees.component.ts","/./src/app/views/appviews/employees/list-employees.style.scss","/./src/app/views/appviews/incident.service.ts","/./src/app/views/appviews/incident/detail/incident.detail.component.ts","/./src/app/views/appviews/incident/detail/incident.detail.style.scss","/./src/app/views/appviews/incident/incident.component.ts","/./src/app/views/appviews/incident/incident.style.scss","/./src/app/views/appviews/liquidation.service.ts","/./src/app/views/appviews/login/login.component.ts","/./src/app/views/appviews/message.service.ts","/./src/app/views/appviews/opening/opening.service.ts","/./src/app/views/appviews/opening/requisition-detail/requisition-detail.component.ts","/./src/app/views/appviews/opening/requisition-detail/requisition-detail.style.scss","/./src/app/views/appviews/opening/requisition-detail/requisition-edit/requisition-edit.component.ts","/./src/app/views/appviews/opening/requisition-detail/requisition-edit/requisition-edit.style.scss","/./src/app/views/appviews/opening/requisition-detail/requisition-tracking/requisition-tracking.component.ts","/./src/app/views/appviews/opening/requisition-detail/requisition-tracking/requisition-tracking.style.scss","/./src/app/views/appviews/opening/requisition-review/requisition-review.component.ts","/./src/app/views/appviews/opening/requisition-review/requisition-review.style.scss","/./src/app/views/appviews/organization/companies/companies.component.ts","/./src/app/views/appviews/organization/companies/companies.style.scss","/./src/app/views/appviews/organization/organization.service.ts","/./src/app/views/appviews/payroll.service.ts","/./src/app/views/appviews/payroll/commissions/commission-detail.component.ts","/./src/app/views/appviews/payroll/commissions/commission-detail.style.scss","/./src/app/views/appviews/payroll/commissions/external/external-customer-commission.component.ts","/./src/app/views/appviews/payroll/commissions/list-commissions.component.ts","/./src/app/views/appviews/payroll/commissions/list-commissions.style.scss","/./src/app/views/appviews/payroll/payrolls/external/external-customer-payroll.component.ts","/./src/app/views/appviews/payroll/payrolls/list-payrolls.component.ts","/./src/app/views/appviews/payroll/payrolls/list-payrolls.style.scss","/./src/app/views/appviews/payroll/payrolls/payroll-detail.component.ts","/./src/app/views/appviews/payroll/payrolls/payroll-detail.style.scss","/./src/app/views/appviews/payroll/retroactives/retroactives.component.ts","/./src/app/views/appviews/payroll/retroactives/retroactives.style.scss","/./src/app/views/appviews/quote/administration.service.ts","/./src/app/views/appviews/quote/budget.service.ts","/./src/app/views/appviews/quote/budgets/approval/budget-approval-summary.component.ts","/./src/app/views/appviews/quote/budgets/approval/budget-approval.component.ts","/./src/app/views/appviews/quote/budgets/budget.component.ts","/./src/app/views/appviews/quote/budgets/budget.style.scss","/./src/app/views/appviews/quote/budgets/list-budgets.component.ts","/./src/app/views/appviews/quote/budgets/list-budgets.style.scss","/./src/app/views/appviews/quote/customer-commissions/customer-commissions.component.ts","/./src/app/views/appviews/quote/customer-commissions/customer-commissions.style.scss","/./src/app/views/appviews/quote/customer.service.ts","/./src/app/views/appviews/quote/customers/customers.component.ts","/./src/app/views/appviews/quote/customers/customers.style.scss","/./src/app/views/appviews/quote/notes/notes.component.ts","/./src/app/views/appviews/quote/notes/notes.style.scss","/./src/app/views/appviews/quote/position.service.ts","/./src/app/views/appviews/quote/positions/list-positions.component.ts","/./src/app/views/appviews/quote/positions/list-positions.style.scss","/./src/app/views/appviews/quote/positions/position.component.ts","/./src/app/views/appviews/quote/positions/position.style.scss","/./src/app/views/appviews/quote/products/products.component.ts","/./src/app/views/appviews/quote/products/products.style.scss","/./src/app/views/appviews/quote/projects/projects.component.ts","/./src/app/views/appviews/quote/projects/projects.style.scss","/./src/app/views/appviews/quote/working-day.service.ts","/./src/app/views/appviews/quote/working-days/working-days.component.ts","/./src/app/views/appviews/quote/working-days/working-days.style.scss","/./src/app/views/appviews/recruitment/external/enter-address/enter-address.component.ts","/./src/app/views/appviews/recruitment/external/external-recruitment.component.ts","/./src/app/views/appviews/recruitment/external/external-request-capture.component.ts","/./src/app/views/appviews/recruitment/profile/profile.component.ts","/./src/app/views/appviews/recruitment/profile/profile.style.scss","/./src/app/views/appviews/recruitment/recruitment.service.ts","/./src/app/views/appviews/recruitment/request-review/request-review.component.ts","/./src/app/views/appviews/recruitment/request-review/request-review.style.scss","/./src/app/views/appviews/recruitment/request/request.component.ts","/./src/app/views/appviews/recruitment/request/request.style.scss","/./src/app/views/appviews/request/employee/employee.component.ts","/./src/app/views/appviews/request/employee/employee.style.scss","/./src/app/views/appviews/request/excel.service.ts","/./src/app/views/appviews/request/holiday.service.ts","/./src/app/views/appviews/request/holiday/holiday-approval.component.ts","/./src/app/views/appviews/request/holiday/holiday-approval.style.scss","/./src/app/views/appviews/request/holiday/holiday-request.component.ts","/./src/app/views/appviews/request/holiday/holiday-request.style.scss","/./src/app/views/appviews/request/inability.service.ts","/./src/app/views/appviews/request/inability/inability-records.component.ts","/./src/app/views/appviews/request/inability/inability-records.style.scss","/./src/app/views/appviews/request/inability/inability-request.component.ts","/./src/app/views/appviews/request/inability/inability-request.style.scss","/./src/app/views/appviews/request/legal/demands/authority-1/1-demand-process/demand-process.component.ts","/./src/app/views/appviews/request/legal/demands/authority-1/1-demand-process/demand-process.style.scss","/./src/app/views/appviews/request/legal/demands/authority-1/2-conciliatory-appointment/conciliatory-appointment.component.ts","/./src/app/views/appviews/request/legal/demands/authority-1/2-conciliatory-appointment/conciliatory-appointment.style.scss","/./src/app/views/appviews/request/legal/demands/authority-1/3-reception-demand/reception-demand.component.ts","/./src/app/views/appviews/request/legal/demands/authority-1/3-reception-demand/reception-demand.style.scss","/./src/app/views/appviews/request/legal/demands/authority-1/4-answer-demand/answer-demand.component.ts","/./src/app/views/appviews/request/legal/demands/authority-1/4-answer-demand/answer-demand.style.scss","/./src/app/views/appviews/request/legal/demands/authority-1/5-offer-admission-evidences/offer-admission-evidences.component.ts","/./src/app/views/appviews/request/legal/demands/authority-1/5-offer-admission-evidences/offer-admission-evidences.style.scss","/./src/app/views/appviews/request/legal/demands/authority-1/6-release-evidences/release-evidences.component.ts","/./src/app/views/appviews/request/legal/demands/authority-1/6-release-evidences/release-evidences.style.scss","/./src/app/views/appviews/request/legal/demands/authority-1/7-allegation/allegation.component.ts","/./src/app/views/appviews/request/legal/demands/authority-1/7-allegation/allegation.style.scss","/./src/app/views/appviews/request/legal/demands/authority-1/8-laudo/laudo.component.ts","/./src/app/views/appviews/request/legal/demands/authority-1/8-laudo/laudo.style.scss","/./src/app/views/appviews/request/legal/demands/authority-2/1-conciliatory-appointment/conciliatory-appointment-court.component.ts","/./src/app/views/appviews/request/legal/demands/authority-2/1-conciliatory-appointment/conciliatory-appointment-court.style.scss","/./src/app/views/appviews/request/legal/demands/authority-2/2-preliminary-audience/preliminary-audience.component.ts","/./src/app/views/appviews/request/legal/demands/authority-2/2-preliminary-audience/preliminary-audience.style.scss","/./src/app/views/appviews/request/legal/demands/authority-2/3-judgment-audience/judgment-audience.component.ts","/./src/app/views/appviews/request/legal/demands/authority-2/3-judgment-audience/judgment-audience.style.scss","/./src/app/views/appviews/request/legal/demands/demand.component.ts","/./src/app/views/appviews/request/legal/demands/demand.style.scss","/./src/app/views/appviews/request/legal/liquidation/approval/approve-conciliation-own.component.ts","/./src/app/views/appviews/request/legal/liquidation/liquidation-detail/liquidation-detail.component.ts","/./src/app/views/appviews/request/legal/liquidation/liquidation-detail/liquidation-detail.style.scss","/./src/app/views/appviews/request/legal/liquidation/liquidation.component.ts","/./src/app/views/appviews/request/legal/liquidation/liquidation.style.scss","/./src/app/views/appviews/request/legal/liquidation/list-liquidations.component.ts","/./src/app/views/appviews/request/legal/liquidation/list-liquidations.style.scss","/./src/app/views/appviews/request/relocation.service.ts","/./src/app/views/appviews/request/relocation/relocation-records.component.ts","/./src/app/views/appviews/request/relocation/relocation-records.style.scss","/./src/app/views/appviews/request/relocation/relocation.component.ts","/./src/app/views/appviews/request/relocation/relocation.style.scss","/./src/app/views/appviews/request/work-leave/work-leave-records.component.ts","/./src/app/views/appviews/request/work-leave/work-leave-records.style.scss","/./src/app/views/appviews/request/work-leave/work-leave.component.ts","/./src/app/views/appviews/request/work-leave/work-leave.style.scss","/./src/app/views/appviews/request/workLeave.service.ts","/./src/app/views/appviews/retroactive.service.ts","/./src/app/views/appviews/security/Role/role.component.ts","/./src/app/views/appviews/security/Role/role.style.scss","/./src/app/views/appviews/security/account-activation/account-activation.component.ts","/./src/app/views/appviews/security/change-password/change-password.component.ts","/./src/app/views/appviews/security/identity.service.ts","/./src/app/views/appviews/security/system/system.component.ts","/./src/app/views/appviews/security/system/system.style.scss","/./src/app/views/appviews/security/user/user.component.ts","/./src/app/views/appviews/security/user/user.style.scss","/./src/app/views/modales/budget/duplicate/modal-duplicate.component.ts","/./src/app/views/modales/budget/duplicate/modal-duplicate.style.scss","/./src/app/views/modales/budget/notes/modal-notes.component.ts","/./src/app/views/modales/budget/versions/modal-versions.component.ts","/./src/app/views/modales/common/modal-reason.component.ts","/./src/app/views/modales/common/modal-reason.style.scss","/./src/app/views/modales/customer/budget-approver/modal-budget-approver.component.ts","/./src/app/views/modales/customer/budget-approver/modal-budget-approver.style.scss","/./src/app/views/modales/customer/modal-customer.component.ts","/./src/app/views/modales/customer/modal-customer.style.scss","/./src/app/views/modales/customer/plan/modal-plan.component.ts","/./src/app/views/modales/customer/plan/modal-plan.style.scss","/./src/app/views/modales/customer/project/modal-project.component.ts","/./src/app/views/modales/customer/project/modal-project.style.scss","/./src/app/views/modales/demand/audience-judgment-evidence/modal-audience-judgment-evidence.component.ts","/./src/app/views/modales/demand/audience-judgment-evidence/modal-audience-judgment-evidence.style.scss","/./src/app/views/modales/demand/demand-cost/modal-demand-cost.component.ts","/./src/app/views/modales/demand/demand-cost/modal-demand-cost.style.scss","/./src/app/views/modales/demand/offter-admission-evidences/modal-offter-admission-evidences.component.ts","/./src/app/views/modales/demand/offter-admission-evidences/modal-offter-admission-evidences.style.scss","/./src/app/views/modales/demand/offter-release-evidence/modal-release-evidence.component.ts","/./src/app/views/modales/demand/offter-release-evidence/modal-release-evidence.style.scss","/./src/app/views/modales/demand/preliminary-audience-evidences/modal-preliminary-audience-evidences.component.ts","/./src/app/views/modales/demand/preliminary-audience-evidences/modal-preliminary-audience-evidences.style.scss","/./src/app/views/modales/demand/restart-demand/modal-restart-demand.component.ts","/./src/app/views/modales/demand/restart-demand/modal-restart-demand.style.scss","/./src/app/views/modales/employees/basic-data/modal-basic-data.component.ts","/./src/app/views/modales/employees/basic-data/modal-basic-data.style.scss","/./src/app/views/modales/employees/modal-employees.component.ts","/./src/app/views/modales/employees/modal-employees.style.scss","/./src/app/views/modales/employees/salary-format/modal-salary-format.component.ts","/./src/app/views/modales/employees/salary-format/modal-salary-format.style.scss","/./src/app/views/modales/incident/modal.incident.component.ts","/./src/app/views/modales/incident/modal.incident.style.scss","/./src/app/views/modales/liquidation/discount/modal-discount-dismissal.component.ts","/./src/app/views/modales/opening/requisition-tracking/modal-requisition-tracking.component.ts","/./src/app/views/modales/opening/requisition-tracking/modal-requisition-tracking.style.scss","/./src/app/views/modales/organization/company/modal-company.component.ts","/./src/app/views/modales/organization/company/modal-company.style.scss","/./src/app/views/modales/organization/employer-register-office/modal-employer-register-office.component.ts","/./src/app/views/modales/organization/employer-register-office/modal-employer-register-office.style.scss","/./src/app/views/modales/organization/employer-register/modal-employer-register.component.ts","/./src/app/views/modales/organization/employer-register/modal-employer-register.style.scss","/./src/app/views/modales/organization/risk-premium/modal-risk-premium.component.ts","/./src/app/views/modales/organization/risk-premium/modal-risk-premium.style.scss","/./src/app/views/modales/payroll/retentions/modal-retentions.component.ts","/./src/app/views/modales/payroll/retentions/modal-retentions.style.scss","/./src/app/views/modales/position/commission/modal-commission.component.ts","/./src/app/views/modales/position/commission/modal-commission.style.scss","/./src/app/views/modales/position/customer-commission/modal-customer-commission.component.ts","/./src/app/views/modales/position/customer-commission/modal-customer-commission.style.scss","/./src/app/views/modales/position/massive-update/modal-massive-update.component.ts","/./src/app/views/modales/position/massive-update/modal-massive-update.style.scss","/./src/app/views/modales/position/product/modal-product.component.ts","/./src/app/views/modales/position/product/modal-product.style.scss","/./src/app/views/modales/position/voucher/modal-voucher.component.ts","/./src/app/views/modales/position/voucher/modal-voucher.style.scss","/./src/app/views/modales/position/working-day/modal-working-day.component.ts","/./src/app/views/modales/position/working-day/modal-working-day.style.scss","/./src/app/views/modales/recruitment/appearance/modal-appearance.component.ts","/./src/app/views/modales/recruitment/employment-history/modal-employment-history-comments.component.ts","/./src/app/views/modales/recruitment/employment-history/modal-employment-history.component.ts","/./src/app/views/modales/recruitment/employment-history/modal-employment-history.style.scss","/./src/app/views/modales/recruitment/hire/modal-hire-employee.component.ts","/./src/app/views/modales/recruitment/language/modal-language.component.ts","/./src/app/views/modales/recruitment/reference/modal-reference.component.ts","/./src/app/views/modales/recruitment/reference/modal-reference.style.scss","/./src/app/views/modales/recruitment/study/modal-study.component.ts","/./src/app/views/modales/request/holiday/modal-reason-cancel.component.ts","/./src/app/views/modales/request/holiday/modal-reason-cancel.style.scss","/./src/app/views/modales/request/holiday/modal-reason-rejection.component.ts","/./src/app/views/modales/request/holiday/modal-reason-rejection.style.scss","/./src/app/views/modales/security/system-module/modal-system-module.component.ts","/./src/app/views/modales/security/user-role/modal-user-role.component.ts","/./src/app/views/modales/security/user/modal-user.component.ts","/./src/environments/environment.ts","/./src/main.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAO,MAAM,IAAI;IACf,MAAM,CAAC,OAAO;QACZ,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;YACxE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YACnE,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;;;;;;;;;;;ACPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDmD;AAClB;AACX;AACU;AACkB;AAClB;AACS;AACX;AACwB;AACuB;AACwB;AAC7B;AACT;AACjB;AACd;AACM;AACR;AACM;AACI;AACmC;AACG;AAC/D;AACc;AACO;AACkC;AAC0B;AACvC;AACT;AAC8B;AACA;AAC5C;AACqE;AACjE;AACM;AACN;AACD;AACoB;AACc;AACY;AACb;AACpB;AACqE;AACzI,SAAS,mBAAmB;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,gEAAkB,EAAE,EAAE;QAC7C,eAAe,EAAE,YAAY;KAC9B,CAAC,CAAC;AACL,CAAC;AACoD;AACH;AACI;AACtD,0EAAkB,CAAC,kEAAQ,CAAC,CAAC;AAC2D;AACF;AACZ;AACkC;AACjD;AAC2C;AACV;AACA;AAC3B;AACF;AACR;AACiC;AACT;AAChB;AAC+B;AACsB;AACd;AACpB;AACR;AACqB;AACpB;AACU;AACb;AACmB;AACT;AACvB;AACA;AACa;AACmB;AACP;AACX;AAE2B;AACT;AACb;AACX;AACM;AAClB;AACS;AACmB;AACmB;AACtB;AACjB;AACoB;AACH;AACf;AAC8B;AACoB;AACtB;AACQ;AACH;AACM;AACjC;AACqC;AACC;AACe;AACtC;AACnC;AACiF;AACtD;AACzB;AAC2B;AACyB;AACM;AACF;AAC9D;AAC4D;AACoB;AACpE;AACiC;AACnC;AACF;AACuC;AACR;AAC3B;AACqF;AAC7D;AACE;AACc;AACyB;AACT;AACd;AAC2B;AAC3B;AACZ;AAC9B;AACN;AAC+C;AACsB;AACvE;AACyD;AACvC;AACd;AACW;AACb;AACoC;AAChB;AACV;AACuB;AACA;AACc;AAEzB;AACpB;AACH;AACH;AACsE;AAC8B;AACxB;AACJ;AACL;AACmC;AACN;AACjB;AACN;AACd;AACf;AACmE;AACvB;AACmB;AAC5B;AACgB;AACnC;AACT;AACgB;AACpH,kCAAkC;AAClC,kFAAkB,EAAE,CAAC;AA4OrB,IAAa,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","file":"main-es2015.js","sourcesContent":["export class Guid {\r\n static newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n}\r\n","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-SG\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-SG.js\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n

Cargando...

\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Copyright RedProMex © 2020\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\"","module.exports = \"\\r\\n\\r\\n\"","module.exports = \"\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"
\\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n Información del cliente. Seleccione la información bajo la\\r\\n cual dará de\\r\\n alta la posición deseada. Recuerde que el cliente que usted seleccione, es quien\\r\\n podrá hacer uso de\\r\\n esta posición.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

{{item.name}}-({{item.payCompanyName}})

\\r\\n

{{item.plans}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n {{customer.codeNom}}\\r\\n \\r\\n Code NOM\\r\\n
  • \\r\\n
  • \\r\\n {{customer.riskPremiumValue}}\\r\\n \\r\\n Prima de riesgo\\r\\n
  • \\r\\n
  • \\r\\n {{customer.minimumSalary}}\\r\\n Salario mínimo UMA\\r\\n
  • \\r\\n
  • \\r\\n {{customer.agencyPercentage}} %\\r\\n Porcentaje de agencia\\r\\n
  • \\r\\n
  • \\r\\n {{customer.expensesPercentage}} %\\r\\n Porcentaje de gastos\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n {{customer.customerType != null ? customer.customerType.name : \\\"NO DEFINIDO\\\"}}\\r\\n \\r\\n Tipo de cliente\\r\\n
  • \\r\\n
  • \\r\\n {{customer.isActive ? 'ACTIVO' : 'INACTIVO'}}\\r\\n Estatus\\r\\n
  • \\r\\n
  • \\r\\n {{customer.payCompany != null ? customer.payCompany.shortName : \\\"SIN COMPAÑIA ASIGNADA\\\"}}\\r\\n Empresa que paga\\r\\n
  • \\r\\n
  • \\r\\n {{customer.administrativeExpensesPercentage}} %\\r\\n Porcentaje gastos administrativos\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Dashboard

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Datos del empleado
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{employee?.firstName}} {{employee?.lastName}} {{employee?.secondLastName}}

\\r\\n

 Número de empleado {{employee?.employeeNum}}

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n DIRECCION FISCAL\\r\\n
\\r\\n

\\r\\n CALLE: {{employeeTaxData?.street}} # INTERIOR: \\r\\n {{employeeTaxData?.interiorNumber}} # EXTERIOR: {{employeeTaxData?.externalNumber}}\\r\\n COLONIA: {{employeeTaxData?.suburb}}\\r\\n CP: {{employeeTaxData?.postalCode}}\\r\\n ESTADO: {{employeeTaxData?.state}}\\r\\n MUNICIPIO: {{employeeTaxData?.town}}\\r\\n REGIMEN: {{employeeTaxData?.regime}}\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Constancia fiscal (pdf)-2MBAcciones
{{document?.fileName}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Accesos
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

{{days}}

\\r\\n

\\r\\n Días disponibles\\r\\n

\\r\\n Vacaciones\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

-

\\r\\n

\\r\\n Recibos de nómina\\r\\n

\\r\\n Contratación:\\r\\n {{employee?.laborSeniorityDate | date:'medium'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

-

\\r\\n

\\r\\n Mis tickets\\r\\n

\\r\\n \\r\\n Incidentes\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Accesos directos
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Lista de recibos de pagos
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
PeriodoBonos y comisionesAcciones
Periodo al {{item.period | date:'longDate'}}\\r\\n Ver detalles    
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Periodo al {{receipt?.period | date:'longDate'}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ConceptoMonto
{{item.description}}{{item.value | number: '1.2-2'}}
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

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

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{item.title}}Acciones
{{item.fileName}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

Empleado

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Empleado\\r\\n
  4. \\r\\n
  5. \\r\\n Actualización\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n
  • \\r\\n
  • \\r\\n
  • \\r\\n
  • \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

Datos generales

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Hombre\\r\\n Mujer\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Información de la posición.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

Datos personales

\\r\\n
\\r\\n
\\r\\n
\\r\\n Empleado: {{ formGeneralData.get('firstName').value }} {{ formGeneralData.get('lastName').value }} {{ formGeneralData.get('secondLastName').value }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Dirección personal.\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n
\\r\\n Dirección fiscal.\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

Datos de pago

\\r\\n
\\r\\n
\\r\\n
\\r\\n Empleado: {{ formGeneralData.get('firstName').value }} {{ formGeneralData.get('lastName').value }} {{ formGeneralData.get('secondLastName').value }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

Datos básicos

\\r\\n
\\r\\n
\\r\\n
\\r\\n Empleado: {{ formGeneralData.get('firstName').value }} {{ formGeneralData.get('lastName').value }} {{ formGeneralData.get('secondLastName').value }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Escolaridad

\\r\\n
\\r\\n
\\r\\n
\\r\\n Empleado: {{ formGeneralData.get('firstName').value }} {{ formGeneralData.get('lastName').value }} {{ formGeneralData.get('secondLastName').value }}\\r\\n
\\r\\n
\\r\\n
\\r\\n Información de estudios. Debe de ingresar el último nivel del estudios\\r\\n cursado.\\r\\n
\\r\\n
Escolaridad\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Nivel de estudio\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Documento recibido\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Periodo de estudio\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

Documentos

\\r\\n
\\r\\n
\\r\\n
\\r\\n Empleado: {{ formGeneralData.get('firstName').value }} {{ formGeneralData.get('lastName').value }} {{ formGeneralData.get('secondLastName').value }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Empleados

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Empleados\\r\\n
  4. \\r\\n
  5. \\r\\n Lista de empleados\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  Limpiar filtros\\r\\n
FILTROS:
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última actualización: \\r\\n {{now | date:'dd.MM.yyyy'}}\\r\\n

Empleados

\\r\\n

\\r\\n Lista de empleados activos y bajas Rednovation.\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Compañia\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cliente\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Clave\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Apellido paterno\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Apellido materno\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Estatus\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Evento #{{event.eventId}}
\\r\\n
{{event.title}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Fecha creación:{{event.createdDate | date}}Status:\\r\\n Nuevo\\r\\n Progreso\\r\\n Pendiente\\r\\n Cerrado
Creador:{{event.ownerEmp | titlecase}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Descripción:{{event.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Incidentes Asociados\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n TituloAsignado aFechaEstatus
\\r\\n \\r\\n {{item.title}}{{item.assignedEmp | titlecase}}{{item.createdDate | date}}\\r\\n Nuevo\\r\\n Progreso\\r\\n Pendiente\\r\\n Cerrado\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Incidente #{{ticket.ticketId}}
\\r\\n
{{ticket.title}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Fecha creación:{{ticket.createdDate | date}}
Creador:{{ticket.ownerEmp | titlecase}}Estatus:\\r\\n Nuevo\\r\\n Progreso\\r\\n Pendiente\\r\\n Cerrado
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Descripción:{{ticket.description}}
\\r\\n
\\r\\n
\\r\\n Datos del ticket\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Incidentes

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Incidentes\\r\\n
  4. \\r\\n
  5. \\r\\n Lista\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Nuevo
\\r\\n

{{countOpen}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Progreso
\\r\\n

{{countInProcess}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Pendiente
\\r\\n

{{countPending}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Cerrado
\\r\\n

{{countSolved}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Filtros\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

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

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Event #Ticket #Abierto porAsignado aAsuntoDescripciónTipoStatusFecha
{{item.eventId}}{{item.ticketId}}\\r\\n {{item.ownerEmp | titlecase}}\\r\\n \\r\\n {{item.assignedEmp | titlecase}}\\r\\n \\r\\n {{item.title}}\\r\\n \\r\\n {{item.description}}\\r\\n \\r\\n Solicitud\\r\\n Incidente\\r\\n \\r\\n Nuevo\\r\\n Progreso\\r\\n Pendiente\\r\\n Cerrado\\r\\n \\r\\n {{item.createdDate | date}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Enviar a solicitud con aprobación\\r\\n\\r\\n\\r\\n Cerrar ticket\\r\\n\\r\\n\\r\\n Detalle ticket\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Bienvenido a REDPROMEX

\\r\\n

Iniciar sesión.

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

REDPROMEX © 2019 Todos los derechos reservados

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
NO. SOLICITUD
\\r\\n
#{{requisition.requestNumber}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
MARCA:{{requisition.trademarkDesc}}STATUS:{{requisition.statusRequestDesc}}
PROYECTO/PLAN:{{requisition.proyect}}/{{requisition.plan}}COMPAÑIA:{{requisition.company}}
ZONA:{{requisition.zoneDesc}}CIUDAD:{{requisition.townDesc}}/{{requisition.stateDesc}}
RUTA:{{requisition.routeName}}PUESTO:{{requisition.codeNomJob}}-{{requisition.jobDesc}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
POSICIÓN:{{requisition.codeNomPosition}}-{{requisition.positionDesc}}SUELDO DIARIO:{{requisition.dailySalary}}JORNADA:{{workingDay.description}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
FECHA DE REQUERIMIENTO:{{requisition.requisitionDate | date}}FECHA DE ARRANQUE:{{requisition.startDate | date}}
TIPO DE NOMINA:{{requisition.payrollDesc}}DIAS DE PAGO:{{requisition.payDays}}
SUPERVISOR:{{requisition.requisitionSupervisor}}RESPONSABLE NÓMINA:{{requisition.payrollOfficerDesc}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
OBSERVACION OPERACIONES:{{requisition.operationObservation}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NO.EMPLEADO:{{requisition.employeeNum}}EMPLEADO:{{requisition.employeeName}}
FECHA ALTA:{{requisition.hiringDate}}NO.PRESUPUESTO:{{requisition.budgetId}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CONCEPTOS DE PAGO:Salario:{{salary.salary}} | Ayuda de transporte:{{salary.transportHelp}} | Prima\\r\\n dominical:{{salary.sundayPremiumSalary}} | Comisión:{{salary.commissions}} | Premio de\\r\\n puntualidad:{{salary.punctualityAward}} | Premio de asistencia:{{salary.attendanceAward}} | Ayuda de\\r\\n despensa:{{salary.pantryHelp}} | Vales de despensa:{{salary.pantryVouchers}} | Vales de\\r\\n gasolina:{{salary.gasolineVouchers}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DOCUMENTOS DE EMPLEADO:\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Edición de datos de requisición. Asegúrese de capturar toda la información que\\r\\n debe capturar operaciones respecto al avance para el cubrimiento de la vacante.\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n Seguimiento de requisición. Asegúrese de capturar toda la información que\\r\\n debe capturar reclutamiento respecto al avance para el cubrimiento de la vacante.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Nombre candidato\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Estatus\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Comentarios\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Requisiciones

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Requisiciones\\r\\n
  4. \\r\\n
  5. \\r\\n Revisión de requisiciones\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  Limpiar filtros\\r\\n
FILTROS:
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n

Requisiciones

\\r\\n

\\r\\n Filtre las requisiciones de de orden de trabajo usando los campos de la sección de filtros.\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Status\\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Empleado\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha arranque\\r\\n \\r\\n \\r\\n {{value | date:'shortDate'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Reclutador\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Marca\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n CodeNom Puesto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n CodeNom Posición\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Requisición\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Posición\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Zona\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Estado\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Municipio\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Compañias

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Catálogos\\r\\n
  4. \\r\\n
  5. \\r\\n Compañias\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n

Compañias

\\r\\n

\\r\\n Filtre las compañias por razón social o CODE.\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Código\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Razón social\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
COMISION #{{headerDetail?.commissionPeriodId}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CLIENTE:{{headerDetail?.customer}}PROYECTO:{{headerDetail?.project}}STATUS{{payroll?.statusNameTitle}}
PERIODO:{{headerDetail?.periodNom}}AÑO:{{headerDetail?.year}}TIPO DE NOMINA:{{headerDetail?.payrollType}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    \\r\\n Ingrese la información requerida para el procesamiento\\r\\n de las comisiones...\\r\\n

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

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

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Subir comisionesAcciones
    \\r\\n {{fileName}}\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n

    \\r\\n Ingrese la información requerida para la captura\\r\\n del bono...\\r\\n

    \\r\\n

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

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    {{item.description}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Monto total usado para el bono seleccionado\\r\\n {{usedAmountTotal | number: '1.2-2'}}.Empleados:\\r\\n {{usedQuantityTotal}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Distribución de\\r\\n bonos por empleados\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Acción\\r\\n
    {{item.title}}
    \\r\\n
    \\r\\n \\r\\n {{item.data}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Prenomina

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Prenomina\\r\\n
  4. \\r\\n
  5. \\r\\n Comisiones\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  Limpiar filtros\\r\\n
FILTROS:
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última actualización: \\r\\n {{now | date:'dd.MM.yyyy'}}\\r\\n

Comisiones

\\r\\n

\\r\\n Lista de comisiones Rednovation.\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Estatus\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Periodo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cliente\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Proyecto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo de nómina\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha creación\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Clave periodo\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Prenomina

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Prenomina\\r\\n
  4. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  Limpiar filtros\\r\\n
FILTROS:
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última actualización: \\r\\n {{now | date:'dd.MM.yyyy'}}\\r\\n

Prenominas

\\r\\n

\\r\\n Lista de prenominas Rednovation.\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Estatus\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo de nómina\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Periodo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cliente\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Proyecto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha creación\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
PRENOMINA #{{headerDetail?.payrollId}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CLIENTE:{{headerDetail?.customer}}PROYECTO:{{headerDetail?.project}}STATUS{{payroll?.statusNameTitle}}
PERIODO:{{headerDetail?.periodNom}}AÑO:{{headerDetail?.year}}TIPO DE NOMINA:{{headerDetail?.payrollType}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Total de trabajadores: {{detailTotal.length}}   Fecha\\r\\n límite: {{payroll?.deadLineCoordinator | date}}\\r\\n

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

\\r\\n Asistencia (A)\\r\\n

\\r\\n

\\r\\n Falta (F)\\r\\n

\\r\\n

\\r\\n Especial (E)\\r\\n

\\r\\n

\\r\\n Baja (B)\\r\\n

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

\\r\\n Incapacidad (I)\\r\\n

\\r\\n

\\r\\n Vacaciones (V)\\r\\n

\\r\\n

\\r\\n Descanso (D)\\r\\n

\\r\\n

\\r\\n Descanso laborado (DL)\\r\\n

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

\\r\\n Domingo trabajado (DT)\\r\\n

\\r\\n

\\r\\n Descanso trabajado en domingo (DTD)\\r\\n

\\r\\n

\\r\\n Festivo laborado (FS)\\r\\n

\\r\\n

\\r\\n No existe el trabajador (X)\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n  Guardar\\r\\n prenómina\\r\\n \\r\\n \\r\\n \\r\\n  Actualizar empleados\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n  Guardar\\r\\n prenómina\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    \\r\\n Ingrese la información requerida para el procesamiento\\r\\n de la prenómina...\\r\\n

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Retroactivos

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Prenomina\\r\\n
  4. \\r\\n
  5. \\r\\n Retroactivos\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Información de retroactivos. Ingrese la información\\r\\n solicitada.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.additional}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EmpleadoMotivoMontoObservaciones
\\r\\n \\r\\n {{item.employeeName}}{{item.retroactiveReason}}{{item.amount}}{{item.observations}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n

{{title}}

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

\\r\\n {{description1}}\\r\\n

\\r\\n

\\r\\n {{description2}}\\r\\n

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

REDPROMEX © 2019 Todos los derechos reservados

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Presupuesto

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Presupuesto\\r\\n
  4. \\r\\n
  5. \\r\\n Nuevo presupuesto\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Detalles del presupuesto\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Seleccione e ingrese la información requerida\\r\\n

\\r\\n

\\r\\n \\r\\n Presupuesto número {{budget.finalVersion}}\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    {{item.name}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n

    \\r\\n Ingrese la información de\\r\\n puestos...\\r\\n

    \\r\\n

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

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

    {{item.name}}

    \\r\\n

    {{item.additional}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    {{item.tradename}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    PUESTOCIUDADCANTIDADDURACIONTOTALDESCTOTAL FINAL
    \\r\\n \\r\\n {{item.positionName}}{{item.townName}}{{item.quantity}}{{item.duration}}{{item.totalCost}}{{item.discount}}{{item.totalFinalCost}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Distribución de\\r\\n posiciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    PUESTO\\r\\n
    {{item.name}}
    \\r\\n
    {{item.name}}{{item.quantity}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Distribución de\\r\\n salario\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    PUESTO\\r\\n
    {{item.name}}
    \\r\\n
    {{item.name}}{{item.quantity}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Sub total:{{ subtotal | number: '1.2-2' }}
    Descuento:{{ discount | number: '1.2-2' }}
    Sub total con descuento:{{ subtotalDiscount | number: '1.2-2' }}
    IVA:{{ iva | number: '1.2-2' }}
    Total:{{ total | number: '1.2-2' }}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n

    \\r\\n Ingrese la información de\\r\\n gastos...\\r\\n

    \\r\\n

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

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

    {{item.name}}

    \\r\\n

    {{item.additional}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n Por día\\r\\n Por mes\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Distribución de gastos por\\r\\n mes\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    PROYECTOPRODUCTODESCRIPCIONTIPOCOSTO% GASTOS - GASTOSUNITARIOCANTIDADTOTAL% DESCTOTAL FINAL
    \\r\\n \\r\\n {{item.projectCustomerName}}{{item.productName}}{{item.description}}{{item.expenseTypeName}}{{item.cost}}{{item.expensesPercentage}} -\\r\\n {{item.expensesCost}}{{item.unitCost}}{{item.quantity}}{{item.totalCost}}{{item.discountPercentage}}{{item.totalFinalCost}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Distribución de gastos por\\r\\n días\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    PROYECTOPRODUCTODESCRIPCIONTIPOCOSTO% GASTOS - GASTOSUNITARIOCANTIDADDIASTOTAL% DESCTOTAL FINAL
    \\r\\n \\r\\n {{item.projectCustomerName}}{{item.productName}}{{item.description}}{{item.expenseTypeName}}{{item.cost}}{{item.expensesPercentage}} -\\r\\n {{item.expensesCost}}{{item.unitCost}}{{item.quantity}}{{item.duration}}{{item.totalCost}}{{item.discountPercentage}}{{item.totalFinalCost}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Sub total:{{ subtotalExp | number: '1.2-2' }}
    Descuento:{{ discountExp | number: '1.2-2' }}
    Sub total con descuento:{{ subtotalDiscountExp | number: '1.2-2' }}
    IVA:{{ ivaExp | number: '1.2-2' }}
    Total:{{ totalExp | number: '1.2-2' }}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n

    \\r\\n Ingrese la información de\\r\\n bonos...\\r\\n

    \\r\\n

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

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

    {{item.name}}

    \\r\\n

    {{item.additional}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    {{item.tradename}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    {{item.name}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    PUESTOCONCEPTODESCRIPCIONMONTO% CARGA SOCIALCARGA SOCIAL% AGENCIAAGENCIACOSTO TOTALDURACIONCANTIDADSUBTOTALIVATOTAL
    \\r\\n \\r\\n {{item.positionName}}{{item.customerCommissionName}}{{item.description}}{{item.amount}}{{item.socialChargePercentage}}{{item.socialCharge}}{{item.agencyPercentage}}{{item.agency}}{{item.totalCost}}{{item.duration}}{{item.quantity}}{{item.subTotal | number: '1.2-2'}}{{item.iva | number: '1.2-2'}}{{item.total | number: '1.2-2'}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Sub total:{{ subtotalBonus | number: '1.2-2' }}
    IVA:{{ ivaBonus | number: '1.2-2' }}
    Total:{{ totalBonus | number: '1.2-2' }}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n Para más información acerca del presupuesto aprobado, lo invitamos a que se autentique en nuestra plataforma con los datos de acceso que se le ha proporcionado.\\r\\n
Si no cuenta con la información requerida para iniciar sesión, le invitamos a ponerse en contacto con su ejecutivo o el área de ventas.\\r\\n
\\r\\n '\\\"\\r\\n type=\\\"success\\\"\\r\\n confirmButtonColor=\\\"#19A689\\\"\\r\\n cancelButtonColor=\\\"#F7A54B\\\"\\r\\n [showConfirmButton]=\\\"false\\\"\\r\\n [showCancelButton]=\\\"false\\\"\\r\\n [allowOutsideClick]=\\\"false\\\"\\r\\n [allowEscapeKey]=\\\"false\\\"\\r\\n [customClass]=\\\"{popup: 'swal-wide'}\\\"\\r\\n width=\\\"1500px\\\">\\r\\n
\\r\\n\\r\\n Para más información acerca del presupuesto aprobado, lo invitamos a que se autentique en nuestra plataforma con los datos de acceso que se le ha proporcionado.\\r\\n
Si no cuenta con la información requerida para iniciar sesión, le invitamos a ponerse en contacto con su ejecutivo o el área de ventas.\\r\\n
\\r\\n '\\\"\\r\\n type=\\\"error\\\"\\r\\n confirmButtonColor=\\\"#19A689\\\"\\r\\n cancelButtonColor=\\\"#F7A54B\\\"\\r\\n [showConfirmButton]=\\\"false\\\"\\r\\n [showCancelButton]=\\\"false\\\"\\r\\n [allowOutsideClick]=\\\"false\\\"\\r\\n [allowEscapeKey]=\\\"false\\\"\\r\\n [customClass]=\\\"{popup: 'swal-wide'}\\\"\\r\\n width=\\\"1500px\\\">\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Presupuestos

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Cotizador\\r\\n
  4. \\r\\n
  5. \\r\\n Presupuestos\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  Limpiar filtros\\r\\n
FILTROS:
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Presupuestos

\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n
\\r\\n

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

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

\\r\\n Filtre los presupuestos usando los campos de la sección de filtros.\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Id\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Proyecto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Plan\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Estatus\\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Clasificación\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo de plan\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha inicio\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Duración\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Comentarios\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Comisiones por cliente

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Catálogos\\r\\n
  4. \\r\\n
  5. \\r\\n Comisiones por cliente\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n

Comisiones por cliente

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Descripción\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Clasificación\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Estatus\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \"","module.exports = \"
\\r\\n
\\r\\n

Clientes

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Catálogos\\r\\n
  4. \\r\\n
  5. \\r\\n Clientes\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n

Clientes

\\r\\n

\\r\\n Filtre los clientes por razón social, RFC.\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cía factura\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cía nómina\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Código\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Razón social\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Notas

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Catálogos\\r\\n
  4. \\r\\n
  5. \\r\\n Notas\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n

Notas

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Descripción\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Es default\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Puestos

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Cotizador\\r\\n
  4. \\r\\n
  5. \\r\\n Puestos\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  Limpiar filtros\\r\\n
FILTROS:
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Puestos

\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n
\\r\\n

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

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

\\r\\n Filtre los puestos usando los campos de la sección de filtros.\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Compañia\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Puesto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre comercial\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cliente\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Estatus en cliente\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cálculo usado\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Código nom\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Puesto

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Puesto\\r\\n
  4. \\r\\n
  5. \\r\\n Nuevo puesto\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Clasificaciones y detalles del puesto\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Seleccione la sección que deseé calcular\\r\\n

\\r\\n

\\r\\n \\r\\n Código NOM {{position?.codeNom}}\\r\\n \\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n
    \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n

    \\r\\n Ingrese la información necesaria para el\\r\\n cálculo...\\r\\n

    \\r\\n

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

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Limpiar\\r\\n Calcular\\r\\n
    \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n

    \\r\\n Ingrese la información necesaria para el cálculo...\\r\\n

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Limpiar\\r\\n Calcular\\r\\n
    \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n

    \\r\\n Ingrese la información necesaria para el cálculo...\\r\\n

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Limpiar\\r\\n Calcular\\r\\n
    \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n

    \\r\\n Ingrese la información necesaria para el cálculo...\\r\\n

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Limpiar\\r\\n Calcular\\r\\n
    \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n

    \\r\\n Ingrese la información necesaria para el cálculo...\\r\\n

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    = indexMedium\\\">\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Limpiar\\r\\n Calcular\\r\\n
    \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Productos

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Catálogos\\r\\n
  4. \\r\\n
  5. \\r\\n Productos\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n

Productos

\\r\\n

\\r\\n Filtre los productos por nombre.\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

Proyectos

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Catálogos\\r\\n
  4. \\r\\n
  5. \\r\\n Proyectos\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n

Proyectos

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Code\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Categoria\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Descripción\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Jornadas

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Catálogos\\r\\n
  4. \\r\\n
  5. \\r\\n Jornadas\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n

Jornadas

\\r\\n

\\r\\n Filtre las jornadas por descripción.\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Código\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Descripcción\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Compañia\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Código SAT\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

REDNOVATION

\\r\\n

Captura de dirección de envíos. Asegurese de proporcionar la información correcta para poder dar el seguimiento correcto.

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

Encontramos que actualmente la dirección proporcionada para envíos es: {{address?.address}}.

\\r\\n \\r\\n \\r\\n Usar la actual\\r\\n Proporcionar otra\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Solicitud de empleo

\\r\\n
    \\r\\n
  1. \\r\\n \\r\\n Regresar\\r\\n Imprimir\\r\\n
  2. \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"profile\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{jobCandidate != null ? jobCandidate.firstName : \\\"\\\"}}\\r\\n {{jobCandidate != null ? jobCandidate.lastName : \\\"\\\"}}\\r\\n {{jobCandidate != null ? jobCandidate.secondLastName : \\\"\\\"}}\\r\\n

\\r\\n

No. Solicitud: {{jobCandidate != null ? jobCandidate.id : \\\"\\\"}}

\\r\\n

Puesto: {{jobCandidate != null ? jobCandidate.interestPositionName : \\\"\\\"}}

\\r\\n

Edad: {{jobCandidate != null ? jobCandidate.age : \\\"\\\"}} años\\r\\n ({{jobCandidate != null ? (jobCandidate.birthDate | date:'dd/MM/yyyy') : \\\"\\\"}})

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Correo: {{jobCandidate != null ? jobCandidate.email : \\\"\\\"}}\\r\\n \\r\\n Sexo: {{jobCandidate != null ? jobCandidate.gender : \\\"\\\"}}\\r\\n
\\r\\n RFC: {{jobCandidate != null ? jobCandidate.rfc : \\\"\\\"}}\\r\\n \\r\\n CURP: {{jobCandidate != null ? jobCandidate.curp : \\\"\\\"}}\\r\\n
\\r\\n NSS: {{jobCandidate != null ? jobCandidate.imss : \\\"\\\"}}\\r\\n \\r\\n Fecha solicitud:\\r\\n {{jobCandidate != null ? (jobCandidate.registryDate | date:'dd/MM/yyyy') : \\\"\\\"}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

DATOS PERSONALES

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Domicilio: {{jobCandidate != null ? jobCandidate.street : \\\"\\\"}}Municipio: {{jobCandidate != null ? jobCandidate.townName : \\\"\\\"}}Tel. Casa: {{jobCandidate != null ? jobCandidate.phone : \\\"\\\"}}
Colonia:{{jobCandidate != null ? jobCandidate.suburb : \\\"\\\"}}CP: {{jobCandidate != null ? jobCandidate.postalCode : \\\"\\\"}}Crédito Infonavit:\\r\\n {{convertBoolToString(jobCandidateComment != null ? jobCandidateComment.hasInfonavit : false)}}
Número: {{jobCandidate != null ? jobCandidate.externalNumber : \\\"\\\"}}Celurar: {{jobCandidate != null ? jobCandidate.personalNumber : \\\"\\\"}}Estado Civil: {{jobCandidate != null ? jobCandidate.maritalStatusName : \\\"\\\"}}
Tiene hijos: {{convertBoolToString(jobCandidate.hasChildren)}}Edades de hijos: {{jobCandidate != null ? jobCandidate.ageChildrens : \\\"\\\"}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

ESCOLARIDAD

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Escolaridad: {{jobCandidateLevelEducation != null ? jobCandidateLevelEducation.educationLevelName: \\\"\\\"}} Comprobante de Estudios: {{jobCandidateLevelEducation != null ? jobCandidateLevelEducation.documentReceivedName : \\\"\\\"}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

DATOS ADICIONALES

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Talla: {{jobCandidateAppearance != null ? jobCandidateAppearance.sizeName : \\\"\\\"}} Cabello: {{jobCandidateAppearance != null ? jobCandidateAppearance.hairColorName : \\\"\\\"}}\\r\\n Ojos: {{jobCandidateAppearance != null ? jobCandidateAppearance.eyeColorName : \\\"\\\"}}\\r\\n
Complexión:\\r\\n {{jobCandidateAppearance != null ? jobCandidateAppearance.physicalComplexionName : \\\"\\\"}} Estatura: {{jobCandidateAppearance != null ? jobCandidateAppearance.statureName : \\\"\\\"}}\\r\\n Piel: {{jobCandidateAppearance != null ? jobCandidateAppearance.skinColorName : \\\"\\\"}}\\r\\n
Disponibilidad:\\r\\n {{jobCandidateHistory != null ? jobCandidateHistory.availabilityName : \\\"\\\" }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

CONDICIONES PERSONALES

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
¿Adeudo con banco?:\\r\\n {{convertBoolToString(jobCandidateComment != null ? jobCandidateComment.hasDebt : false)}} ¿Auto propio?:\\r\\n {{convertBoolToString(jobCandidateComment != null ? jobCandidateComment.hasCar : false)}}
¿Cuál banco?: {{jobCandidateComment != null ? jobCandidateComment.debitBank : \\\"\\\"}}\\r\\n ¿IFE actualizada?:\\r\\n {{convertBoolToString(jobCandidateComment != null ? jobCandidateComment.hasValidID : false)}} ¿Id. oficial alterna:\\r\\n {{jobCandidateComment != null ? jobCandidateComment.idReason : \\\"\\\"}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

COMENTARIOS DE RECLUTAMIENTO

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
¿Tatuajes?:\\r\\n {{convertBoolToString(jobCandidateComment != null ? jobCandidateComment.hasTattoo : false)}} ¿Piercing?:\\r\\n {{convertBoolToString(jobCandidateComment != null ? jobCandidateComment.hasPiercing : false)}}¿Cirugias?:\\r\\n {{convertBoolToString(jobCandidateComment != null ? jobCandidateComment.hasSurgery : false)}}
¿Padecimientos crónicos?:\\r\\n {{convertBoolToString(jobCandidateComment != null ? jobCandidateComment.chronicConditions : false)}}\\r\\n Comentarios: {{jobCandidateHistory != null ? jobCandidateHistory.comments : \\\"\\\"}}\\r\\n
¿Familiar laborando en la empresa?:\\r\\n {{convertBoolToString(jobCandidateComment != null ? jobCandidateComment.hasFamilyWorking : false)}} ¿Nombre del Familiar?:\\r\\n {{jobCandidateComment != null ? jobCandidateComment.familyName : \\\"\\\"}}¿Parentesco del Familiar?:\\r\\n {{jobCandidateComment != null ? jobCandidateComment.familyRelationship : \\\"\\\"}}
Marca en que labora el familiar:\\r\\n {{jobCandidateComment != null ? jobCandidateComment.trademarkWork : \\\"\\\"}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

HISTORIAL LABORAL

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EmpresaPuesto/Jefe directoSueldoTeléfonoAñosMesInicioTérminoMotivo separación
{{item.companyName}} {{item.jobPositionName}} reportando a {{item.contact}} {{item.monthlySalary}} {{item.phone}} {{calculateLaborOld(item.periodFrom,item.periodTo,true)}} {{calculateLaborOld(item.periodFrom,item.periodTo,false)}} {{item.periodFrom | date:'dd.MM.yyyy'}} {{item.periodTo | date:'dd.MM.yyyy'}} {{item.reasonOfExit}}
Comentarios {{item.commentHistory}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

REFERENCIAS PERSONALES

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ReferenciaRelaciónDomicilioTeléfono
{{item.fullName}} {{item.relationship}} {{item.address}} {{item.phone}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Reclutamiento

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Reclutamiento\\r\\n
  4. \\r\\n
  5. \\r\\n Revisión de solicitudes\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  Limpiar filtros\\r\\n
FILTROS:
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Hombre\\r\\n Mujer\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Campo\\r\\n Oficina\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No tengo\\r\\n Si tengo\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última actualización: \\r\\n {{now | date:'dd.MM.yyyy'}}\\r\\n

Solicitudes

\\r\\n

\\r\\n Filtre las solicitudes de candidatos usando los campos de la sección de filtros.\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Estatus\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Colonia\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Municipio\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Teléfono\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Edad\\r\\n \\r\\n \\r\\n {{calculateAge(row.birthDate)}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Registro\\r\\n \\r\\n \\r\\n {{value | date:'dd/MM/yyyy'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Actualización\\r\\n \\r\\n \\r\\n {{value | date:'dd/MM/yyyy'}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Solicitud

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Reclutamiento\\r\\n
  4. \\r\\n
  5. \\r\\n Solicitud\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

Datos generales

\\r\\n
\\r\\n
\\r\\n
\\r\\n Captura de información general del candidato
\\r\\n Última modificación: \\r\\n {{generalData.registryDate | date:'dd.MM.yyyy'}}
\\r\\n Fecha de registro: \\r\\n {{generalData.lasUpdateDate | date:'dd.MM.yyyy'}}\\r\\n
\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Información general del candidato.Ingrese la\\r\\n información solicitada, recuerde que los datos proporcionados son usados para\\r\\n determinar la viabilidad de su contratación sobre la vacante en cuestión.\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Hombre\\r\\n Mujer\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No tengo\\r\\n Si tengo\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Información de la vacante.Ingrese la información\\r\\n solicitada, recuerde que los datos proporcionados son usados para determinar la\\r\\n viabilidad de su contratación sobre la vacante en cuestión.\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Campo\\r\\n Oficina\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Dirección personal.Ingrese la información\\r\\n solicitada, recuerde que los datos proporcionados son usados para determinar la\\r\\n viabilidad de su contratación sobre la vacante en cuestión.\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n 0\\\">\\r\\n
\\r\\n Dirección fiscal\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Mexicana\\r\\n Extranjera\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

Historial laboral

\\r\\n
\\r\\n
\\r\\n
\\r\\n Captura de información laboral del candidato\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Información laboral. Ingrese la\\r\\n información solicitada, recuerde que los datos proporcionados son usados para\\r\\n determinar la viabilidad de su contratación sobre la vacante en cuestión.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Empresa\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Puesto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Desde\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Hasta\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Razón de salida\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Referencias

\\r\\n
\\r\\n
\\r\\n
\\r\\n Captura de información referencias personales y familiares del candidato\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Tipo de referencia\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Parentesco\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre completo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Teléfono\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Dirección\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Datos estudios

\\r\\n
\\r\\n
\\r\\n
\\r\\n Captura de información de estudios del candidato\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

Comentarios reclutador

\\r\\n
\\r\\n
\\r\\n
\\r\\n Captura de información de datos adicionales\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Fija\\r\\n Eventual\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n

{{item.text}}

\\r\\n

{{item.additional}}\\r\\n
# Requisición: {{item.id}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No tengo\\r\\n Si tengo\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No tengo\\r\\n Si tengo\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n No tengo\\r\\n Si tengo\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n No tengo\\r\\n Si tengo\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n No tengo\\r\\n Si tengo\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No tengo\\r\\n Si tengo\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No tengo\\r\\n Si tengo\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n No tengo\\r\\n Si tengo\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n No tengo\\r\\n Si tengo\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

Documentos

\\r\\n
\\r\\n
\\r\\n
\\r\\n Carga de documentos del candidato\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{item.title}}Acciones
{{item.fileName}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Nombre empleado:{{employee?.employeeName}}Jornada:{{employee?.workingDayName}}
Clave empleado:{{employee?.employeeNum}}Compañia:{{employee?.employeeCompany}}
Puesto:{{employee?.employeeJob}}Tipo nómina:{{employee?.employeeTypePayroll}}
Marca:{{employee?.employeeMarkName}}Ciudad:{{employee?.town}}
Fecha alta:{{employee?.employeeDate | date}}Posición:{{employee?.positionNo}}
Proyecto:{{employee?.projectName}}Plan:{{employee?.planName}}
Fecha baja:{{employee?.dismissalDate | date}}Motivo baja:{{employee?.dismissalCause}}
Antigüedad del trabajador:{{employee?.laborSeniorityDesc}}Salario{{employee?.dailySalary | number: '1.2-2'}}
Salario a 90 días:{{employee?.dailySalary * 90 | number: '1.2-2'}}
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Vacaciones

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Vacaciones\\r\\n
  4. \\r\\n
  5. \\r\\n Aprobaciones\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n
  • \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Por aprobar

\\r\\n
\\r\\n
\\r\\n
\\r\\n Vacaciones pendientes por aprobar\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"image\\\"\\r\\n \\r\\n
\\r\\n {{request.totalDays}} días\\r\\n {{request.employeeName}} Periodo solicitado del {{request.initDate | date}} al\\r\\n {{request.finalDate | date}}.
\\r\\n Compañia - {{request.employeeCompany}}\\r\\n
\\r\\n Comentarios empleado: {{request.comments}}
\\r\\n
\\r\\n
\\r\\n \\r\\n Aprobar \\r\\n Rechazar\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Aprobadas

\\r\\n
\\r\\n
\\r\\n
\\r\\n Vacaciones aprobadas | Periodo de consulta\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"image\\\"\\r\\n \\r\\n
\\r\\n {{request.totalDays}} días\\r\\n {{request.employeeName}} Periodo solicitado del {{request.initDate | date}} al\\r\\n {{request.finalDate | date}}.
\\r\\n Compañia - {{request.employeeCompany}}\\r\\n
\\r\\n Comentarios empleado: {{request.comments}}
\\r\\n
\\r\\n
\\r\\n Cancelar\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Rechazadas

\\r\\n
\\r\\n
\\r\\n
\\r\\n Vacaciones rechazadas\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"image\\\"\\r\\n \\r\\n
\\r\\n {{request.totalDays}} días\\r\\n {{request.employeeName}} Periodo solicitado del {{request.initDate | date}} al\\r\\n {{request.finalDate | date}}.
\\r\\n Compañia - {{request.employeeCompany}}\\r\\n
\\r\\n Comentarios empleado: {{request.comments}}
\\r\\n Motivo rechazo: {{request.bossComments}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Canceladas

\\r\\n
\\r\\n
\\r\\n
\\r\\n Vacaciones canceladas\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"image\\\"\\r\\n \\r\\n
\\r\\n {{request.totalDays}} días\\r\\n {{request.employeeName}} Periodo solicitado del {{request.initDate | date}} al\\r\\n {{request.finalDate | date}}.
\\r\\n Compañia - {{request.employeeCompany}}\\r\\n
\\r\\n Comentarios empleado: {{request.comments}}
\\r\\n Motivo cancelación: {{request.cancelComments}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Vacaciones

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Solicitudes\\r\\n
  4. \\r\\n
  5. \\r\\n Vacaciones\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n employee.availableDays) ? 'alert alert-danger' : 'alert alert-success'\\\"\\r\\n *ngIf=\\\"eventFormatted\\\">\\r\\n Periodo seleccionado
\\r\\n Fecha inicio: {{getLocaleDateString(this.rangeHoliday.initDate)}}
\\r\\n Fecha fin: {{getLocaleDateString(this.rangeHoliday.finalDate)}}
\\r\\n Días solicitados: {{this.rangeHoliday.differenceDateNum}}
\\r\\n \\r\\n Total días descartados: {{this.rangeHoliday.discardedDays}}
\\r\\n Días descartados ver (+)(-):
\\r\\n
    \\r\\n
  • {{day}}
  • \\r\\n
\\r\\n
\\r\\n Días por tomar: {{this.rangeHoliday.totalDays}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{this.employee.availableDays}}\\r\\n

\\r\\n

Días disponibles

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

Detalles\\r\\n (+)(-)

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Inicio CicloFin CicloAsignadosUtilizadosDisponiblesPrescritos
{{request.startDate | date}}{{request.endDate | date}}{{request.requestDays + request.availableDays}}{{request.requestDays}}{{request.availableDays}}{{request.prescribedDays}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CompañiaFecha incialFecha finalTotal diasFecha solicitudEstatus
{{request.employeeCompany}}{{request.initDate | date}}{{request.finalDate | date}}{{request.totalDays}}{{request.createdDate | date}}\\r\\n

Nueva

\\r\\n

Aprobada

\\r\\n

Rechazada

\\r\\n

Cancelada

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Incapacidades

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Solicitudes\\r\\n
  4. \\r\\n
  5. \\r\\n Registros\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Periodo de consulta\\r\\n

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

\\r\\n Lista de incapacidades. Filtre usando la caja de texto.\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Incapacidad\\r\\n \\r\\n \\r\\n 1\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Alta\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n 1\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Fec.de captura\\r\\n \\r\\n \\r\\n {{value | date:'shortDate'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fec.aplicación\\r\\n \\r\\n \\r\\n {{value | date:'shortDate'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cve.trabajador\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre completo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Marca\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Puesto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n IMSS\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Folio\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Zona\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Ciudad\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha inicio\\r\\n \\r\\n \\r\\n {{value | date:'shortDate'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha fin\\r\\n \\r\\n \\r\\n {{value | date:'shortDate'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n N.dias\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Ramo seguro\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo riesgo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Secuela\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Control incapacidad\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Observaciones\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Incapacidades

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Solicitudes\\r\\n
  4. \\r\\n
  5. \\r\\n Incapacidad\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Información de incapacidad. Ingrese la información\\r\\n solicitada. Asegurese de incluir el archivo de evidencia.\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ComprobanteAcciones
{{fileName}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \"

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherConciliatoryAppointment || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherDemandClosing || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherReceptionDemand || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherDemandClosing || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherAnswerDemand || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherDemandClosing || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherDemandClosing || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo de prueba\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha y hora\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Petición de dinero\\r\\n \\r\\n \\r\\n {{value == true ? 'Si' : 'No'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Monto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Comentario\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Comprobante\\r\\n \\r\\n \\r\\n {{value.fileName}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherDemandClosing || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherAllegation || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherDemandClosing || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherLaudo || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherDemandClosing || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherConciliatoryAppointment || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherConciliatoryAppointmentSecond || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherDemandClosing || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherPreliminaryAudience || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherAppearance || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherDemandClosing || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo de prueba\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha y hora\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Petición de dinero\\r\\n \\r\\n \\r\\n {{value == true ? 'Si' : 'No'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Monto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Comentario\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Comprobante\\r\\n \\r\\n \\r\\n {{value.fileName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Concluye evidencia\\r\\n \\r\\n \\r\\n {{value == true ? 'Si' : 'No'}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo de prueba\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 2da Fecha y hora\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Petición de dinero\\r\\n \\r\\n \\r\\n {{value == true ? 'Si' : 'No'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Monto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Comentario\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Comprobante\\r\\n \\r\\n \\r\\n {{value.fileName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Concluye evidencia\\r\\n \\r\\n \\r\\n {{value == true ? 'Si' : 'No'}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileNameVoucherDemandClosing || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Liquidación

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Legal\\r\\n
  4. \\r\\n
  5. \\r\\n Demanda\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \"\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

{{title}}

\\r\\n

\\r\\n {{description1}}\\r\\n

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

REDPROMEX © 2019 Todos los derechos reservados

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
FINIQUITO
Ahorro =>\\r\\n {{liquidation?.thrift | number: '1.2-2'}}
\\r\\n Finiquito => {{liquidation?.settlement | number: '1.2-2'}} (+)(-)
Suma =>\\r\\n {{liquidation?.sumSettlement | number: '1.2-2'}}
DESCUENTOS
Descuentos\\r\\n Viáticos =>\\r\\n {{liquidation?.viaticDiscount | number: '1.2-2'}}
Descuentos\\r\\n Herramientas => {{liquidation?.toolDiscount | number: '1.2-2'}} (+)(-)\\r\\n
Descuentos\\r\\n Prestamos\\r\\n => {{liquidation?.lendingDiscount | number: '1.2-2'}}
Otros descuentos\\r\\n => {{liquidation?.otherDiscount | number: '1.2-2'}}
Suma =>\\r\\n {{liquidation?.sumDiscount | number: '1.2-2'}}
Total Finiquito =>\\r\\n {{liquidation?.totalSettlement | number: '1.2-2'}}\\r\\n
Conciliación\\r\\n cliente\\r\\n => {{liquidation?.conciliationCustomer | number: '1.2-2'}}
Conciliación\\r\\n Propia =>\\r\\n {{liquidation?.conciliationOwn | number: '1.2-2'}}
Total Liquidación\\r\\n =>\\r\\n {{liquidation?.totalLiquidation | number: '1.2-2'}}
ESCENARIO 1 A\\r\\n PAGAR =>\\r\\n {{liquidation?.scenarioOnePay | number: '1.2-2'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Enviar solicitud de aprobación\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{fileName || \\\"Seleccione un archivo\\\"}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si Acepto Finiquito\\r\\n No Acepto Finiquito\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
HerramientasDescuento
{{item.name}}{{item.additional | number: '1.2-2'}}
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ConceptoDíasCantidad
Aguinaldo{{settlement?.bonusDays | number: '1.2-2'}}{{settlement?.bonusAmount | number: '1.2-2'}}
Vacaciones{{settlement?.holidayDays | number: '1.2-2'}}{{settlement?.holidayAmount | number: '1.2-2'}}
Prima vacacional{{settlement?.holidayPremiumPercentage}}%{{settlement?.holidayPremiumAmount | number: '1.2-2'}}
Vacaciones pendientes{{settlement?.holidadyPendingDays | number: '1.2-2'}}{{settlement?.holidayPendingAmount | number: '1.2-2'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
TOTAL:{{settlement?.totalAmount | number: '1.2-2'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Liquidación

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Legal\\r\\n
  4. \\r\\n
  5. \\r\\n Liquidación\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Ver liquidaciones

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Legal\\r\\n
  4. \\r\\n
  5. \\r\\n Ver liquidaciones\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  Limpiar filtros\\r\\n
FILTROS:
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Liquidación\\r\\n Demanda\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última actualización: \\r\\n {{now | date:'dd.MM.yyyy'}}\\r\\n

Liquidaciones

\\r\\n

\\r\\n Lista de liquidaciones Rednovation.\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Número empleado\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cliente\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Puesto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo de nómina\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Zona\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Datos adicionales

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Folio{{solicitudDinero.id}}Situación folio{{solicitudDinero.estatusSolicitud}}
Cantidad{{solicitudDinero.cantidad}}Fecha pago{{solicitudDinero.fechaPago}}
Solicitante{{solicitudDinero.empleadoSolicita}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Formatos liquidación

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Liquidación de empleadoAcciones
{{document?.fileName}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

Reubicaciones

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Solicitudes\\r\\n
  4. \\r\\n
  5. \\r\\n Registros\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Periodo de consulta\\r\\n

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

\\r\\n Lista de reubicaciones. Filtre usando la caja de texto.\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Cve.trabajador\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre completo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Reubicado por\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fec.reubicación\\r\\n \\r\\n \\r\\n {{value | date:'shortDate'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Genera vacante\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Marca\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Posición\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Compañia\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Ciudad\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

Reubicación

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Solicitudes\\r\\n
  4. \\r\\n
  5. \\r\\n Reubicación\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Información de reubicación. Ingrese la información\\r\\n solicitada.\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n

{{item.text}}


{{item.additional}}\\r\\n
# Requisición: {{item.id}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Bajas

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Solicitudes\\r\\n
  4. \\r\\n
  5. \\r\\n Registros\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Periodo de consulta\\r\\n

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

\\r\\n Lista de bajas. Filtre usando la caja de texto.\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Fecha de creacion\\r\\n \\r\\n \\r\\n {{value | date:'shortDate'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Cve.trabajador\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre completo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Marca\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fec.alta\\r\\n \\r\\n \\r\\n {{value | date:'shortDate'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fec.baja NOM\\r\\n \\r\\n \\r\\n {{value | date:'shortDate'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Causa de baja\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Observaciones\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Posición\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Salario\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Compañia\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Ciudad\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Forma pago\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Bajas

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Solicitudes\\r\\n
  4. \\r\\n
  5. \\r\\n Baja\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Información de bajas. Ingrese la información\\r\\n solicitada. Asegurese de incluir el archivo de evidencia.\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No\\r\\n Si\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Roles

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Seguridad\\r\\n
  4. \\r\\n
  5. \\r\\n Roles\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n

Roles

\\r\\n

\\r\\n Filtre roles por su nombre.\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

REDNOVATION

\\r\\n

Cambio de contraseña. Deberá incluir un mínimo de 8 caracteres y una mayúscula, una minúscula, un número y un carácter especial ($@$!.%*#?&)

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Iniciar sesión\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

REDNOVATION

\\r\\n

Cambio de contraseña. Deberá incluir un mínimo de 8 caracteres y una mayúscula, una minúscula, un número y un carácter especial ($@$!.%*#?&)

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

Sistemas

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Seguridad\\r\\n
  4. \\r\\n
  5. \\r\\n Sistemas\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n

Sistemas

\\r\\n

\\r\\n Filtre sus sistemas por su nombre.\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Usuarios

\\r\\n
    \\r\\n
  1. \\r\\n Inicio\\r\\n
  2. \\r\\n
  3. \\r\\n Seguridad\\r\\n
  4. \\r\\n
  5. \\r\\n Usuarios\\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Última consulta: \\r\\n {{now | date:'medium'}}\\r\\n

Usuarios

\\r\\n

\\r\\n Filtre los usuarios de sistema por nombre de usuario o correo electrónico.\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Usuario\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Correo electrónico\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Descripción\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Id\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Proyecto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Plan\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Estatus\\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Clasificación\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo de plan\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha inicio\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Duración\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Campo\\r\\n Oficina\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{minimumSalary.name}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Contrato - clienteAcciones
{{fileName}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Code\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Plan\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Categoria\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{fileNameVoucherEvidence || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Costo de demanda

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Costo estimado\\r\\n Costo real\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EtapaMonto etapaTotal
{{item.proceduralStageName}}{{item.cost | number: '1.2-2'}}{{item.total | number: '1.2-2'}}
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{fileNameVoucherEvidence || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo de prueba\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha y hora\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{fileNameVoucherEvidence || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{fileNameVoucherEvidence || \\\".jpg, .jpeg, .png\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tipo de prueba\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha y hora\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

Reinicio de demanda

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Datos básicos

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Dirección de envíos.Ingrese la información\\r\\n solicitada, recuerde que los datos proporcionados son usados para hacer el envío de lo que se pudiera requerir.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n

Lista de empleados activos

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

\\r\\n Lista de empleados. Filtre usando la caja de texto.\\r\\n

\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Clave\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Marca\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Puesto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nómina\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Zona\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Antigüedad\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha alta\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha baja\\r\\n \\r\\n \\r\\n {{value | date}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n

Descarga formato de actualización de salario

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fecha creación\\r\\n \\r\\n \\r\\n {{value | date:'shortDate'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Puesto\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Salario\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n

{{title}}

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

Buen dia {{employee?.firstName}} {{employee?.lastName}}\\r\\n {{employee?.secondLastName}}

\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Descripción\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Monto\\r\\n \\r\\n \\r\\n {{value | number: '1.2-2'}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{requisitionTracking.trackingStatus}}
\\r\\n
\\r\\n
\\r\\n \\r\\n {{requisitionTracking.recruitmentSource}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Documento operaciónAcciones
{{fileName}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Administración de registros patronales

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Zona\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n IMSS\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Guia\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Localidad\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Administración de registros patronales

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Zona\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n IMSS\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Guia\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Localidad\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Administración de primas de riesgo

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Valor\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Año\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Estatus\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\r\\n
\\r\\n

Datos de pago de trabajdores retenidos

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
IdNombreBancoForma de pago
1{{item.employee}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Valor\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Porcentaje máximo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Valor máximo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Fijo\\r\\n Variable\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Actualiación de salario masivo

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n SI actualizar\\r\\n NO actualizar\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Valor\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Domingo\\r\\n
\\r\\n
\\r\\n Lunes\\r\\n
\\r\\n
\\r\\n Martes\\r\\n
\\r\\n
\\r\\n Miércoles\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Jueves\\r\\n
\\r\\n
\\r\\n Viernes\\r\\n
\\r\\n
\\r\\n Sabado\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Si\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

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

\\r\\n
\\r\\n \\r\\n No es\\r\\n Si es\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Contrataciond e empleado. Se cerrará la posición y se colocara el empleado\\r\\n asociado a la solicitud como contratado.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Nota. Es obligatorio, que se capture por lo menos 1 referencia familiar y 1 referencia personal.\\r\\n
\\r\\n
\\r\\n

\\r\\n
\\r\\n \\r\\n Familiar\\r\\n Personal\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Modulo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Acciones\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Sistema\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Modulo\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Rol\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */\"","import { Component } from '@angular/core';\r\nimport { setTheme } from 'ngx-bootstrap/utils';\r\nimport { ToastPositionService } from './shared/services/toast-position.service';\r\nimport { BnNgIdleService } from 'bn-ng-idle';\r\nimport { SecurityService } from './shared/services/security.service';\r\nimport { Router } from '@angular/router';\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent {\r\n toastaPosition: string;\r\n constructor(private toastCommunicationService: ToastPositionService\r\n , private bnIdle: BnNgIdleService\r\n , private securityService: SecurityService\r\n , private _router: Router) {\r\n setTheme('bs3'); // or 'bs4'\r\n this.toastCommunicationService.position$.subscribe(pos => this.toastaPosition = pos);\r\n }\r\n ngOnInit(): void {\r\n this.bnIdle.startWatching(600).subscribe((isTimedOut: boolean) => {\r\n // if (isTimedOut) {\r\n // if (this._router.url != '/login') {\r\n // this.securityService.Logoff()\r\n // }\r\n // }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { SnotifyToastConfig, SnotifyService, SnotifyPosition } from 'ng-snotify';\r\nimport { NgSelectConfig } from '@ng-select/ng-select';\r\nimport { ISlimScrollOptions } from 'ngx-slimscroll';\r\nimport { IResult } from './shared/models/result.model';\r\nimport { ToastPositionService } from './shared/services/toast-position.service';\r\nimport { ToastOptions, ToastData, ToastaService } from 'ngx-toasta';\r\nimport { IMyDateModel } from 'angular-mydatepicker';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n@Injectable()\r\nexport class AppConfig {\r\n style = 'material';\r\n timeout = 3000;\r\n position: SnotifyPosition = SnotifyPosition.rightCenter;\r\n progressBar = true;\r\n closeClick = true;\r\n newTop = true;\r\n filterDuplicates = false;\r\n backdrop = -1;\r\n dockMax = 8;\r\n blockMax = 6;\r\n pauseHover = true;\r\n titleMaxLength = 15;\r\n bodyMaxLength = 80;\r\n\r\n private config = {\r\n name: 'REDNOVATION',\r\n title: 'Red Promocional Mexicana',\r\n version: '1.0',\r\n code: 'f6GCgCHp1zkKck7JGIt1mxEStPlQmEFB',\r\n debug: true\r\n };\r\n constructor(private snotifyService: SnotifyService\r\n , private configSelect: NgSelectConfig\r\n , private toastaService: ToastaService\r\n , private toastPositionService: ToastPositionService) {\r\n this.configSelect.notFoundText = 'Valor no encontrado';\r\n this.toastPositionService.setPosition('bottom-right');\r\n }\r\n\r\n public getConfig(): any {\r\n return this.config;\r\n }\r\n public configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n public getConfigToast(): SnotifyToastConfig {\r\n this.snotifyService.setDefaults({\r\n global: {\r\n newOnTop: this.newTop,\r\n maxAtPosition: this.blockMax,\r\n maxOnScreen: this.dockMax\r\n }\r\n });\r\n return {\r\n bodyMaxLength: this.bodyMaxLength,\r\n titleMaxLength: this.titleMaxLength,\r\n backdrop: this.backdrop,\r\n position: this.position,\r\n timeout: this.timeout,\r\n showProgressBar: this.progressBar,\r\n closeOnClick: this.closeClick,\r\n pauseOnHover: this.pauseHover\r\n };\r\n }\r\n public getConfigSlimScroll(): ISlimScrollOptions {\r\n return {\r\n position: 'right', // left | right\r\n barBackground: '#18A689', // #C9C9C9\r\n barOpacity: '0.8', // 0.8\r\n barWidth: '10', // 10\r\n barBorderRadius: '20', // 20\r\n barMargin: '0', // 0\r\n gridBackground: '#d9d9d9', // #D9D9D9\r\n gridOpacity: '1', // 1\r\n gridWidth: '2', // 2\r\n gridBorderRadius: '20', // 20\r\n gridMargin: '0', // 0\r\n alwaysVisible: true, // true\r\n visibleTimeout: 1000, // 1000\r\n }\r\n }\r\n public notificationSuccessError(result: IResult): boolean {\r\n if (result.isCorrect === true) {\r\n this.newToast('Éxito', result.message, 'success');\r\n } else {\r\n this.newToast('Error', result.message, 'error');\r\n }\r\n\r\n return result.isCorrect;\r\n }\r\n public b64toBlob(b64Data, contentType, sliceSize): Blob {\r\n contentType = contentType || '';\r\n sliceSize = sliceSize || 512;\r\n\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays = [];\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n const blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n }\r\n public newToast(title: string, msg: string, type: string): void {\r\n const toastOptions: ToastOptions = {\r\n title: title,\r\n msg: msg,\r\n showClose: true,\r\n showDuration: true,\r\n timeout: 10000,\r\n theme: 'bootstrap'\r\n };\r\n switch (type) {\r\n case 'default': this.toastaService.default(toastOptions); break;\r\n case 'info': this.toastaService.info(toastOptions); break;\r\n case 'success': this.toastaService.success(toastOptions); break;\r\n case 'wait': this.toastaService.wait(toastOptions); break;\r\n case 'error': this.toastaService.error(toastOptions); break;\r\n case 'warning': this.toastaService.warning(toastOptions); break;\r\n }\r\n }\r\n public getDate(event: IMyDateModel) {\r\n return event.singleDate.jsDate;\r\n }\r\n public getLocalISOTime(myDate: Date): Date {\r\n if (myDate === undefined || myDate === null) {\r\n return null;\r\n }\r\n const tzoffset = (myDate).getTimezoneOffset() * 60000;\r\n const localISOTime = (new Date(myDate.getTime() - tzoffset));\r\n return localISOTime;\r\n }\r\n public setDate(date: Date): IMyDateModel {\r\n const d = new Date(date);\r\n return { isRange: false, singleDate: { jsDate: d }, dateRange: null };\r\n }\r\n public dateFormat(date, format) {\r\n const map = {\r\n dd: date.getDate(),\r\n mm: date.getMonth() + 1,\r\n yyyy: date.getFullYear()\r\n }\r\n\r\n return format.replace(/dd|mm|yyyy/gi, matched => map[matched])\r\n }\r\n public touchedControls(form: FormGroup): void {\r\n Object.keys(form.controls).forEach(field => {\r\n const control = form.get(field);\r\n control.markAsTouched({ onlySelf: true });\r\n });\r\n }\r\n /**Configuración toast */\r\n themes = [{\r\n name: 'Default Theme',\r\n code: 'default'\r\n }, {\r\n name: 'Material Design',\r\n code: 'material'\r\n }, {\r\n name: 'Bootstrap',\r\n code: 'bootstrap'\r\n }];\r\n\r\n\r\n types = [{\r\n name: 'Default',\r\n code: 'default',\r\n }, {\r\n name: 'Info',\r\n code: 'info'\r\n }, {\r\n name: 'Success',\r\n code: 'success'\r\n }, {\r\n name: 'Wait',\r\n code: 'wait'\r\n }, {\r\n name: 'Error',\r\n code: 'error'\r\n }, {\r\n name: 'Warning',\r\n code: 'warning'\r\n }];\r\n\r\n\r\n positions = [{\r\n name: 'Top Left',\r\n code: 'top-left',\r\n }, {\r\n name: 'Top Center',\r\n code: 'top-center',\r\n }, {\r\n name: 'Top Right',\r\n code: 'top-right',\r\n }, {\r\n name: 'Top Full Width',\r\n code: 'top-fullwidth',\r\n }, {\r\n name: 'Bottom Left',\r\n code: 'bottom-left',\r\n }, {\r\n name: 'Bottom Center',\r\n code: 'bottom-center',\r\n }, {\r\n name: 'Bottom Right',\r\n code: 'bottom-right',\r\n }, {\r\n name: 'Bottom Full Width',\r\n code: 'bottom-fullwidth',\r\n }, {\r\n name: 'Center Center',\r\n code: 'center-center',\r\n }];\r\n /** */\r\n}\r\n","/*\r\n * Inspinia js helpers:\r\n *\r\n * correctHeight() - fix the height of main wrapper\r\n * detectBody() - detect windows size\r\n * smoothlyMenu() - add smooth fade in/out on navigation show/ide\r\n *\r\n */\r\n\r\ndeclare var jQuery:any;\r\n\r\nexport function correctHeight() {\r\n\r\n var pageWrapper = jQuery('#page-wrapper');\r\n var navbarHeight = jQuery('nav.navbar-default').height();\r\n var wrapperHeight = pageWrapper.height();\r\n\r\n if (navbarHeight > wrapperHeight) {\r\n pageWrapper.css(\"min-height\", navbarHeight + \"px\");\r\n }\r\n\r\n if (navbarHeight <= wrapperHeight) {\r\n if (navbarHeight < jQuery(window).height()) {\r\n pageWrapper.css(\"min-height\", jQuery(window).height() + \"px\");\r\n } else {\r\n pageWrapper.css(\"min-height\", navbarHeight + \"px\");\r\n }\r\n }\r\n\r\n if (jQuery('body').hasClass('fixed-nav')) {\r\n if (navbarHeight > wrapperHeight) {\r\n pageWrapper.css(\"min-height\", navbarHeight + \"px\");\r\n } else {\r\n pageWrapper.css(\"min-height\", jQuery(window).height() - 60 + \"px\");\r\n }\r\n }\r\n}\r\n\r\nexport function detectBody() {\r\n if (jQuery(document).width() < 769) {\r\n jQuery('body').addClass('body-small')\r\n } else {\r\n jQuery('body').removeClass('body-small')\r\n }\r\n}\r\n\r\nexport function smoothlyMenu() {\r\n if (!jQuery('body').hasClass('mini-navbar') || jQuery('body').hasClass('body-small')) {\r\n // Hide menu in order to smoothly turn on when maximize menu\r\n jQuery('#side-menu').hide();\r\n // For smoothly turn on menu\r\n setTimeout(\r\n function () {\r\n jQuery('#side-menu').fadeIn(400);\r\n }, 200);\r\n } else if (jQuery('body').hasClass('fixed-sidebar')) {\r\n jQuery('#side-menu').hide();\r\n setTimeout(\r\n function () {\r\n jQuery('#side-menu').fadeIn(400);\r\n }, 100);\r\n } else {\r\n // Remove all inline style from jquery fadeIn function to reset menu state\r\n jQuery('#side-menu').removeAttr('style');\r\n }\r\n}\r\n","import { NgModule, LOCALE_ID } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\nimport {RouterModule} from '@angular/router';\r\nimport {LocationStrategy, HashLocationStrategy, registerLocaleData} from '@angular/common';\r\n\r\nimport {ROUTES} from './app.routes';\r\nimport { AppComponent } from './app.component';\r\n\r\nimport { CanDeactivateGuard } from './shared/services/can-deactivate-guard.service';\r\n\r\n// App views\r\nimport {AppviewsModule} from './views/appviews/appviews.module';\r\n\r\n// App modules/components\r\nimport {LayoutsModule} from './components/common/layouts/layouts.module';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { AppConfig } from './app.config';\r\nimport { SnotifyModule, SnotifyService, ToastDefaults } from 'ng-snotify';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { ToastaModule } from 'ngx-toasta';\r\nimport { DialogService } from './shared/services/dialog.service';\r\nimport localeMx from '@angular/common/locales/es-MX';\r\nimport { BnNgIdleService } from 'bn-ng-idle';\r\nregisterLocaleData(localeMx, 'es-MX');\r\n@NgModule({\r\n declarations: [\r\n AppComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n LayoutsModule,\r\n AppviewsModule,\r\n HttpClientModule,\r\n SharedModule.forRoot(),\r\n RouterModule.forRoot(ROUTES, { onSameUrlNavigation: 'reload', useHash: false }),\r\n SnotifyModule,\r\n NgxSpinnerModule,\r\n ToastaModule.forRoot()\r\n ],\r\n providers: [\r\n { provide: LocationStrategy, useClass: HashLocationStrategy },\r\n AppConfig,\r\n { provide: 'SnotifyToastConfig', useValue: ToastDefaults },\r\n SnotifyService,\r\n CanDeactivateGuard,\r\n DialogService,\r\n { provide: LOCALE_ID, useValue: 'es-MX' },\r\n BnNgIdleService\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Routes } from '@angular/router';\r\n\r\nimport { RequestComponent } from './views/appviews/recruitment/request/request.component';\r\nimport { LoginComponent } from './views/appviews/login/login.component';\r\n\r\nimport { BlankLayoutComponent } from './components/common/layouts/blankLayout.component';\r\nimport { BasicLayoutComponent } from './components/common/layouts/basicLayout.component';\r\nimport { RequestReviewComponent } from './views/appviews/recruitment/request-review/request-review.component';\r\nimport { AuthGuardService as AuthGuard } from './shared/services/auth-guard.service';\r\nimport { RequisitionReviewComponent } from './views/appviews/opening/requisition-review/requisition-review.component';\r\nimport { RequisitionDetailComponent } from './views/appviews/opening/requisition-detail/requisition-detail.component';\r\nimport { RoleGuardService as RoleGuard } from './shared/services/role-guard.service';\r\nimport { UserComponent } from './views/appviews/security/user/user.component';\r\nimport { SystemComponent } from './views/appviews/security/system/system.component';\r\nimport { RoleComponent } from './views/appviews/security/Role/role.component';\r\nimport { ChangePasswordComponent } from './views/appviews/security/change-password/change-password.component';\r\nimport { ProfileComponent } from './views/appviews/recruitment/profile/profile.component';\r\nimport { CanDeactivateGuard } from './shared/services/can-deactivate-guard.service';\r\nimport { HolidayRequestComponent } from './views/appviews/request/holiday/holiday-request.component';\r\nimport { HolidayApprovalComponent } from './views/appviews/request/holiday/holiday-approval.component';\r\nimport { InabilityRequestComponent } from './views/appviews/request/inability/inability-request.component';\r\nimport { InabilityRecordsComponent } from './views/appviews/request/inability/inability-records.component';\r\nimport { WorkLeaveComponent } from './views/appviews/request/work-leave/work-leave.component';\r\nimport { WorkLeaveRecordsComponent } from './views/appviews/request/work-leave/work-leave-records.component';\r\nimport { CompaniesComponent } from './views/appviews/organization/companies/companies.component';\r\nimport { CustomersComponent } from './views/appviews/quote/customers/customers.component';\r\nimport { ProjectsComponent } from './views/appviews/quote/projects/projects.component';\r\nimport { ProductsComponent } from './views/appviews/quote/products/products.component';\r\nimport { ListPositionsComponent } from './views/appviews/quote/positions/list-positions.component';\r\nimport { PositionComponent } from './views/appviews/quote/positions/position.component';\r\nimport { ListBudgetsComponent } from './views/appviews/quote/budgets/list-budgets.component';\r\nimport { BudgetComponent } from './views/appviews/quote/budgets/budget.component';\r\nimport { WorkingDaysComponent } from './views/appviews/quote/working-days/working-days.component';\r\nimport { NotesComponent } from './views/appviews/quote/notes/notes.component';\r\nimport { RelocationComponent } from './views/appviews/request/relocation/relocation.component';\r\nimport { RelocationRecordsComponent } from './views/appviews/request/relocation/relocation-records.component';\r\nimport { BudgetApprovalComponent } from './views/appviews/quote/budgets/approval/budget-approval.component';\r\nimport { AccountActivationComponent } from './views/appviews/security/account-activation/account-activation.component';\r\nimport { BudgetApprovalSummaryComponent } from './views/appviews/quote/budgets/approval/budget-approval-summary.component';\r\nimport { ListEmployeesComponent } from './views/appviews/employees/list-employees.component';\r\nimport { EmployeeUpdateComponent } from './views/appviews/employees/employee-update.component';\r\nimport { CustomerCommissionsComponent } from './views/appviews/quote/customer-commissions/customer-commissions.component';\r\nimport { ListCommissionsComponent } from './views/appviews/payroll/commissions/list-commissions.component';\r\nimport { CommissionDetailComponent } from './views/appviews/payroll/commissions/commission-detail.component';\r\nimport { RetroactivesComponent } from './views/appviews/payroll/retroactives/retroactives.component';\r\nimport { ListPayrollsComponent } from './views/appviews/payroll/payrolls/list-payrolls.component';\r\nimport { PayrollDetailComponent } from './views/appviews/payroll/payrolls/payroll-detail.component';\r\nimport { ExternalCustomerCommissionComponent } from './views/appviews/payroll/commissions/external/external-customer-commission.component';\r\nimport { ExternalCustomerPayrollComponent } from './views/appviews/payroll/payrolls/external/external-customer-payroll.component';\r\nimport { ExternalRecruitmentComponent } from './views/appviews/recruitment/external/external-recruitment.component';\r\nimport { EnterAddressComponent } from './views/appviews/recruitment/external/enter-address/enter-address.component';\r\nimport { LiquidationComponent } from './views/appviews/request/legal/liquidation/liquidation.component';\r\nimport { ListLiquidationsComponent } from './views/appviews/request/legal/liquidation/list-liquidations.component';\r\nimport { ApproveConciliationOwnComponent } from './views/appviews/request/legal/liquidation/approval/approve-conciliation-own.component';\r\nimport { ExternalRequestCaptureComponent } from './views/appviews/recruitment/external/external-request-capture.component';\r\nimport { DashboardComponent } from './views/appviews/dashboard/dashboard.component';\r\nimport { IncidentComponent } from './views/appviews/incident/incident.component';\r\nimport { IncidentDetailComponent } from './views/appviews/incident/detail/incident.detail.component';\r\nimport { DemandComponent } from './views/appviews/request/legal/demands/demand.component';\r\nexport const ROUTES: Routes = [\r\n // Main redirect\r\n { path: '', redirectTo: 'login', pathMatch: 'full'},\r\n {\r\n path: 'dashboard', component: DashboardComponent\r\n },\r\n {\r\n path: 'dashboard', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'init', component: DashboardComponent\r\n }\r\n ]\r\n },\r\n // App views\r\n {\r\n path: 'recruitments', component: BasicLayoutComponent, canDeactivate: [CanDeactivateGuard],\r\n children: [\r\n {\r\n path: 'request', component: RequestComponent, canActivate: [RoleGuard],\r\n canDeactivate: [CanDeactivateGuard],\r\n data: {\r\n expectedModule: 'Request'\r\n },\r\n runGuardsAndResolvers: 'always'\r\n },\r\n {\r\n path: 'request-reviews', component: RequestReviewComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'RequestReviews'\r\n }\r\n },\r\n {\r\n path: 'profile', component: ProfileComponent\r\n }\r\n ]\r\n },\r\n {\r\n path: 'openings', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'requisition-reviews', component: RequisitionReviewComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'RequisitionReviews'\r\n }\r\n },\r\n {\r\n path: 'requisition-detail', component: RequisitionDetailComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'RequisitionDetail'\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n path: 'security', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'users', component: UserComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Users'\r\n }\r\n },\r\n {\r\n path: 'systems', component: SystemComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Systems'\r\n }\r\n },\r\n {\r\n path: 'roles', component: RoleComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Roles'\r\n }\r\n },\r\n {\r\n path: 'change-password', component: ChangePasswordComponent, canActivate: [AuthGuard]\r\n }\r\n ]\r\n },\r\n {\r\n path: 'holidays', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'request', component: HolidayRequestComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'HolidayRequest'\r\n }\r\n },\r\n {\r\n path: 'approval', component: HolidayApprovalComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'HolidayApproval'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'inabilities', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'requests', component: InabilityRequestComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Inability'\r\n }\r\n },\r\n {\r\n path: 'records', component: InabilityRecordsComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'InabilityRecords'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'works', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'leave', component: WorkLeaveComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'WorkLeave'\r\n }\r\n },\r\n {\r\n path: 'records', component: WorkLeaveRecordsComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'WorkLeaveRecords'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'relocations', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'create', component: RelocationComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Relocation'\r\n }\r\n },\r\n {\r\n path: 'records', component: RelocationRecordsComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'RelocationRecords'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'legal', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'records', component: ListLiquidationsComponent,\r\n data: {\r\n expectedModule: 'LiquidationRecords'\r\n }\r\n },\r\n {\r\n path: 'liquidation', component: LiquidationComponent,\r\n data: {\r\n expectedModule: 'Liquidation'\r\n }\r\n },\r\n {\r\n path: 'demand', component: DemandComponent,\r\n data: {\r\n expectedModule: 'Demand'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'catalogs', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'companies', component: CompaniesComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Companies'\r\n }\r\n },\r\n {\r\n path: 'customers', component: CustomersComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Customers'\r\n }\r\n },\r\n {\r\n path: 'projects', component: ProjectsComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Projects'\r\n }\r\n },\r\n {\r\n path: 'products', component: ProductsComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Products'\r\n }\r\n },\r\n {\r\n path: 'working-days', component: WorkingDaysComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'WorkingDays'\r\n }\r\n },\r\n {\r\n path: 'notes', component: NotesComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Notes'\r\n }\r\n },\r\n {\r\n path: 'customer-commissions', component: CustomerCommissionsComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'CustomerCommissions'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'positions', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'list', component: ListPositionsComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Jobs'\r\n }\r\n },\r\n {\r\n path: 'create', component: PositionComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'JobCreation'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'budgets', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'list', component: ListBudgetsComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Budgets'\r\n }\r\n },\r\n {\r\n path: 'create', component: BudgetComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'BudgetCreation'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'budgets', component: BlankLayoutComponent,\r\n children: [\r\n {\r\n path: 'budget-approval', component: BudgetComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'BudgetCreation'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '', component: BlankLayoutComponent,\r\n children: [\r\n { path: 'login', component: LoginComponent },\r\n { path: 'budget-approval', component: BudgetApprovalComponent },\r\n { path: 'activation', component: AccountActivationComponent },\r\n { path: 'budget-approval-summary', component: BudgetApprovalSummaryComponent },\r\n { path: 'external-customer-commission', component: ExternalCustomerCommissionComponent },\r\n { path: 'external-customer-payroll', component: ExternalCustomerPayrollComponent },\r\n { path: 'external-recruitment', component: ExternalRecruitmentComponent },\r\n { path: 'enter-address', component: EnterAddressComponent },\r\n { path: 'approve-conciliation-own', component: ApproveConciliationOwnComponent },\r\n { path: 'external-request-capture', component: ExternalRequestCaptureComponent },\r\n ]\r\n },\r\n {\r\n path: 'employees', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'list', component: ListEmployeesComponent,\r\n data: {\r\n expectedModule: 'Employees'\r\n }\r\n },\r\n {\r\n path: 'update', component: EmployeeUpdateComponent,\r\n data: {\r\n expectedModule: 'EmployeeUpdate'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'payroll', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'list', component: ListPayrollsComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'PayrollRecords'\r\n }\r\n },\r\n {\r\n path: 'payroll-detail', component: PayrollDetailComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Payroll'\r\n }\r\n },\r\n {\r\n path: 'commissions', component: ListCommissionsComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'CommissionRecords'\r\n }\r\n },\r\n {\r\n path: 'commission-detail', component: CommissionDetailComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Commission'\r\n }\r\n },\r\n {\r\n path: 'retroactives', component: RetroactivesComponent,\r\n data: {\r\n expectedModule: 'Retroactives'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'payroll', component: BlankLayoutComponent,\r\n children: [\r\n {\r\n path: 'external-customer-commission', component: CommissionDetailComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Commission'\r\n }\r\n },\r\n {\r\n path: 'external-customer-payroll', component: PayrollDetailComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Payroll'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'recruitments', component: BlankLayoutComponent,\r\n children: [\r\n {\r\n path: 'external-recruitment', component: RequestComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Request'\r\n }\r\n },\r\n {\r\n path: 'external-request-capture', component: RequestComponent, canActivate: [RoleGuard],\r\n data: {\r\n expectedModule: 'Request'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'incident', component: BasicLayoutComponent,\r\n children: [\r\n {\r\n path: 'records', component: IncidentComponent\r\n },\r\n {\r\n path: 'detail', component: IncidentDetailComponent\r\n }\r\n ]\r\n },\r\n // Handle all other routes\r\n { path: '**', redirectTo: 'login' }\r\n];\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'footer',\r\n templateUrl: 'footer.template.html'\r\n})\r\nexport class FooterComponent { }\r\n","import { Component } from '@angular/core';\r\nimport { detectBody } from '../../../app.helpers';\r\n\r\ndeclare var jQuery:any;\r\n\r\n@Component({\r\n selector: 'basic',\r\n templateUrl: 'basicLayout.template.html',\r\n host: {\r\n '(window:resize)': 'onResize()'\r\n }\r\n})\r\nexport class BasicLayoutComponent {\r\n\r\n public ngOnInit():any {\r\n detectBody();\r\n }\r\n\r\n public onResize(){\r\n detectBody();\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'blank',\r\n templateUrl: 'blankLayout.template.html'\r\n})\r\nexport class BlankLayoutComponent {\r\n\r\n ngAfterViewInit() {\r\n const x = document.getElementsByTagName('BODY')[0];\r\n x.classList.add('mini-navbar');\r\n }\r\n\r\n ngOnDestroy() {\r\n const x = document.getElementsByTagName('BODY')[0];\r\n x.classList.remove('gray-bg');\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {BrowserModule} from '@angular/platform-browser';\r\nimport {RouterModule} from '@angular/router';\r\n\r\nimport { BsDropdownModule } from 'ngx-bootstrap';\r\n\r\nimport {BasicLayoutComponent} from './basicLayout.component';\r\nimport {BlankLayoutComponent} from './blankLayout.component';\r\nimport { TopLayoutComponent } from './topLayout.component';\r\n\r\nimport {NavigationComponent} from './../navigation/navigation.component';\r\nimport {FooterComponent} from './../footer/footer.component';\r\nimport {TopNavbarComponent} from './../topnavbar/topnavbar.component';\r\nimport {TopNavigationNavbarComponent} from './../topnavbar/topnavigationnavbar.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n FooterComponent,\r\n BasicLayoutComponent,\r\n BlankLayoutComponent,\r\n NavigationComponent,\r\n TopLayoutComponent,\r\n TopNavbarComponent,\r\n TopNavigationNavbarComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n RouterModule,\r\n BsDropdownModule.forRoot()\r\n ],\r\n exports: [\r\n FooterComponent,\r\n BasicLayoutComponent,\r\n BlankLayoutComponent,\r\n NavigationComponent,\r\n TopLayoutComponent,\r\n TopNavbarComponent,\r\n TopNavigationNavbarComponent\r\n ],\r\n})\r\n\r\nexport class LayoutsModule {}\r\n","import { Component } from '@angular/core';\r\nimport { detectBody } from '../../../app.helpers';\r\n\r\ndeclare var jQuery:any;\r\n@Component({\r\n selector: 'top',\r\n templateUrl: 'topLayout.template.html',\r\n host: {\r\n '(window:resize)': 'onResize()'\r\n }\r\n})\r\nexport class TopLayoutComponent {\r\n\r\n public ngOnInit():any {\r\n detectBody();\r\n }\r\n\r\n public onResize(){\r\n detectBody();\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Component, OnInit } from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport 'jquery-slimscroll';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\n\r\ndeclare var jQuery: any;\r\n\r\n@Component({\r\n selector: 'navigation',\r\n templateUrl: 'navigation.template.html'\r\n})\r\n\r\nexport class NavigationComponent implements OnInit, AfterViewInit{\r\n constructor(private router: Router\r\n , public access: IdentityService\r\n , public securityService: SecurityService) {\r\n\r\n }\r\n ngOnInit() {\r\n this.access.loadUserData().then(() => {\r\n }).catch(error => {\r\n console.error('Error al cargar datos del usuario:', error);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n jQuery('#side-menu').metisMenu();\r\n\r\n if (jQuery(\"body\").hasClass('fixed-sidebar')) {\r\n jQuery('.sidebar-collapse').slimscroll({\r\n height: '100%'\r\n })\r\n }\r\n }\r\n activeRoute(routename: string): boolean{\r\n return this.router.url.indexOf(routename) > -1;\r\n }\r\n}\r\n","import { Component, NgZone, OnInit } from '@angular/core';\r\nimport { smoothlyMenu } from '../../../app.helpers';\r\nimport { SignalRService } from 'app/shared/services/signalr.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { IDtoNotification } from 'app/shared/models/dto-notification.model';\r\nimport { IUser } from 'app/shared/models/user.model';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'topnavbar',\r\n templateUrl: 'topnavbar.template.html'\r\n})\r\nexport class TopNavbarComponent implements OnInit {\r\n private notifications = new Array();\r\n private notificationCounter: number = 0;\r\n private errorMessages: any;\r\n private user: IUser;\r\n constructor(private signalRService: SignalRService\r\n , private configurationService: ConfigurationService\r\n , private ngZone: NgZone\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private securityService: SecurityService) {\r\n this.user = this.securityService.getUserDataStorage();\r\n }\r\n ngOnInit() {\r\n if (this.configurationService.isReady) {\r\n this.getNotificationsByUserId();\r\n this.subscribeToEvents();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getNotificationsByUserId();\r\n this.subscribeToEvents();\r\n });\r\n }\r\n }\r\n toggleNavigation(): void {\r\n const x = document.getElementsByTagName('BODY')[0];\r\n x.classList.toggle('mini-navbar');\r\n smoothlyMenu();\r\n }\r\n private subscribeToEvents(): void {\r\n this.signalRService.messageReceived.subscribe((result: IDtoNotification[]) => {\r\n this.ngZone.run(() => {\r\n if (result != null) {\r\n let filtered = result.filter(x => x.userId == this.user.userId);\r\n filtered.forEach(element => {\r\n this.notifications.push(element)\r\n console.log(this.notifications);\r\n this.countNotifications();\r\n });\r\n }\r\n });\r\n });\r\n }\r\n // private showNotification(item: IDtoNotification): void {\r\n // item.isActive = false;\r\n // this.countNotifications();\r\n // }\r\n private countNotifications(): void {\r\n this.notificationCounter = this.notifications.filter(x => x.isActive == true).length;\r\n }\r\n private showNotification(item: IDtoNotification): void {\r\n item.isActive = false;\r\n this.countNotifications();\r\n this.signalRService.updateNotification(item)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n if (item.moduleName != '/') {\r\n this.router.navigate([item.moduleName,\r\n { id: item.usedRecord, action: 'update' }], { relativeTo: this.route });\r\n }\r\n } else {\r\n item.isActive = true;\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private getNotificationsByUserId(): void {\r\n this.signalRService.getNotificationsByUserId(this.user.userId)\r\n .subscribe(\r\n (x) => {\r\n this.notifications = x;\r\n this.countNotifications();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { smoothlyMenu } from '../../../app.helpers';\r\n\r\n@Component({\r\n selector: 'topnavigationnavbar',\r\n templateUrl: 'topnavigationnavbar.template.html'\r\n})\r\nexport class TopNavigationNavbarComponent {\r\n\r\n toggleNavigation(): void {\r\n const x = document.getElementsByTagName('BODY')[0];\r\n x.classList.toggle('mini-navbar');\r\n smoothlyMenu();\r\n }\r\n\r\n}\r\n","import { Directive, forwardRef } from \"@angular/core\";\r\nimport { AbstractControl, NG_VALIDATORS, Validator } from \"@angular/forms\";\r\nconst CURP_VALIDATE_VALIDATOR: any = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => CurpValidateValidator),\r\n multi: true\r\n};\r\n@Directive({\r\n selector: '[curpvalidate]',\r\n providers: [ CURP_VALIDATE_VALIDATOR ],\r\n})\r\nexport class CurpValidateValidator implements Validator {\r\n validate(control: AbstractControl): {[key: string]: any} {\r\n if (control.value != null || typeof control.value === 'string' && control.value.length !== 0) {\r\n return this.curpValidation(control.value) ? null : { 'invalidCurp': true };\r\n } else {\r\n return null;\r\n }\r\n }\r\n private curpValidation(curp: string): boolean {\r\n var re = /^([A-Z][AEIOUX][A-Z]{2}\\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\\d|3[01])[HM](?:AS|B[CS]|C[CLMSH]|D[FG]|G[TR]|HG|JC|M[CNS]|N[ETL]|OC|PL|Q[TR]|S[PLR]|T[CSL]|VZ|YN|ZS)[B-DF-HJ-NP-TV-Z]{3}[A-Z\\d])(\\d)$/,\r\n validated = curp.match(re);\r\n\r\n if (!validated) //Coincide con el formato general?\r\n return false;\r\n\r\n //Validar que coincida el dígito verificador\r\n if (validated[2] != this.checkDigit(validated[1]).toString())\r\n return false;\r\n\r\n return true; //Validado\r\n }\r\n private checkDigit(curp17: string) {\r\n //Fuente https://consultas.curp.gob.mx/CurpSP/\r\n var dictionary = \"0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ\",\r\n lngSum = 0.0,\r\n lngDigit = 0.0;\r\n for (var i = 0; i < 17; i++)\r\n lngSum = lngSum + dictionary.indexOf(curp17.charAt(i)) * (18 - i);\r\n lngDigit = 10 - lngSum % 10;\r\n if (lngDigit == 10) return 0;\r\n return lngDigit;\r\n }\r\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[twoDigitDecimaNumber]'\r\n})\r\nexport class TwoDigitDecimaNumberDirective {\r\n // Allow decimal numbers and negative values\r\n private regex: RegExp = new RegExp(/^\\d*\\.?\\d{0,2}$/g);\r\n // Allow key codes for special events. Reflect :\r\n // Backspace, tab, end, home\r\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n console.log(this.el.nativeElement.value);\r\n // Allow Backspace, tab, end, and home keys\r\n if (this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n let current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join('');\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n@Directive({\r\n selector: '[fiveDigitDecimaNumber]'\r\n})\r\nexport class FiveDigitDecimaNumberDirective {\r\n // Allow decimal numbers and negative values\r\n private regex: RegExp = new RegExp(/^\\d*\\.?\\d{0,5}$/g);\r\n // Allow key codes for special events. Reflect :\r\n // Backspace, tab, end, home\r\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n console.log(this.el.nativeElement.value);\r\n // Allow Backspace, tab, end, and home keys\r\n if (this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n let current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join('');\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}","import { Directive, OnInit, ElementRef, TemplateRef, ViewContainerRef, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[visibleOwnerIncident]'\r\n})\r\nexport class VisibleOwnerIncidentDirective {\r\n private currentUser;\r\n private evaluaciones = [];\r\n\r\n constructor(\r\n private element: ElementRef,\r\n private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n ) {\r\n }\r\n\r\n @Input()\r\n set visibleOwnerIncident(val) {\r\n this.evaluaciones = val;\r\n this.updateView();\r\n }\r\n\r\n private updateView() {\r\n if (this.checkVisible()) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n }\r\n\r\n private checkVisible() {\r\n const status = this.evaluaciones[0];\r\n const perfil = this.evaluaciones[1];\r\n\r\n if (status === 1) {\r\n if (perfil !== 'owner') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[onlynumber]'\r\n})\r\nexport class OnlyNumberDirective {\r\n private decimalCounter = 0;\r\n private navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste'\r\n ];\r\n @Input() decimal ? = false;\r\n inputElement: HTMLElement;\r\n\r\n constructor(public el: ElementRef) {\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent) {\r\n if (\r\n this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.\r\n (e.key === 'a' && e.ctrlKey === true) || // Allow: Ctrl+A\r\n (e.key === 'c' && e.ctrlKey === true) || // Allow: Ctrl+C\r\n (e.key === 'v' && e.ctrlKey === true) || // Allow: Ctrl+V\r\n (e.key === 'x' && e.ctrlKey === true) || // Allow: Ctrl+X\r\n (e.key === 'a' && e.metaKey === true) || // Allow: Cmd+A (Mac)\r\n (e.key === 'c' && e.metaKey === true) || // Allow: Cmd+C (Mac)\r\n (e.key === 'v' && e.metaKey === true) || // Allow: Cmd+V (Mac)\r\n (e.key === 'x' && e.metaKey === true) || // Allow: Cmd+X (Mac)\r\n (this.decimal && e.key === '.' && this.decimalCounter < 1) // Allow: only one decimal point\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is a number and stop the keypress\r\n if (e.key === ' ' || isNaN(Number(e.key))) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyUp(e: KeyboardEvent) {\r\n if (!this.decimal) {\r\n return;\r\n } else {\r\n this.decimalCounter = this.el.nativeElement.value.split('.').length - 1;\r\n }\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent) {\r\n event.preventDefault();\r\n const pastedInput: string = event.clipboardData.getData('text/plain');\r\n\r\n if (!this.decimal) {\r\n document.execCommand(\r\n 'insertText',\r\n false,\r\n pastedInput.replace(/[^0-9]/g, '')\r\n );\r\n } else if (this.isValidDecimal(pastedInput)) {\r\n document.execCommand(\r\n 'insertText',\r\n false,\r\n pastedInput.replace(/[^0-9.]/g, '')\r\n );\r\n }\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event: DragEvent) {\r\n event.preventDefault();\r\n const textData = event.dataTransfer.getData('text');\r\n this.inputElement.focus();\r\n\r\n if (!this.decimal) {\r\n document.execCommand(\r\n 'insertText',\r\n false,\r\n textData.replace(/[^0-9]/g, '')\r\n );\r\n } else if (this.isValidDecimal(textData)) {\r\n document.execCommand(\r\n 'insertText',\r\n false,\r\n textData.replace(/[^0-9.]/g, '')\r\n );\r\n }\r\n }\r\n\r\n isValidDecimal(string: string): boolean {\r\n return string.split('.').length <= 2;\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, EventEmitter, Output, HostListener } from '@angular/core';\r\n\r\nimport { SearchPipe } from './search.pipe';\r\n\r\n@Directive({\r\n selector: '[appSearch]'\r\n})\r\nexport class SearchDirective implements OnChanges {\r\n @Input() items: Array;\r\n @Input() attribute: string;\r\n @Output() filterEvent: EventEmitter = new EventEmitter();\r\n\r\n searchTerm: string;\r\n\r\n @HostListener('keyup', ['$event.target.value']) onKeyUp(value) {\r\n this.searchTerm = value;\r\n this.applyFilter();\r\n }\r\n\r\n ngOnChanges() {\r\n this.applyFilter();\r\n }\r\n\r\n constructor (\r\n private searchPipe: SearchPipe\r\n ) {}\r\n\r\n applyFilter = () => {\r\n this.filterEvent.emit(new SearchPipe().transform(this.items, this.attribute, this.searchTerm));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'SearchPipe'\r\n})\r\nexport class SearchPipe implements PipeTransform {\r\n transform(items: Array, attribute: string, term: string): Array {\r\n if (!term || term === '') { return items; }\r\n\r\n const attributeArray = attribute.split(',').map(attr => attr.trim());\r\n \r\n return items.filter((item) => {\r\n return attributeArray.some(attribute => {\r\n const attributeValue = item[attribute];\r\n const stringValue = attributeValue !== undefined ? attributeValue.toString() : null;\r\n return stringValue && stringValue.toLowerCase().includes(term.toLowerCase());\r\n });\r\n });\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n\r\n@Directive({\r\n selector: '[removetilde]'\r\n})\r\nexport class RemoveTildeDirective {\r\n constructor(private el: ElementRef, private control: NgControl) {\r\n }\r\n\r\n @HostListener('input', ['$event']) onEvent($event) {\r\n const str: string = this.control.value;\r\n this.control.control.setValue(this.getCleanedString(str));\r\n }\r\n\r\n private getCleanedString(chain: string): string {\r\n // Definimos los caracteres que queremos eliminar\r\n const specialChars = '!@#$^&%*()+=-[]\\/{}|:<>?,.';\r\n // Los eliminamos todos\r\n for (let i = 0; i < specialChars.length; i++) {\r\n chain = chain.replace(new RegExp('\\\\' + specialChars[i], 'gi'), '');\r\n }\r\n // Lo queremos devolver limpio en minusculas\r\n // cadena = cadena.toLowerCase();\r\n // Quitamos espacios y los sustituimos por ' '\r\n chain = chain.replace(/ /g, ' ');\r\n // Quitamos acentos y \"ñ\". Fijate en que va sin comillas el primer parametro\r\n chain = chain.replace(/á/gi, 'a');\r\n chain = chain.replace(/é/gi, 'e');\r\n chain = chain.replace(/í/gi, 'i');\r\n chain = chain.replace(/ó/gi, 'o');\r\n chain = chain.replace(/ú/gi, 'u');\r\n chain = chain.replace(/Á/gi, 'A');\r\n chain = chain.replace(/É/gi, 'E');\r\n chain = chain.replace(/Í/gi, 'I');\r\n chain = chain.replace(/Ó/gi, 'O');\r\n chain = chain.replace(/Ú/gi, 'U');\r\n\r\n chain = chain.replace(/ +(?= )/g, '');\r\n return chain;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[uppercase]'\r\n})\r\nexport class UpperCaseDirective {\r\n constructor(private el: ElementRef, private control: NgControl) {\r\n }\r\n\r\n @HostListener('input', ['$event']) onEvent($event) {\r\n const str: string = this.control.value;\r\n this.control.control.setValue(str.toUpperCase());\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[lowercase]'\r\n})\r\nexport class LowerCaseDirective {\r\n constructor(private el: ElementRef, private control: NgControl) {\r\n }\r\n\r\n @HostListener('input', ['$event']) onEvent($event) {\r\n const str: string = this.control.value;\r\n this.control.control.setValue(str.toLowerCase());\r\n }\r\n}\r\n","export enum EnumMovementType {\r\n Contratacion = 1,\r\n Reubicacion = 2,\r\n Salario = 3\r\n}","export enum EnumBudgetStatus {\r\n New = 0,\r\n Approval = 1,\r\n Approved = 2,\r\n Rejected = 3,\r\n Cancelled = 4,\r\n Replaced = 5\r\n}","export enum EnumLiquidationStatus {\r\n Pendiente,\r\n Aceptada,\r\n Rechazada\r\n}","type Descripted = {\r\n [K in keyof T]: {\r\n readonly id: T[K];\r\n readonly name: string;\r\n }\r\n}[keyof T]\r\n\r\n/**\r\n * Helper to produce an array of enum descriptors.\r\n * @param enumeration Enumeration object.\r\n * @param separatorRegex Regex that would catch the separator in your enum key.\r\n */\r\nexport function enumToDescriptedArray(enumeration: T, separatorRegex: RegExp = /_/g): Descripted[] {\r\n return (Object.keys(enumeration) as Array)\r\n .filter(key => isNaN(Number(key)))\r\n .filter(key => typeof enumeration[key] === \"number\" || typeof enumeration[key] === \"string\")\r\n .map(key => ({\r\n id: enumeration[key],\r\n name: String(key).replace(separatorRegex, ' '),\r\n }));\r\n}\r\n\r\ntype NonFunctional = T extends Function ? never : T;\r\n\r\n/**\r\n * Helper to produce an array of enum values.\r\n * @param enumeration Enumeration object.\r\n */\r\nexport function enumToArray(enumeration: T): NonFunctional[] {\r\n return Object.keys(enumeration)\r\n .filter(key => isNaN(Number(key)))\r\n .map(key => enumeration[key])\r\n .filter(val => typeof val === \"number\" || typeof val === \"string\");\r\n}","import { ISelect } from '../../select.model';\r\n\r\nclass DiscardedDays {\r\n listDiscardedDays = new Array() as Date[];\r\n discardedDays: number = 0;\r\n totalDays: number;\r\n constructor(nonWorkingDays: any, startDate: Date, endDate: Date, festiveDays: ISelect[]) {\r\n const dateRange: Date[] = this.getDateRange(startDate, endDate);\r\n if (nonWorkingDays != undefined || nonWorkingDays != null) {\r\n dateRange.forEach((date) => {\r\n const nonWorkday = nonWorkingDays.filter(x => x.id === date.getDay())[0];\r\n if (nonWorkday !== undefined) {\r\n this.listDiscardedDays.push(date);\r\n }\r\n festiveDays.forEach(x => {\r\n const d = new Date(x.text);\r\n if (date.getFullYear() === d.getFullYear() &&\r\n date.getMonth() === d.getMonth() &&\r\n date.getDate() === d.getDate()) {\r\n this.listDiscardedDays.push(d);\r\n }\r\n });\r\n });\r\n }\r\n\r\n this.discardedDays = this.listDiscardedDays.length;\r\n }\r\n\r\n getDateRange(startDate: Date, endDate: Date): Date[] {\r\n const dates = new Array() as Date[];\r\n let currentDate = startDate;\r\n const addDays = function (days) {\r\n const date = new Date(this.valueOf());\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n };\r\n while (currentDate <= endDate) {\r\n dates.push(currentDate);\r\n currentDate = addDays.call(currentDate, 1);\r\n }\r\n return dates;\r\n }\r\n}\r\nclass DifferenceDate extends DiscardedDays {\r\n differenceDateNum: number;\r\n constructor(nonWorkingDays: any, startDate: Date, endDate: Date, festiveDays: ISelect[]) {\r\n super(nonWorkingDays, startDate, endDate, festiveDays);\r\n this.differenceDateNum = Math.round((endDate.getTime() - startDate.getTime()) / (1000 * 60 * 60 * 24));;\r\n }\r\n}\r\n\r\nexport class HolidayRange extends DifferenceDate {\r\n constructor(nonWorkingDays: any, availableDays: number, startDate: Date, endDate: Date, festiveDays: ISelect[]) {\r\n super(nonWorkingDays, startDate, endDate, festiveDays);\r\n this.initDate = startDate;\r\n this.finalDate = endDate;\r\n this.availableDays = availableDays;\r\n }\r\n listDiscardedDaysToString = new Array() as string[];\r\n\r\n availableDays: number;\r\n initDate: Date;\r\n finalDate: Date;\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuardService implements CanActivate {\r\n\r\n constructor(public auth: AuthService, public router: Router) {}\r\n\r\n public canActivate(): boolean {\r\n if (!this.auth.isAuthenticated()) {\r\n this.router.navigate(['login']);\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import { SecurityService } from './security.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n\r\n constructor(public jwtHelper: JwtHelperService\r\n , private securityService: SecurityService) {\r\n }\r\n\r\n // ...\r\n public isAuthenticated(): boolean {\r\n\r\n const token = this.securityService.GetToken();\r\n\r\n // Check whether the token is expired and return\r\n // true or false\r\n return !this.jwtHelper.isTokenExpired(token);\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Injectable, HostListener } from '@angular/core';\r\nimport { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\n\r\nexport interface CanComponentDeactivate {\r\n canDeactivate: () => Observable | Promise | boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class CanDeactivateGuard implements CanDeactivate {\r\n canDeactivate(component: CanComponentDeactivate,\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot) {\r\n\r\n let url: string = state.url;\r\n console.log('Url: ' + url);\r\n\r\n return component.canDeactivate ? component.canDeactivate() : true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { IConfiguration } from '../models/configuration.model';\r\nimport { StorageService } from './storage.service';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ConfigurationService {\r\n serverSettings: IConfiguration;\r\n private settingsLoadedSource = new Subject();\r\n settingsLoaded$ = this.settingsLoadedSource.asObservable();\r\n isReady: boolean = false;\r\n\r\n constructor(private http: HttpClient, private storageService: StorageService) {\r\n this.load();\r\n }\r\n load() {\r\n const baseURI = `${location.origin}/`;\r\n let url = `${baseURI}Configurations/Route`;\r\n this.http.get(url).subscribe((response) => {\r\n this.serverSettings = response as IConfiguration;\r\n this.storageService.store('identityUrl', this.serverSettings.identityUrl);\r\n this.storageService.store('recruitmentUrl', this.serverSettings.recruitmentUrl);\r\n this.storageService.store('openingUrl', this.serverSettings.openingUrl);\r\n this.storageService.store('requestUrl', this.serverSettings.requestUrl);\r\n this.storageService.store('quotetUrl', this.serverSettings.quoteUrl);\r\n this.storageService.store('payrollUrl', this.serverSettings.payrollUrl);\r\n this.storageService.store('messageUrl', this.serverSettings.messageUrl);\r\n this.storageService.store('incidentUrl', this.serverSettings.incidentUrl);\r\n this.storageService.store('moneyUrl', this.serverSettings.moneyUrl);\r\n this.isReady = true;\r\n this.settingsLoadedSource.next();\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { retry, map, catchError } from 'rxjs/operators';\r\n\r\nimport { SecurityService } from './security.service';\r\nimport { Guid } from '../../../../guid';\r\n\r\n// Implementing a Retry-Circuit breaker policy \r\n// is pending to do for the SPA app\r\n@Injectable()\r\nexport class DataService {\r\n constructor(private http: HttpClient, private securityService: SecurityService) { }\r\n\r\n get(url: string, params?: any): Observable {\r\n let options = {};\r\n this.setHeaders(options);\r\n\r\n return this.http.get(url, options)\r\n .pipe(\r\n // retry(3), // retry a failed request up to 3 times\r\n map((res: Response) => {\r\n return res;\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n postWithId(url: string, data: any, params?: any): Observable {\r\n return this.doPost(url, data, true, params);\r\n }\r\n\r\n post(url: string, data: any, params?: any): Observable {\r\n return this.doPost(url, data, false, params);\r\n }\r\n\r\n putWithId(url: string, data: any, params?: any): Observable {\r\n return this.doPut(url, data, true, params);\r\n }\r\n\r\n private doPost(url: string, data: any, needId: boolean, params?: any): Observable {\r\n let options = {};\r\n this.setHeaders(options, needId);\r\n\r\n return this.http.post(url, data, options)\r\n .pipe(\r\n map((res: Response) => {\r\n return res;\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n delete(url: string, params?: any) {\r\n let options = {};\r\n this.setHeaders(options);\r\n\r\n console.log('data.service deleting');\r\n\r\n return this.http.delete(url, options)\r\n .pipe(\r\n map((res: Response) => {\r\n return res;\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(error: any) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('Client side network error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error('Backend - ' +\r\n `status: ${error.status}, ` +\r\n `statusText: ${error.statusText}, ` +\r\n `message: ${error.error.message}`);\r\n }\r\n\r\n // return an observable with a user-facing error message\r\n return throwError(error || 'server error');\r\n }\r\n\r\n private doPut(url: string, data: any, needId: boolean, params?: any): Observable {\r\n let options = {};\r\n this.setHeaders(options, needId);\r\n\r\n return this.http.put(url, data, options)\r\n .pipe(\r\n map((res: Response) => {\r\n return res;\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private setHeaders(options: any, needId?: boolean) {\r\n if (needId && this.securityService) {\r\n options[\"headers\"] = new HttpHeaders()\r\n .append('authorization', 'Bearer ' + this.securityService.GetToken())\r\n .append('x-requestid', Guid.newGuid());\r\n }\r\n else if (this.securityService) {\r\n options[\"headers\"] = new HttpHeaders()\r\n .append('authorization', 'Bearer ' + this.securityService.GetToken());\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class DialogService {\r\n confirm(message?: string): Observable {\r\n const confirmation = window.confirm(message || 'Are you sure?');\r\n return Observable.of(confirmation);\r\n };\r\n} \r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { DataService } from './data.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { IResult } from '../models/result.model';\r\nimport { IDtoDocument } from '../models/request/dto-document.model';\r\n\r\n@Injectable()\r\nexport class DocumentService {\r\n private requestUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n });\r\n }\r\n }\r\n public addDocument(item: IDtoDocument, fileToUpload: File): Observable {\r\n const formData = new FormData();\r\n formData.append('document', JSON.stringify(item));\r\n formData.append('files', fileToUpload);\r\n\r\n const url = `${this.requestUrl}api/Documents/addDocument/`;\r\n return this.service.post(url, formData).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public downloadFile(id: number): Observable {\r\n\r\n const url = `${this.requestUrl}api/Documents/downloadFile?id=${id}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getLatesDocumentVersion(referenceId: number, name: string): Observable {\r\n\r\n const url = `${this.requestUrl}api/Documents/getLatesDocumentVersion?referenceId=${referenceId}&name=${name}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public deleteDocument(referenceId: number, name: string): Observable {\r\n\r\n const url = `${this.requestUrl}api/Documents/deleteDocument?referenceId=${referenceId}&name=${name}`;\r\n return this.service.delete(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n}\r\n","import { SecurityService } from './security.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { CanActivate, Router, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class RoleGuardService implements CanActivate {\r\n private roles: any;\r\n constructor(public auth: AuthService\r\n , public router: Router\r\n , private securityService: SecurityService) {\r\n const showRoles = this.securityService.getUserRolesStorage();\r\n if (showRoles !== '') {\r\n this.roles = showRoles.listRoles;\r\n }\r\n }\r\n canActivate(route: ActivatedRouteSnapshot): boolean {\r\n\r\n const expectedModule = route.data.expectedModule;\r\n\r\n if (!this.auth.isAuthenticated() || !this.isAuthorized(expectedModule)) {\r\n this.router.navigate(['login']);\r\n return false;\r\n }\r\n return true;\r\n }\r\n private isAuthorized(expectedRoleModule: string): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === expectedRoleModule)[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Headers } from '@angular/http';\r\nimport { Observable, Subject, throwError } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { StorageService } from './storage.service';\r\nimport { IUser } from '../models/user.model';\r\nimport { IResult } from '../models/result.model';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Injectable()\r\nexport class SecurityService {\r\n private user = {} as IUser;\r\n private actionUrl: string;\r\n private storage: StorageService;\r\n private authenticationSource = new Subject();\r\n private authenticationSourceExternal = new Subject();\r\n authenticationChallenge$ = this.authenticationSource.asObservable();\r\n authenticationChallengeExternal$ = this.authenticationSourceExternal.asObservable();\r\n private authorityUrl = '';\r\n\r\n constructor(private _http: HttpClient\r\n , private _router: Router\r\n , private route: ActivatedRoute\r\n , private _configurationService: ConfigurationService\r\n , private _storageService: StorageService\r\n , private spinner: NgxSpinnerService) {\r\n this.storage = _storageService;\r\n\r\n this._configurationService.settingsLoaded$.subscribe(x => {\r\n this.authorityUrl = this._configurationService.serverSettings.identityUrl\r\n this.storage.store('identityUrl', this.authorityUrl);\r\n });\r\n\r\n if (this.storage.retrieve('isAuthorized') !== '') {\r\n this.IsAuthorized = this.storage.retrieve('isAuthorized');\r\n this.authenticationSource.next(true);\r\n this.UserData = this.storage.retrieve('userData');\r\n }\r\n }\r\n\r\n public IsAuthorized: boolean;\r\n\r\n public GetToken(): any {\r\n return this.storage.retrieve('authorizationData');\r\n }\r\n\r\n public ResetAuthorizationData() {\r\n this.storage.store('authorizationData', '');\r\n this.IsAuthorized = false;\r\n this.storage.store('isAuthorized', false);\r\n this.storage.store('roles', '');\r\n this.storage.store('userData', '');\r\n this.storage.store('identityUrl', '');\r\n this.storage.store('openingUrl', '');\r\n this.storage.store('recruitmentUrl', '');\r\n this.storage.store('requestUrl', '');\r\n this.storage.store('quoteUrl', '');\r\n this.storage.store('payrollUrl', '');\r\n this.storage.store('messageUrl', '');\r\n this.storage.store('incidentUrl', '');\r\n this.storage.store('requisition', '');\r\n this.storage.store('moneyUrl', '');\r\n }\r\n\r\n public UserData: any;\r\n public SetAuthorizationData(token: any, id_token: any) {\r\n if (this.storage.retrieve('authorizationData') !== '') {\r\n this.storage.store('authorizationData', '');\r\n }\r\n\r\n this.storage.store('authorizationData', token);\r\n this.storage.store('authorizationDataIdToken', id_token);\r\n this.IsAuthorized = true;\r\n this.storage.store('isAuthorized', true);\r\n }\r\n public getProfileStorage(view): string {\r\n const showRoles = this.storage.retrieve('roles');\r\n if (showRoles !== '') {\r\n const rol = showRoles.listRoles.filter((item) => item.nameModule.toLowerCase() == view.toLowerCase());\r\n if (rol.length < 0) {\r\n return '';\r\n } else {\r\n return rol[0].nameRole;\r\n }\r\n }\r\n }\r\n public getUserDataStorage(): IUser {\r\n const userData = this.storage.retrieve('userData');\r\n if (userData !== '') {\r\n return userData;\r\n }\r\n }\r\n public getUserRolesStorage(): any {\r\n return this.storage.retrieve('roles');\r\n }\r\n\r\n public Logoff() {\r\n let post_logout_redirect_uri = location.origin;\r\n this.ResetAuthorizationData();\r\n window.location.href = post_logout_redirect_uri;\r\n }\r\n\r\n public GetRolesUser(currentRoute: string, param?: string) {\r\n this.getRoles()\r\n .subscribe((res) => {\r\n if (res.data === null) {\r\n this.authenticationSource.next(false);\r\n this._router.navigate(['/Unauthorized']);\r\n } else {\r\n let data: any = res.data;\r\n this.storage.store('isAuthorized', true);\r\n this.storage.store('roles', data);\r\n\r\n this.user.userId = data.userId;\r\n this.storage.store('userData', this.user);\r\n\r\n switch (currentRoute) {\r\n case 'budget-approval':\r\n this._router.navigate(['/budgets/budget-approval',\r\n { id: param, action: 'update' }], { relativeTo: this.route });\r\n break;\r\n case 'external-customer-commission':\r\n this._router.navigate(['/payroll/external-customer-commission',\r\n { id: param, routeType: 'external' }], { relativeTo: this.route });\r\n break;\r\n case 'external-customer-payroll':\r\n this._router.navigate(['/payroll/external-customer-payroll',\r\n { id: param, routeType: 'external', module: 'payroll' }], { relativeTo: this.route });\r\n break;\r\n case 'external-recruitment':\r\n this._router.navigate(['/recruitments/external-recruitment',\r\n { id: param, action: 'update', routeType: 'external' }], { relativeTo: this.route });\r\n break;\r\n case 'external-request-capture':\r\n this._router.navigate(['/recruitments/external-request-capture']);\r\n break;\r\n default:\r\n this._router.navigate([currentRoute]);\r\n break;\r\n }\r\n }\r\n },\r\n (error) => this.HandleError(error));\r\n }\r\n\r\n private getRoles(): Observable {\r\n const url = this.storage.retrieve('identityUrl') + 'api/roles/getRolesEmployee/';\r\n\r\n let options = {};\r\n options[\"headers\"] = new HttpHeaders()\r\n .append('authorization', 'Bearer ' + this.GetToken());\r\n\r\n return this._http.post(url, this.user, options)\r\n .pipe(\r\n map((res: Response) => {\r\n return res as any;\r\n })\r\n );\r\n }\r\n\r\n public MapNewUsuario(): IUser {\r\n const usuario = {} as IUser;\r\n usuario.username = '';\r\n usuario.password = '';\r\n\r\n return usuario;\r\n }\r\n\r\n public GetAuthorizationUser(usuario: IUser) {\r\n this.getToken(usuario)\r\n .subscribe((data) => {\r\n this.storage.store('authorizationData', data);\r\n this.authenticationSource.next(true);\r\n },\r\n (error) => this.HandleError(error));\r\n }\r\n public GetAuthorizationExternalUser(usuario: IUser) {\r\n this.getToken(usuario)\r\n .subscribe((data) => {\r\n this.storage.store('authorizationData', data);\r\n this.authenticationSourceExternal.next(true);\r\n },\r\n (error) => this.HandleError(error));\r\n }\r\n private getToken = (usuario: IUser): Observable => {\r\n this.user = usuario;\r\n let options = {};\r\n if (this.authorityUrl === '') {\r\n this.authorityUrl = this.storage.retrieve('identityUrl');\r\n }\r\n\r\n const url = this.authorityUrl + 'api/tokens/auth';\r\n return this._http.post(url, usuario, options)\r\n .pipe(\r\n map((res: Response) => {\r\n return res as any;\r\n })\r\n );\r\n }\r\n\r\n public HandleError(error: any) {\r\n this.spinner.hide();\r\n if (error instanceof ErrorEvent) {\r\n console.error('Client side network error occurred:', error.error.message);\r\n } else {\r\n console.error('Backend - ' +\r\n `status: ${error.status}, ` +\r\n `statusText: ${error.statusText}, ` +\r\n `url: ${error.url}`);\r\n if (error.status == 403) {\r\n this._router.navigate(['/Forbidden']);\r\n } else if (error.status == 401) {\r\n this.authenticationSource.next(false);\r\n this._router.navigate(['/Unauthorized']);\r\n }\r\n }\r\n return throwError(error || 'server error');\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport * as signalR from \"@aspnet/signalr\";\r\nimport { HubConnectionBuilder } from '@aspnet/signalr';\r\nimport { IDtoNotification } from '../models/dto-notification.model';\r\nimport { IResult } from '../models/result.model';\r\nimport { DataService } from './data.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\n@Injectable()\r\nexport class SignalRService {\r\n\r\n public messageReceived = new EventEmitter();\r\n public connectionEstablished = new EventEmitter();\r\n private connectionIsEstablished = false;\r\n private identityUrl = '';\r\n private hubConnection: signalR.HubConnection\r\n constructor(private configurationService: ConfigurationService\r\n , private service: DataService) {\r\n if (this.configurationService.isReady) {\r\n this.identityUrl = this.configurationService.serverSettings.identityUrl;\r\n this.start();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.identityUrl = this.configurationService.serverSettings.identityUrl;\r\n this.start();\r\n });\r\n }\r\n }\r\n private start(): void {\r\n this.createConnection();\r\n this.registerOnServerEvents();\r\n this.startConnection();\r\n }\r\n private createConnection() {\r\n this.hubConnection = new HubConnectionBuilder()\r\n .withUrl(`${this.identityUrl}notifications`)\r\n .build();\r\n }\r\n private startConnection(): void {\r\n this.hubConnection\r\n .start()\r\n .then(() => {\r\n this.connectionIsEstablished = true;\r\n //console.log('Hub connection started');\r\n this.connectionEstablished.emit(true);\r\n })\r\n .catch(err => {\r\n //console.log('Error while establishing connection, retrying...');\r\n setTimeout(function () { this.startConnection(); }, 5000);\r\n });\r\n }\r\n private registerOnServerEvents(): void {\r\n this.hubConnection.on('addNotifications', (data: any) => {\r\n this.messageReceived.emit(data);\r\n });\r\n }\r\n public updateNotification(dto: IDtoNotification): Observable {\r\n const url = `${this.identityUrl}api/Notifications/updateNotification`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getNotificationsByUserId(userId: string): Observable {\r\n const url = `${this.identityUrl}api/Notifications/getNotificationsByUserId?userId=${userId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n // public startConnection = () => {\r\n // let options = {};\r\n // options[\"headers\"] = new HttpHeaders()\r\n // .append('authorization', 'Bearer ' + this.securityService.GetToken());\r\n\r\n // this.hubConnection = new signalR.HubConnectionBuilder()\r\n // .withUrl(`${this.identityUrl}notifications`, options)//{ accessTokenFactory: () => 'Bearer ' + this.securityService.GetToken()}\r\n // .build();\r\n // this.hubConnection\r\n // .start()\r\n // .then(() => console.log('Connection started'))\r\n // .catch(err => console.log('Error while starting connection: ' + err))\r\n // }\r\n // public getNotificationListener = () => {\r\n // this.hubConnection.on('addNotification', (data) => {\r\n // console.log(data);\r\n // });\r\n // }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class StorageService {\r\n private storage: any;\r\n\r\n constructor() {\r\n this.storage = sessionStorage; // localStorage;\r\n }\r\n\r\n public retrieve(key: string): any {\r\n let item = this.storage.getItem(key);\r\n\r\n if (item && item !== 'undefined') {\r\n return JSON.parse(this.storage.getItem(key));\r\n }\r\n\r\n return;\r\n }\r\n\r\n public store(key: string, value: any) {\r\n this.storage.setItem(key, JSON.stringify(value));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n\r\n/**\r\n * Service helps communicate between the ToastComponent and AppComponent.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToastPositionService {\r\n private positionSource = new Subject();\r\n position$ = this.positionSource.asObservable();\r\n\r\n setPosition(position) {\r\n this.positionSource.next(position);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { FormControl, FormGroup, AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\n\r\n@Injectable()\r\nexport class ValidatorService {\r\n private static minRange = 0;\r\n private static maxRange = 0;\r\n\r\n static formErrors(field: string, form: FormGroup, fsa: boolean): string {\r\n let message = '';\r\n const formField = form.controls[field];\r\n if (formField.touched || formField.untouched && fsa) {\r\n if (formField.hasError('required')) {\r\n message += '

Campo requerido

';\r\n }\r\n\r\n if (formField.hasError('email')) {\r\n message += '

El correo no es válido

';\r\n }\r\n\r\n if (formField.hasError('invalidChar')) {\r\n message += '

Los carácteres especiales no están permitidos

';\r\n }\r\n\r\n if (formField.hasError('onlyNumbers')) {\r\n message += '

Sólo se permiten números

';\r\n }\r\n\r\n if (formField.hasError('invalidPassword')) {\r\n message += '

Formato de contraseña inválido

';\r\n }\r\n\r\n if (formField.hasError('matchPassword')) {\r\n message += '

Las contraseñas deben coincidir

';\r\n }\r\n\r\n if (formField.hasError('rangeChars')) {\r\n message += `

Se aceptan mínimo ${this.minRange} y máximo ${this.maxRange} caracteres

`;\r\n }\r\n\r\n if (formField.hasError('minlength')) {\r\n message += `

Se aceptan mínimo ${formField.errors.minlength.requiredLength} caracteres

`;\r\n }\r\n\r\n if (formField.hasError('maxlength')) {\r\n message += `

Se aceptan máximo ${formField.errors.maxlength.requiredLength} caracteres

`;\r\n }\r\n\r\n if (formField.hasError('invalidCurp')) {\r\n message += '

La CURP ingresada no es válida

';\r\n }\r\n }\r\n return message;\r\n }\r\n\r\n static getError(controlName: string, form: FormGroup): boolean {\r\n let error = '';\r\n let obj = {} as any;\r\n const control = form.get(controlName);\r\n if (control.touched && control.errors != null) {\r\n error = JSON.stringify(control.errors);\r\n obj = JSON.parse(error);\r\n }\r\n return obj;\r\n }\r\n\r\n static matchPassword(firstControlName, secondControlName) {\r\n return (aC: AbstractControl) => {\r\n const firstControlValue = aC.get(firstControlName).value;\r\n const secondControlValue = aC.get(secondControlName).value;\r\n if (firstControlValue !== secondControlValue) {\r\n aC.get(secondControlName).setErrors({ 'matchPassword': true });\r\n return { 'matchPassword': true };\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n static formatPasswordValidator(control: FormControl): { [key: string]: any } {\r\n if (control.value) {\r\n if (control.value.match(/^(?=.*[A-Za-z])(?=.*\\d)(?=.*[$@$!.%*#?&])[A-Za-z\\d$@$!.%*#?&]{8,}$/)) {\r\n return null;\r\n } else {\r\n return { 'invalidPassword': true };\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule, FormBuilder } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { HttpModule, JsonpModule } from '@angular/http';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n// Services\r\nimport { DataService } from './services/data.service';\r\nimport { SecurityService } from './services/security.service';\r\nimport { ConfigurationService } from './services/configuration.service';\r\nimport { StorageService } from './services/storage.service';\r\nimport { ValidatorService } from './services/validator.service';\r\nimport { JwtModuleOptions, JwtModule } from '@auth0/angular-jwt';\r\nimport { AuthGuardService } from './services/auth-guard.service';\r\nimport { AuthService } from './services/auth.service';\r\nimport { RoleGuardService } from './services/role-guard.service';\r\nimport { SignalRService } from './services/signalr.service';\r\nimport { DocumentService } from './services/document.service';\r\n// Components:\r\n// Pipes:\r\nconst JwtModuleOptions: JwtModuleOptions = {\r\n config: {\r\n tokenGetter: Array[''],\r\n whitelistedDomains: Array['login']\r\n }\r\n};\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NgbModule,\r\n JwtModule.forRoot(JwtModuleOptions),\r\n // No need to export as these modules don't expose any components/directive etc'\r\n HttpModule,\r\n JsonpModule\r\n ],\r\n declarations: [\r\n ],\r\n exports: [\r\n // Modules\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NgbModule,\r\n // Providers, Components, directive, pipes\r\n ]\r\n})\r\nexport class SharedModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: SharedModule,\r\n providers: [\r\n // Providers\r\n DataService,\r\n SecurityService,\r\n ConfigurationService,\r\n StorageService,\r\n ValidatorService, AuthGuardService, AuthService, RoleGuardService, SignalRService, DocumentService\r\n ]\r\n };\r\n }\r\n}\r\n","import { NgModule, LOCALE_ID, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { RequestComponent } from './recruitment/request/request.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { BsDatepickerModule, ModalModule, PaginationModule, BsDatepickerConfig } from 'ngx-bootstrap';\r\nimport { ModalEmploymentHistoryComponet } from '../modales/recruitment/employment-history/modal-employment-history.component';\r\nimport { ModalLanguageComponet } from '../modales/recruitment/language/modal-language.component';\r\nimport { ModalStudyComponet } from '../modales/recruitment/study/modal-study.component';\r\nimport { RecruitmentService } from './recruitment/recruitment.service';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { SweetAlert2Module } from '@sweetalert2/ngx-sweetalert2';\r\nimport { ModalReferenceComponet } from '../modales/recruitment/reference/modal-reference.component';\r\nimport { ModalAppearanceComponet } from '../modales/recruitment/appearance/modal-appearance.component';\r\nimport { NgxMaskModule } from 'ngx-mask'\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { RequestReviewComponent } from './recruitment/request-review/request-review.component';\r\nimport { UpperCaseDirective, RemoveTildeDirective, LowerCaseDirective } from 'app/shared/directives/uppercase.directive';\r\nimport { OnlyNumberDirective } from 'app/shared/directives/only-number.directive';\r\nimport { NgSlimScrollModule, SLIMSCROLL_DEFAULTS } from 'ngx-slimscroll';\r\nimport { RequisitionReviewComponent } from './opening/requisition-review/requisition-review.component';\r\nimport { RequisitionDetailComponent } from './opening/requisition-detail/requisition-detail.component';\r\nimport { OpeningService } from './opening/opening.service';\r\nimport { RequisitionTrackingComponent } from './opening/requisition-detail/requisition-tracking/requisition-tracking.component';\r\nimport { UserComponent } from './security/user/user.component';\r\nimport { SystemComponent } from './security/system/system.component';\r\nimport { RoleComponent } from './security/Role/role.component';\r\nimport { IdentityService } from './security/identity.service';\r\nimport { ModalUserComponet } from '../modales/security/user/modal-user.component';\r\nimport { ModalUserRoleComponet } from '../modales/security/user-role/modal-user-role.component';\r\nimport { ModalSystemModuleComponet } from '../modales/security/system-module/modal-system-module.component';\r\nimport { ChangePasswordComponent } from './security/change-password/change-password.component';\r\nimport { ProfileComponent } from './recruitment/profile/profile.component';\r\nimport { ModalEmploymentHistoryCommentsComponent } from '../modales/recruitment/employment-history/modal-employment-history-comments.component';\r\nexport function getDatepickerConfig(): BsDatepickerConfig {\r\n return Object.assign(new BsDatepickerConfig(), {\r\n dateInputFormat: 'DD/MM/YYYY'\r\n });\r\n}\r\nimport { registerLocaleData } from '@angular/common';\r\nimport localeEs from '@angular/common/locales/es';\r\nimport { PopoverModule } from 'ngx-bootstrap/popover';\r\nregisterLocaleData(localeEs);\r\nimport { HolidayApprovalComponent } from './request/holiday/holiday-approval.component';\r\nimport { HolidayRequestComponent } from './request/holiday/holiday-request.component';\r\nimport { EmployeeComponent } from './request/employee/employee.component';\r\nimport { ModalReasonRejectionComponent } from '../modales/request/holiday/modal-reason-rejection.component';\r\nimport { HolidayService } from './request/holiday.service';\r\nimport { ModalReasonCancelComponent } from '../modales/request/holiday/modal-reason-cancel.component';\r\nimport { InabilityRequestComponent } from './request/inability/inability-request.component';\r\nimport { InabilityRecordsComponent } from './request/inability/inability-records.component';\r\nimport { AngularMyDatePickerModule } from 'angular-mydatepicker';\r\nimport { InabilityService } from './request/inability.service';\r\nimport { ExcelService } from './request/excel.service';\r\nimport { ModalEmployeesComponet } from '../modales/employees/modal-employees.component';\r\nimport { WorkLeaveComponent } from './request/work-leave/work-leave.component';\r\nimport { WorkLeaveService } from './request/workLeave.service';\r\nimport { WorkLeaveRecordsComponent } from './request/work-leave/work-leave-records.component';\r\nimport { RequisitionEditComponent } from './opening/requisition-detail/requisition-edit/requisition-edit.component';\r\nimport { ModalHireEmployeeComponet } from '../modales/recruitment/hire/modal-hire-employee.component';\r\nimport { CompaniesComponent } from './organization/companies/companies.component';\r\nimport { OrganizationService } from './organization/organization.service';\r\nimport { ModalCompanyComponet } from '../modales/organization/company/modal-company.component';\r\nimport { CustomersComponent } from './quote/customers/customers.component';\r\nimport { ModalCustomerComponet } from '../modales/customer/modal-customer.component';\r\nimport { ProjectsComponent } from './quote/projects/projects.component';\r\nimport { ModalProjectComponet } from '../modales/customer/project/modal-project.component';\r\nimport { ModalPlanComponet } from '../modales/customer/plan/modal-plan.component';\r\nimport { CustomerService } from './quote/customer.service';\r\nimport { PositionService } from './quote/position.service';\r\nimport { ProductsComponent } from './quote/products/products.component';\r\nimport { ModalProductComponet } from '../modales/position/product/modal-product.component';\r\nimport { ListPositionsComponent } from './quote/positions/list-positions.component';\r\nimport { PositionComponent } from './quote/positions/position.component';\r\nimport { from } from 'rxjs';\r\nimport { ModalCommissionComponet } from '../modales/position/commission/modal-commission.component';\r\nimport { ModalVoucherComponet } from '../modales/position/voucher/modal-voucher.component';\r\nimport { ListBudgetsComponent } from './quote/budgets/list-budgets.component';\r\nimport { BudgetComponent } from './quote/budgets/budget.component';\r\nimport { CustomerComponent } from './common/customer/customer.component';\r\nimport { BudgetService } from './quote/budget.service';\r\nimport { WorkingDayService } from './quote/working-day.service';\r\nimport { WorkingDaysComponent } from './quote/working-days/working-days.component';\r\nimport { ModalWorkingDayComponet } from '../modales/position/working-day/modal-working-day.component';\r\nimport { ModalReasonComponent } from '../modales/common/modal-reason.component';\r\nimport { NotesComponent } from './quote/notes/notes.component';\r\nimport { ModalNotesComponet } from '../modales/budget/notes/modal-notes.component';\r\nimport { RelocationComponent } from './request/relocation/relocation.component';\r\nimport { RelocationService } from './request/relocation.service';\r\nimport { RelocationRecordsComponent } from './request/relocation/relocation-records.component';\r\nimport { ModalBudgetApproverComponent } from '../modales/customer/budget-approver/modal-budget-approver.component';\r\nimport { BudgetApprovalComponent } from './quote/budgets/approval/budget-approval.component';\r\nimport { ModalDuplicateBudgetComponet } from '../modales/budget/duplicate/modal-duplicate.component';\r\nimport { ModalBudgetVersionsComponet } from '../modales/budget/versions/modal-versions.component';\r\nimport { AccountActivationComponent } from './security/account-activation/account-activation.component';\r\nimport { AdministrationService } from './quote/administration.service';\r\nimport { BudgetApprovalSummaryComponent } from './quote/budgets/approval/budget-approval-summary.component';\r\nimport { ModalRiskPremiumComponet } from '../modales/organization/risk-premium/modal-risk-premium.component';\r\nimport { ModalEmployerRegisterComponet } from '../modales/organization/employer-register/modal-employer-register.component';\r\nimport { CurpValidateValidator } from 'app/shared/directives/curp-validate.directive';\r\nimport { PayrollService } from './payroll.service';\r\nimport { FiveDigitDecimaNumberDirective, TwoDigitDecimaNumberDirective } from 'app/shared/directives/digit-decima-number.directive';\r\nimport { ListEmployeesComponent } from './employees/list-employees.component';\r\nimport { EmployeeService } from './employee.service';\r\nimport { EmployeeUpdateComponent } from './employees/employee-update.component';\r\nimport { EmployeeDocumentsComponent } from './employees/employee-documents/employee-documents.component';\r\nimport { ModalMassiveUpdateComponet } from '../modales/position/massive-update/modal-massive-update.component';\r\nimport { ModalSalaryFormatComponet } from '../modales/employees/salary-format/modal-salary-format.component';\r\nimport { EmailService } from './email.service';\r\nimport { CustomerCommissionsComponent } from './quote/customer-commissions/customer-commissions.component';\r\nimport { ModalCustomerCommissionComponent } from '../modales/position/customer-commission/modal-customer-commission.component';\r\nimport { registerAllModules } from 'handsontable/registry';\r\nimport { ListCommissionsComponent } from './payroll/commissions/list-commissions.component';\r\nimport { CommissionService } from './commission.service';\r\nimport { HotTableModule } from '@handsontable/angular';\r\nimport { CommissionDetailComponent } from './payroll/commissions/commission-detail.component';\r\nimport { RetroactivesComponent } from './payroll/retroactives/retroactives.component';\r\nimport { RetroactiveService } from './retroactive.service';\r\nimport { ModalEmployerRegisterOfficeComponet } from '../modales/organization/employer-register-office/modal-employer-register-office.component';\r\nimport { ListPayrollsComponent } from './payroll/payrolls/list-payrolls.component';\r\nimport { PayrollDetailComponent } from './payroll/payrolls/payroll-detail.component';\r\nimport { ModalRetentionsComponet } from '../modales/payroll/retentions/modal-retentions.component';\r\nimport { ExternalCustomerCommissionComponent } from './payroll/commissions/external/external-customer-commission.component';\r\nimport { ExternalCustomerPayrollComponent } from './payroll/payrolls/external/external-customer-payroll.component';\r\nimport { ExternalRecruitmentComponent } from './recruitment/external/external-recruitment.component';\r\nimport { ModalRequisitionTrackingComponet } from '../modales/opening/requisition-tracking/modal-requisition-tracking.component';\r\nimport { EnterAddressComponent } from './recruitment/external/enter-address/enter-address.component';\r\nimport { LiquidationComponent } from './request/legal/liquidation/liquidation.component';\r\nimport { LiquidationService } from './liquidation.service';\r\nimport { DiscountService } from './discount.service';\r\nimport { ListLiquidationsComponent } from './request/legal/liquidation/list-liquidations.component';\r\nimport { ApproveConciliationOwnComponent } from './request/legal/liquidation/approval/approve-conciliation-own.component';\r\nimport { MessageService } from './message.service';\r\nimport { ExternalRequestCaptureComponent } from './recruitment/external/external-request-capture.component';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { DashboardService } from './dashboard.service';\r\nimport { IncidentComponent } from './incident/incident.component';\r\nimport { IncidentService } from './incident.service';\r\nimport { VisibleOwnerIncidentDirective } from 'app/shared/directives/incident.directive';\r\nimport { SearchDirective } from 'app/shared/directives/search.directive';\r\nimport { SearchPipe } from 'app/shared/directives/search.pipe';\r\nimport { ModalIncidentComponent } from '../modales/incident/modal.incident.component';\r\nimport { IncidentDetailComponent } from './incident/detail/incident.detail.component';\r\nimport { ModalBasicDataComponet } from '../modales/employees/basic-data/modal-basic-data.component';\r\n\r\nimport { DemandComponent } from './request/legal/demands/demand.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material';\r\nimport { DemandService } from './demand.service';\r\nimport { DemandProcessComponent } from './request/legal/demands/authority-1/1-demand-process/demand-process.component';\r\nimport { ConciliatoryAppointmentComponent } from './request/legal/demands/authority-1/2-conciliatory-appointment/conciliatory-appointment.component';\r\nimport { ReceptionDemandComponent } from './request/legal/demands/authority-1/3-reception-demand/reception-demand.component';\r\nimport { LiquidationDetailComponent } from './request/legal/liquidation/liquidation-detail/liquidation-detail.component';\r\nimport { AnswerDemandComponent } from './request/legal/demands/authority-1/4-answer-demand/answer-demand.component';\r\nimport { OfferAdmissionEvidencesComponent } from './request/legal/demands/authority-1/5-offer-admission-evidences/offer-admission-evidences.component';\r\nimport { ModaloOffterAdmissionEvidencesComponet } from '../modales/demand/offter-admission-evidences/modal-offter-admission-evidences.component';\r\nimport { ReleaseEvidencesComponent } from './request/legal/demands/authority-1/6-release-evidences/release-evidences.component';\r\nimport { ModalReleaseEvidenceComponet } from '../modales/demand/offter-release-evidence/modal-release-evidence.component';\r\nimport { AllegationComponent } from './request/legal/demands/authority-1/7-allegation/allegation.component';\r\nimport { LaudoComponent } from './request/legal/demands/authority-1/8-laudo/laudo.component';\r\nimport { ConciliatoryAppointmentCourtComponent } from './request/legal/demands/authority-2/1-conciliatory-appointment/conciliatory-appointment-court.component';\r\nimport { PreliminaryAudienceComponent } from './request/legal/demands/authority-2/2-preliminary-audience/preliminary-audience.component';\r\nimport { ModalPreliminaryAudienceEvidencesComponet } from '../modales/demand/preliminary-audience-evidences/modal-preliminary-audience-evidences.component';\r\nimport { JudgmentAudienceComponent } from './request/legal/demands/authority-2/3-judgment-audience/judgment-audience.component';\r\nimport { ModalAudienceJudgmentEvidenceComponet } from '../modales/demand/audience-judgment-evidence/modal-audience-judgment-evidence.component';\r\nimport { ModalRestartDemandComponet } from '../modales/demand/restart-demand/modal-restart-demand.component';\r\nimport { ModalDemandCostComponet } from '../modales/demand/demand-cost/modal-demand-cost.component';\r\nimport { ModalDiscountDismissalComponet } from '../modales/liquidation/discount/modal-discount-dismissal.component';\r\n// register Handsontable's modules\r\nregisterAllModules();\r\n@NgModule({\r\n declarations: [\r\n RequestComponent,\r\n RequestReviewComponent,\r\n ProfileComponent,\r\n RequisitionReviewComponent,\r\n RequisitionDetailComponent,\r\n LoginComponent,\r\n ModalEmploymentHistoryComponet,\r\n ModalEmploymentHistoryCommentsComponent,\r\n ModalLanguageComponet,\r\n ModalReferenceComponet,\r\n ModalStudyComponet,\r\n ModalAppearanceComponet,\r\n ModalUserComponet,\r\n ModalUserRoleComponet,\r\n ModalSystemModuleComponet,\r\n ModalReasonRejectionComponent,\r\n ModalReasonCancelComponent,\r\n ModalEmployeesComponet,\r\n ModalHireEmployeeComponet,\r\n RemoveTildeDirective,\r\n UpperCaseDirective,\r\n LowerCaseDirective,\r\n OnlyNumberDirective,\r\n TwoDigitDecimaNumberDirective,\r\n FiveDigitDecimaNumberDirective,\r\n CurpValidateValidator,\r\n RequisitionTrackingComponent,\r\n RequisitionEditComponent,\r\n EmployeeComponent,\r\n UserComponent,\r\n SystemComponent,\r\n RoleComponent,\r\n ChangePasswordComponent,\r\n HolidayRequestComponent,\r\n HolidayApprovalComponent,\r\n InabilityRequestComponent,\r\n InabilityRecordsComponent,\r\n WorkLeaveComponent,\r\n WorkLeaveRecordsComponent,\r\n CompaniesComponent,\r\n ModalRiskPremiumComponet,\r\n ModalCompanyComponet,\r\n CustomersComponent,\r\n ModalCustomerComponet,\r\n ProjectsComponent,\r\n ModalProjectComponet,\r\n ModalPlanComponet,\r\n ProductsComponent,\r\n ModalProductComponet,\r\n ListPositionsComponent,\r\n PositionComponent,\r\n ModalCommissionComponet,\r\n ModalVoucherComponet,\r\n ListBudgetsComponent,\r\n BudgetComponent,\r\n CustomerComponent,\r\n WorkingDaysComponent,\r\n ModalWorkingDayComponet,\r\n ModalReasonComponent,\r\n NotesComponent,\r\n ModalNotesComponet,\r\n RelocationComponent,\r\n RelocationRecordsComponent,\r\n ModalBudgetApproverComponent,\r\n BudgetApprovalComponent,\r\n ModalDuplicateBudgetComponet,\r\n ModalBudgetVersionsComponet,\r\n AccountActivationComponent,\r\n BudgetApprovalSummaryComponent,\r\n ModalEmployerRegisterComponet,\r\n ListEmployeesComponent,\r\n EmployeeUpdateComponent,\r\n EmployeeDocumentsComponent,\r\n ModalMassiveUpdateComponet,\r\n CustomerCommissionsComponent,\r\n ModalCustomerCommissionComponent,\r\n ListCommissionsComponent,\r\n CommissionDetailComponent,\r\n RetroactivesComponent,\r\n ModalEmployerRegisterOfficeComponet,\r\n ListPayrollsComponent,\r\n PayrollDetailComponent,\r\n ModalSalaryFormatComponet,\r\n ModalRetentionsComponet,\r\n ExternalCustomerCommissionComponent,\r\n ExternalCustomerPayrollComponent,\r\n ExternalRecruitmentComponent,\r\n ModalRequisitionTrackingComponet,\r\n EnterAddressComponent,\r\n LiquidationComponent,\r\n ListLiquidationsComponent,\r\n ExternalRequestCaptureComponent,\r\n ApproveConciliationOwnComponent,\r\n DashboardComponent,\r\n IncidentComponent,\r\n VisibleOwnerIncidentDirective,\r\n SearchDirective,\r\n ModalIncidentComponent,\r\n IncidentDetailComponent,\r\n ModalBasicDataComponet,\r\n DemandComponent,\r\n DemandProcessComponent,\r\n ConciliatoryAppointmentComponent,\r\n ReceptionDemandComponent,\r\n LiquidationDetailComponent,\r\n AnswerDemandComponent,\r\n OfferAdmissionEvidencesComponent,\r\n ModaloOffterAdmissionEvidencesComponet,\r\n ReleaseEvidencesComponent,\r\n ModalReleaseEvidenceComponet,\r\n AllegationComponent,\r\n LaudoComponent,\r\n ConciliatoryAppointmentCourtComponent,\r\n PreliminaryAudienceComponent,\r\n ModalPreliminaryAudienceEvidencesComponet,\r\n JudgmentAudienceComponent,\r\n ModalAudienceJudgmentEvidenceComponet,\r\n ModalRestartDemandComponet,\r\n ModalDemandCostComponet,\r\n ModalDiscountDismissalComponet\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgbModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n BrowserModule,\r\n RouterModule,\r\n BrowserAnimationsModule,\r\n BsDatepickerModule.forRoot(),\r\n ModalModule.forRoot(),\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatTabsModule,\r\n MatStepperModule,\r\n SweetAlert2Module.forRoot(),\r\n NgxMaskModule.forRoot(),\r\n NgSelectModule,\r\n NgxDatatableModule,\r\n NgSlimScrollModule,\r\n PaginationModule.forRoot(),\r\n AngularMyDatePickerModule,\r\n HotTableModule.forRoot(),\r\n PopoverModule.forRoot(),\r\n MatIconModule,\r\n MatButtonModule\r\n ],\r\n entryComponents: [ModalEmploymentHistoryComponet\r\n , ModalEmploymentHistoryCommentsComponent\r\n , ModalLanguageComponet\r\n , ModalReferenceComponet\r\n , ModalStudyComponet\r\n , ModalAppearanceComponet\r\n , ModalUserComponet\r\n , ModalUserRoleComponet\r\n , ModalSystemModuleComponet\r\n , ModalReasonRejectionComponent\r\n , ModalReasonCancelComponent\r\n , ModalEmployeesComponet\r\n , ModalHireEmployeeComponet\r\n , ModalRiskPremiumComponet\r\n , ModalCompanyComponet\r\n , ModalCustomerComponet\r\n , ModalProjectComponet\r\n , ModalPlanComponet\r\n , ModalProductComponet\r\n , ModalCommissionComponet\r\n , ModalVoucherComponet\r\n , ModalWorkingDayComponet\r\n , ModalReasonComponent\r\n , ModalNotesComponet\r\n , ModalBudgetApproverComponent\r\n , ModalDuplicateBudgetComponet\r\n , ModalBudgetVersionsComponet\r\n , ModalEmployerRegisterComponet\r\n , ModalMassiveUpdateComponet\r\n , ModalCustomerCommissionComponent\r\n , ModalEmployerRegisterOfficeComponet\r\n , ModalSalaryFormatComponet\r\n , ModalRetentionsComponet\r\n , ModalRequisitionTrackingComponet\r\n , ModalIncidentComponent\r\n , ModalBasicDataComponet\r\n , ModaloOffterAdmissionEvidencesComponet\r\n , ModalReleaseEvidenceComponet\r\n , ModalPreliminaryAudienceEvidencesComponet\r\n , ModalAudienceJudgmentEvidenceComponet\r\n , ModalRestartDemandComponet\r\n , ModalDemandCostComponet\r\n , ModalDiscountDismissalComponet],\r\n exports: [\r\n ],\r\n providers: [RecruitmentService, OpeningService, IdentityService, HolidayService, InabilityService\r\n , ExcelService\r\n , DatePipe\r\n , WorkLeaveService\r\n , OrganizationService\r\n , CustomerService\r\n , PositionService\r\n , BudgetService\r\n , WorkingDayService\r\n , RelocationService\r\n , AdministrationService\r\n , PayrollService\r\n , EmployeeService\r\n , CommissionService\r\n , RetroactiveService\r\n , EmailService\r\n , LiquidationService\r\n , DiscountService\r\n , MessageService\r\n , DashboardService\r\n , IncidentService\r\n , SearchPipe\r\n , DemandService\r\n , {\r\n provide: SLIMSCROLL_DEFAULTS,\r\n useValue: {\r\n alwaysVisible: false,\r\n gridOpacity: '0.2', barOpacity: '0.5',\r\n gridBackground: '#fff',\r\n gridWidth: '6',\r\n gridMargin: '2px 2px',\r\n barBackground: '#fff',\r\n barWidth: '20',\r\n barMargin: '2px 2px'\r\n }\r\n }\r\n , { provide: BsDatepickerConfig, useFactory: getDatepickerConfig }\r\n , { provide: LOCALE_ID, useValue: 'es' }],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\n\r\nexport class AppviewsModule {\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoPeriod } from 'app/shared/models/payroll/dto-period.model';\r\nimport { IDtoMovementRestrictionCalendar } from 'app/shared/models/payroll/dto-movement-restriction-calendar.model';\r\nimport { IDtoEmployeeUpdatePayroll } from 'app/shared/models/employee/dto-employee-update-payroll.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoCommissionPeriod } from 'app/shared/models/commission/dto-commission-period.model';\r\nimport { IDtoCommissionFilter } from 'app/shared/models/commission/dto-commission-filter.model';\r\nimport { IDtoCommissionPeriodDetail } from 'app/shared/models/commission/dto-commission-period-detail.model';\r\nimport { IDtoBonusPeriod } from 'app/shared/models/bonus/dto-bonus-period.model';\r\nimport { IDtoBonusPeriodDetail } from 'app/shared/models/bonus/dto-bonus-period-detail.model';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { SecurityService } from '../../shared/services/security.service';\r\n\r\n@Injectable()\r\nexport class CommissionService {\r\n private requestUrl = '';\r\n private roles: any;\r\n constructor(private service: DataService, private configurationService: ConfigurationService, private securityService: SecurityService) {\r\n if (this.configurationService.isReady) {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n });\r\n }\r\n let showRoles = this.securityService.getUserRolesStorage();\r\n if (showRoles == '' || showRoles == undefined) {\r\n\r\n } else {\r\n this.roles = showRoles.listRoles;\r\n }\r\n }\r\n public addCommissionPeriod(dto: IDtoCommissionPeriod): Observable {\r\n const url = `${this.requestUrl}api/CommissionPeriods/addCommissionPeriod`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogYears(): Observable {\r\n const url = `${this.requestUrl}api/CommissionPeriods/getCatalogsCommisionPeriodYears`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCommissionPeriodsByFilter(dto: IDtoCommissionFilter): Observable {\r\n const url = `${this.requestUrl}api/CommissionPeriods/getCommissionPeriodsByFilter`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCommissionPeriodDetails(commissionPeriodId: number, userId: number, routeType: string, profile: string): Observable {\r\n const url = `${this.requestUrl}api/CommissionPeriods/getCommissionPeriodDetailsByCommissionPeriodId?commissionPeriodId=${commissionPeriodId}&userId=${userId}&routeType=${routeType}&profile=${profile}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateComissionPeriodDetails(list: IDtoCommissionPeriodDetail[]): Observable {\r\n list[0].userId = this.roles[0].userId;\r\n const url = `${this.requestUrl}api/CommissionPeriods/updateComissionPeriodDetails`;\r\n return this.service.putWithId(url, list).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n async actualizarComisiones(listaCompleta: any[], tamanoBloque: number): Promise<{ exito: boolean, mensaje: string }[]> {\r\n const resultados: { exito: boolean, mensaje: string }[] = [];\r\n\r\n for (let i = 0; i < listaCompleta.length; i += tamanoBloque) {\r\n const bloque = listaCompleta.slice(i, i + tamanoBloque);\r\n\r\n try {\r\n await this.service.putWithId(`${this.requestUrl}api/CommissionPeriods/updateComissionPeriodDetails`, bloque).toPromise();\r\n resultados.push({ exito: true, mensaje: `Bloque ${i / tamanoBloque + 1} actualizado correctamente.` });\r\n } catch (error) {\r\n resultados.push({ exito: false, mensaje: `Error al actualizar bloque ${i / tamanoBloque + 1}: ${error.message}` });\r\n }\r\n }\r\n\r\n return resultados;\r\n }\r\n public getBonusPeriodDetailsByCommissionPeriodIdAndBossId(commissionPeriodId: number, bossId: number): Observable {\r\n const url = `${this.requestUrl}api/BonusPeriods/getBonusPeriodDetailsByCommissionPeriodIdAndBossId?commissionPeriodId=${commissionPeriodId}&bossId=${bossId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getBonusPeriodByCommissionPeriodId(commissionPeriodId: number): Observable {\r\n const url = `${this.requestUrl}api/BonusPeriods/getBonusPeriodByCommissionPeriodId?commissionPeriodId=${commissionPeriodId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addBonusPeriod(dto: IDtoBonusPeriod): Observable {\r\n const url = `${this.requestUrl}api/BonusPeriods/addBonusPeriod`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateBonusPeriodDetails(dto: IDtoBonusPeriod): Observable {\r\n const url = `${this.requestUrl}api/BonusPeriods/updateBonusPeriodDetails`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public deleteBonusPeriodDetailsEmployee(bonusPeriodId: number, employeeId: number, payrollId:number): Observable {\r\n const url = `${this.requestUrl}api/BonusPeriods/deleteBonusPeriodDetailsEmployee?bonusPeriodId=${bonusPeriodId}&employeeId=${employeeId}&payrollId=${payrollId}`;\r\n return this.service.delete(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addBonusPeriodDetail(dto: IDtoBonusPeriodDetail): Observable {\r\n const url = `${this.requestUrl}api/BonusPeriodDetails/addBonusPeriodDetail`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public sendCommissionPeriodsToCustomer(commissionPeriodId: number, approverUserId: string): Observable {\r\n const url = `${this.requestUrl}api/CommissionPeriods/sendCommissionPeriodsToCustomer?commissionPeriodId=${commissionPeriodId}&approverUserId=${approverUserId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public downloadFileCommissions(commissionPeriodId: number): Observable {\r\n\r\n const url = `${this.requestUrl}api/CommissionPeriods/getFileCommissionPeriodById?commissionPeriodId=${commissionPeriodId}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addFileCommissions(item: IDtoDocument, fileToUpload: File): Observable {\r\n const formData = new FormData();\r\n formData.append('document', JSON.stringify(item));\r\n formData.append('files', fileToUpload);\r\n\r\n const url = `${this.requestUrl}api/CommissionPeriods/uploadFileCommissionCustomer/`;\r\n return this.service.post(url, formData).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCommissionPeriodById(id: string, routeType: string): Observable {\r\n const url = `${this.requestUrl}api/CommissionPeriods/getCommissionPeriodById?id=${id}&routeType=${routeType}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCommissionPeriodDetailSummaryAmount(commissionPeriodId: number, userId: number, commissions: any[]): Observable {\r\n const url = `${this.requestUrl}api/CommissionPeriods/getCommissionPeriodDetailSummaryAmount?commissionPeriodId=${commissionPeriodId}&bossId=${userId}`;\r\n\r\n return this.service.post(url, commissions)\r\n .pipe(\r\n map((res: any) => res)\r\n );\r\n }\r\n public UpdateCommissionInPayroll(commissionPeriodId: number, userId: number): Observable {\r\n const url = `${this.requestUrl}api/CommissionPeriods/updateCommissionInPayroll?commissionPeriodId=${commissionPeriodId}&bossId=${userId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, SimpleChanges, Input, OnChanges, EventEmitter, Output } from '@angular/core';\r\nimport { IDtoCustomer } from 'app/shared/models/customer/dto-customer.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { CustomerService } from '../../quote/customer.service';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { IDtoProject } from 'app/shared/models/customer/dto-project.model';\r\nimport { OrganizationService } from '../../organization/organization.service';\r\nimport { IDtoCompany } from 'app/shared/models/organization/dto-company.model';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: '[customer]',\r\n styleUrls: ['./customer.style.scss'],\r\n templateUrl: './customer.template.html'\r\n})\r\nexport class CustomerComponent implements OnDestroy, OnInit {\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n private customer: IDtoCustomer;\r\n private staffType: string;\r\n private catalogCustomers: Observable;\r\n private catalogProjects: Observable;\r\n @Input() module: string;\r\n @Input() group: FormGroup;\r\n @Input() action: string;\r\n @Input() resetCustomerId: Subject = new Subject();\r\n @Output() selected = new EventEmitter();\r\n @Output() resetForm = new EventEmitter();\r\n constructor(private spinner: NgxSpinnerService\r\n , private customerService: CustomerService\r\n , private configurationService: ConfigurationService\r\n , private organizationService: OrganizationService\r\n , private route: ActivatedRoute) {\r\n this.customer = {} as IDtoCustomer;\r\n if (this.configurationService.isReady) {\r\n this.catalogCustomers = this.customerService.getCatalogCustomers();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.catalogCustomers = this.customerService.getCatalogCustomers();\r\n });\r\n }\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.resetCustomerId.subscribe(res => {\r\n if (res) {\r\n var customer = {} as IDtoCatalog;\r\n customer.id = res;\r\n this.getCustomer(customer, false);\r\n if (this.action == 'update') {\r\n this.group.controls['projectId'].disable();\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n private getCustomer(customer: IDtoCatalog, isChanged: boolean): void {\r\n \r\n if (customer === undefined) {\r\n this.selected.emit(undefined)\r\n this.customer = {} as IDtoCustomer;\r\n this.catalogProjects = Observable.of([] as IDtoProject[]);\r\n } else {\r\n this.spinner.show()\r\n this.customerService.getCustomerById(customer.id)\r\n .subscribe(\r\n (x) => {\r\n this.customer = x.data as IDtoCustomer;\r\n this.selected.emit(this.customer)\r\n if(isChanged) {\r\n this.resetForm.emit(true);\r\n }\r\n if(this.customer.staffTypeName == 'Oficina' && this.module != 'BudgetCreation') {\r\n this.group.get('projectId').setValidators([Validators.required]);\r\n this.getProjects(this.customer.id);\r\n } else {\r\n this.group.get('projectId').setValidators(null);\r\n }\r\n this.group.get('projectId').updateValueAndValidity();\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n }\r\n private getProjects(id: number): void {\r\n this.spinner.show()\r\n this.customerService.getProyectsByCustomer(id)\r\n .subscribe(\r\n (x) => {\r\n this.catalogProjects = Observable.of(x.data as IDtoProject[]);\r\n let projectId = this.group.controls['projectId'].value;\r\n if (this.action == 'update') {\r\n this.catalogProjects.subscribe(x => {\r\n let project = x.filter(x=> x.id == projectId)[0];\r\n //this.getPayCompany(project.payCompanyId);\r\n this.customer.payCompany = project.payCompany;\r\n this.customer.payCompanyId = project.payCompanyId;\r\n this.customer.riskPremiumValue = project.riskPremiumValue;\r\n this.selected.emit(this.customer)\r\n })\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private changeProject(project: IDtoProject): void {\r\n if (this.customer.payCompanyId != project.payCompanyId) {\r\n //this.getPayCompany(project.payCompanyId);\r\n this.customer.payCompany = project.payCompany;\r\n this.customer.payCompanyId = project.payCompanyId;\r\n this.selected.emit(this.customer)\r\n }\r\n this.customer.riskPremiumValue = project.riskPremiumValue;\r\n }\r\n private getPayCompany(id: number): void {\r\n this.spinner.show()\r\n this.organizationService.getCompanyById(id)\r\n .subscribe(\r\n (x) => {\r\n this.customer.payCompany = x.data as IDtoCompany;\r\n this.customer.payCompanyId = id;\r\n this.selected.emit(this.customer)\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private viewCustomerDetail(): boolean {\r\n let isVisible = true;\r\n if (this.customer.staffTypeName == 'Oficina' && this.module != 'BudgetCreation') {\r\n if (this.group.get('projectId').value != null) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n if (this.group.value.customerId != null) {\r\n return true;\r\n } else {\r\n return false; \r\n }\r\n }\r\n }\r\n}\r\n","module.exports = \"td.border {\\n background-color: #F7A54A;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvY29tbW9uL2N1c3RvbWVyL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xcY29tbW9uXFxjdXN0b21lclxcY3VzdG9tZXIuc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvY29tbW9uL2N1c3RvbWVyL2N1c3RvbWVyLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx5QkFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvY29tbW9uL2N1c3RvbWVyL2N1c3RvbWVyLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJ0ZC5ib3JkZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y3QTU0QTtcclxuICB9IiwidGQuYm9yZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y3QTU0QTtcbn0iXX0= */\"","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport 'rxjs/add/observable/of';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoReceipt } from 'app/shared/models/dashboard/dto-receipt.model';\r\nimport { IDtoBonusCommission } from 'app/shared/models/dashboard/dto-bonus-commission.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoJobCandidateBasic } from 'app/shared/models/employee/dto-jobcandidate-basic.model';\r\n\r\n\r\n@Injectable()\r\nexport class DashboardService {\r\n private payrollUrl = '';\r\n private requestUrl = '';\r\n private recruitmentUrl = '';\r\n private years: IDtoCatalog[] = [\r\n { id: 2010, name: '2010', additional: '' },\r\n { id: 2011, name: '2011', additional: '' },\r\n { id: 2012, name: '2012', additional: '' },\r\n { id: 2013, name: '2013', additional: '' },\r\n { id: 2014, name: '2014', additional: '' },\r\n { id: 2015, name: '2015', additional: '' },\r\n { id: 2016, name: '2016', additional: '' },\r\n { id: 2017, name: '2017', additional: '' },\r\n { id: 2018, name: '2018', additional: '' },\r\n { id: 2019, name: '2019', additional: '' },\r\n { id: 2020, name: '2020', additional: '' },\r\n { id: 2021, name: '2021', additional: '' },\r\n { id: 2022, name: '2022', additional: '' },\r\n { id: 2023, name: '2023', additional: '' },\r\n { id: 2024, name: '2024', additional: '' },\r\n { id: 2025, name: '2025', additional: '' },\r\n { id: 2026, name: '2026', additional: '' },\r\n { id: 2027, name: '2027', additional: '' },\r\n { id: 2028, name: '2028', additional: '' },\r\n { id: 2029, name: '2029', additional: '' },\r\n { id: 2030, name: '2030', additional: '' },\r\n ];\r\n private months: IDtoCatalog[] = [\r\n { id: 1, name: 'Enero', additional: '' },\r\n { id: 2, name: 'Febrero', additional: '' },\r\n { id: 3, name: 'Marzo', additional: '' },\r\n { id: 4, name: 'Abril', additional: '' },\r\n { id: 5, name: 'Mayo', additional: '' },\r\n { id: 6, name: 'Junio', additional: '' },\r\n { id: 7, name: 'Julio', additional: '' },\r\n { id: 8, name: 'Agosto', additional: '' },\r\n { id: 9, name: 'Septiembre', additional: '' },\r\n { id: 10, name: 'Octubre', additional: '' },\r\n { id: 11, name: 'Noviembre', additional: '' },\r\n { id: 12, name: 'Diciembre', additional: '' }\r\n ];\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.payrollUrl = this.configurationService.serverSettings.payrollUrl;\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.payrollUrl = this.configurationService.serverSettings.payrollUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n });\r\n }\r\n }\r\n public getCatalogYears(): Observable {\r\n return Observable.of(this.years);\r\n }\r\n public getCatalogMonths(): Observable {\r\n return Observable.of(this.months);\r\n }\r\n public getPayrollReceipts(ukey: string, year: number): Observable {\r\n const url = `${this.payrollUrl}api/Receipts/getPayrollReceipts?ukey=${ukey}&year=${year}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getBonusCommissions(employeeId: number, period: Date): Observable {\r\n const url = `${this.requestUrl}api/Employees/getCommissionsAndBonus?employeeId=${employeeId}&period=${period}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public downloadFileReceipt(uuid: string, type: string): Observable {\r\n const url = `${this.payrollUrl}api/Receipts/getPayrollReceiptPDF?uuid=${uuid}&type=${type}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getAvailableDays(laborSeniorityDate: Date, employeeId: number, employeeNum: string, requisitionId: number): Observable {\r\n const url = `${this.requestUrl}api/Holidays/getAvailableDays?laborSeniorityDate=${laborSeniorityDate}&employeeId=${employeeId}&employeeNum=${employeeNum}&requisitionId=${requisitionId}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCredential(jobCandidateId: number, companyId: number): Observable {\r\n const obj = {\r\n jobCandidateId:jobCandidateId,\r\n companyId:companyId,\r\n }\r\n const url = `https://rednovation.redpromex.com:11443/sirpm/rednovation_credencial.php?companyId=${companyId}&jobCandidateId=${jobCandidateId}`;\r\n //const url = 'http://redmty.dyndns.org:85/sirpm/rednovation_credencial.php?companyId=14&jobCandidateId=133982';\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getTemplateFonacot(dto: IDtoJobCandidateBasic): Observable {\r\n const url = `${this.recruitmentUrl}api/Templates/getTemplateFonacot`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getTemplateLabor(dto: IDtoJobCandidateBasic): Observable {\r\n const url = `${this.recruitmentUrl}api/Templates/getTemplateLabor`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getTemplateKindergarten(dto: IDtoJobCandidateBasic): Observable {\r\n const url = `${this.recruitmentUrl}api/Templates/getTemplateKindergarten`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n}\r\n","import { OnInit, Component, TemplateRef } from '@angular/core';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { DashboardService } from '../dashboard.service';\r\nimport { IDtoReceipt } from 'app/shared/models/dashboard/dto-receipt.model';\r\nimport { IDtoBonusCommission } from 'app/shared/models/dashboard/dto-bonus-commission.model';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { EmployeeService } from '../employee.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { saveAs } from 'file-saver';\r\nimport { IDtoJobCandidateBasic } from 'app/shared/models/employee/dto-jobcandidate-basic.model';\r\nimport { IEmployeeTaxData } from 'app/shared/models/recruitment/employee-tax-data.model';\r\nimport { RecruitmentService } from '../recruitment/recruitment.service';\r\nimport { IDocument } from 'app/shared/models/recruitment/document.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { ModalBasicDataComponet } from 'app/views/modales/employees/basic-data/modal-basic-data.component';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IAppearance } from 'app/shared/models/recruitment/appearance.model';\r\nimport { ModalAppearanceComponet } from 'app/views/modales/recruitment/appearance/modal-appearance.component';\r\nimport { OpeningService } from '../opening/opening.service';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { OrganizationService } from '../organization/organization.service';\r\nimport { IDtoCompany } from 'app/shared/models/organization/dto-company.model';\r\nimport { IDtoWorkingDay } from 'app/shared/models/position/dto-working-day.model';\r\nimport { StorageService } from 'app/shared/services/storage.service';\r\n@Component({\r\n selector: 'app-dashboard',\r\n styleUrls: ['dashboard.style.scss'],\r\n templateUrl: 'dashboard.template.html'\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n private config = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Validadores */\r\n private catalogYears: Observable;\r\n private catalogMonths: Observable;\r\n //private month: number;\r\n private year: number;\r\n private receipts: IDtoReceipt[];\r\n private bonusCommissions: IDtoBonusCommission[];\r\n private showRoles: any;\r\n private employeeId: number;\r\n private employee: IDtoJobCandidateBasic;\r\n private receipt: IDtoReceipt;\r\n private days = 0;\r\n employeeTaxData: IEmployeeTaxData;\r\n fileNameSAT = '';\r\n document: IDocument;\r\n requisition: IDtoRequisition;\r\n company: IDtoCompany;\r\n workingDay: IDtoWorkingDay;\r\n child: string;\r\n constructor(private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private dashboardService: DashboardService\r\n , private securityService: SecurityService\r\n , private employeeService: EmployeeService\r\n , private modalService: BsModalService\r\n , private recruitmentService: RecruitmentService\r\n , private openingService: OpeningService\r\n , private organizationService: OrganizationService\r\n , private storageService: StorageService) {\r\n if (this.configurationService.isReady) {\r\n this.init();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.init();\r\n });\r\n }\r\n }\r\n private init(): void {\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n if (this.showRoles !== '') {\r\n this.employeeId = this.showRoles.employeeId;\r\n this.getEmployee();\r\n this.getEmployeeTaxDataActive();\r\n this.getJobCandidateDocument();\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.configurationService.isReady) {\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n });\r\n }\r\n this.catalogYears = this.dashboardService.getCatalogYears();\r\n this.catalogMonths = this.dashboardService.getCatalogMonths();\r\n }\r\n private getEmployee(): void {\r\n this.employeeService.getEmployee(this.employeeId).subscribe((res) => {\r\n this.employee = res.data as IDtoJobCandidateBasic;\r\n this.getAvailableDays();\r\n this.getRequisition();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private getEmployeeTaxDataActive(): void {\r\n this.employeeService.getEmployeeTaxDataActive(this.employeeId).subscribe((res) => {\r\n this.employeeTaxData = res.data as IEmployeeTaxData;\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private getAvailableDays(): void {\r\n if (this.employee) {\r\n this.dashboardService.getAvailableDays(this.configGeneral.dateFormat(new Date(this.employee.laborSeniorityDate), 'yyyy-mm-dd'), this.employee.id, this.employee.employeeNum, this.employee.requisitionId).subscribe((res) => {\r\n this.days = res;\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n }\r\n private getRequisition(): void {\r\n if (this.employee) {\r\n this.openingService.getRequisitionById(this.employee.requisitionId).subscribe((res) => {\r\n this.requisition = res;\r\n this.storageService.store('requisition', res);\r\n this.getPayCompany(this.requisition.companyId);\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n }\r\n private getCredential(): void {\r\n this.dashboardService.getCredential(this.employee.id, this.requisition.companyId).subscribe((res) => {\r\n if (res.isCorrect) {\r\n\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private getTemplateFonacot(): void {\r\n this.spinner.show();\r\n let dto = {} as IDtoJobCandidateBasic;\r\n dto.companyName = this.company.name;\r\n dto.firstName = this.employee.firstName;\r\n dto.lastName = this.employee.lastName;\r\n dto.secondLastName = this.employee.secondLastName;\r\n dto.imss = this.employee.imss;\r\n dto.rfc = this.employee.rfc;\r\n dto.curp = this.employee.curp;\r\n dto.jobName = this.requisition.jobDesc;\r\n dto.hiringDate = this.employee.hiringDate;\r\n dto.companyId = this.requisition.companyId;\r\n dto.employerRegister = this.requisition.employerRegister;\r\n this.dashboardService.getTemplateFonacot(dto).subscribe((res) => {\r\n if (res.isCorrect) {\r\n let file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n this.spinner.hide();\r\n saveAs(blob, file.fileDownloadName);\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private getTemplateLabor(): void {\r\n this.spinner.show();\r\n let dto = {} as IDtoJobCandidateBasic;\r\n dto.companyName = this.company.name;\r\n dto.firstName = this.employee.firstName;\r\n dto.lastName = this.employee.lastName;\r\n dto.secondLastName = this.employee.secondLastName;\r\n dto.imss = this.employee.imss;\r\n dto.rfc = this.employee.rfc;\r\n dto.curp = this.employee.curp;\r\n dto.jobName = this.requisition.jobDesc;\r\n dto.hiringDate = this.employee.hiringDate;\r\n dto.companyId = this.requisition.companyId;\r\n dto.employerRegister = this.requisition.employerRegister;\r\n this.dashboardService.getTemplateLabor(dto).subscribe((res) => {\r\n if (res.isCorrect) {\r\n let file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n this.spinner.hide();\r\n saveAs(blob, file.fileDownloadName);\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n //'00009000040000000001'\r\n private getPayrollReceipts(): void {\r\n this.spinner.show();\r\n this.dashboardService.getPayrollReceipts(this.employee.uKey, this.year).subscribe((res) => {\r\n this.receipts = res;\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n //130477\r\n private getBonusCommissions(item: IDtoReceipt): void {\r\n this.bonusCommissions = [];\r\n this.spinner.show();\r\n this.dashboardService.getBonusCommissions(this.employeeId, this.configGeneral.dateFormat(new Date(item.period), 'yyyy-mm-dd')).subscribe((res) => {\r\n this.bonusCommissions = res;\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private openModalBonusCommissions(item: IDtoReceipt, template: TemplateRef) {\r\n this.receipt = item;\r\n this.bonusCommissions = [];\r\n this.spinner.show();\r\n this.dashboardService.getBonusCommissions(this.employeeId, this.configGeneral.dateFormat(new Date(item.period), 'yyyy-mm-dd')).subscribe((res) => {\r\n this.bonusCommissions = res;\r\n this.modalService.show(template);\r\n this.spinner.hide();\r\n });\r\n }\r\n private downloadFileReceipt(item: IDtoReceipt, type: string): void {\r\n this.spinner.show();\r\n this.dashboardService.downloadFileReceipt(item.uuid, type).subscribe((res) => {\r\n if (res.isCorrect) {\r\n const blob = this.configGeneral.b64toBlob(res.data, type == 'pdf' ? 'application/pdf' : 'application/xml', '');\r\n this.spinner.hide();\r\n saveAs(blob, item.uuid);\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private handleFileInput(files: FileList) {\r\n const file = files.item(0);\r\n let ext = file.name.split('.').pop();\r\n if (ext == 'pdf') {\r\n this.upload(file);\r\n } else {\r\n this.configGeneral.newToast('Validación', `Asegúrese de seleccionar el tipo de archivo correcto (.pdf)`, 'error');\r\n }\r\n }\r\n private upload(file: File): void {\r\n let item = {} as IResult;\r\n item.data = new Object('.' + file.name.split('.').pop());\r\n item.message = file.name;\r\n this.spinner.show();\r\n if (this.employeeId === undefined || this.employeeId === 0) {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Validación', 'Los datos del empleado no han sido cargados correctamente', 'warning');\r\n return;\r\n }\r\n if (file.size > 2097152) {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Validación', 'No es posible subir documentos con un peso mayor a 2MB', 'warning');\r\n return;\r\n }\r\n this.recruitmentService.uploadFileAndTaxDataEmployee(item, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.document = res.data as IDocument;\r\n this.spinner.hide();\r\n this.getEmployeeTaxDataActive();\r\n this.configGeneral.newToast('Éxito', 'Documento cargado correctamente', 'success');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.message, 'error');\r\n });\r\n }\r\n private downloadFile(): void {\r\n if (this.document.id == undefined) {\r\n this.configGeneral.newToast('Error', 'No existe un documento SAT para este empleado', 'error');\r\n return;\r\n }\r\n this.recruitmentService.downloadFile(this.document.id).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n });\r\n }\r\n private getJobCandidateDocument(): void {\r\n this.recruitmentService.getJobCandidateDocument(this.employeeId, 'RFC').subscribe((res) => {\r\n this.document = res;\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private openModalBasicData() {\r\n const initialState = {\r\n title: 'Información básica',\r\n uKey: this.employee.uKey,\r\n employee: this.employee\r\n };\r\n\r\n this.modalService.show(ModalBasicDataComponet\r\n , Object.assign({ initialState }\r\n , { class: 'gray modal-lg' }, this.config));\r\n }\r\n private getCatalogs(): void {\r\n this.spinner.show();\r\n forkJoin([\r\n this.recruitmentService.getCatalogSizes(),\r\n this.recruitmentService.getCatalogPhysicalComplexions(),\r\n this.recruitmentService.getCatalogStatures(),\r\n this.recruitmentService.getCatalogShoeSizes(),\r\n this.recruitmentService.getCatalogShirtSizes(),\r\n this.recruitmentService.getJobCandidateAppearanceByJobCandidateId(this.employee.id)\r\n ]).subscribe(([sizes, physicalComplexion, statures, shoeSizes, shirtSizes, appearance]) => {\r\n let genderSizes = sizes.filter(x => x.additional === this.employee.gender);\r\n const catalogs = new Array() as Array;\r\n catalogs.push(genderSizes);\r\n catalogs.push(physicalComplexion);\r\n catalogs.push(statures);\r\n catalogs.push(shoeSizes);\r\n catalogs.push(shirtSizes);\r\n this.openModalAppearance(catalogs, appearance);\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalAppearance(catalogs: Array, appearance: IAppearance) {\r\n const initialState = {\r\n listCatalogs: catalogs,\r\n title: 'Información de complexión física del candidato',\r\n action: 'update',\r\n appearance: appearance,\r\n module: 'dashboard',\r\n employeeId: this.employee.id\r\n };\r\n this.modalService.show(ModalAppearanceComponet\r\n , Object.assign({ initialState }\r\n , this.config));\r\n }\r\n private getPayCompany(id: number): void {\r\n this.spinner.show()\r\n this.organizationService.getCompanyById(id)\r\n .subscribe(\r\n (x) => {\r\n this.company = x.data as IDtoCompany;\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getWorkingDay(): void {\r\n if (this.child == undefined) {\r\n this.configGeneral.newToast('Validación', 'Ingrese un nombre de niño (a) para poder continuar', 'warning');\r\n return;\r\n }\r\n this.spinner.show();\r\n let dto = {} as IDtoJobCandidateBasic;\r\n dto.companyName = this.company.name;\r\n dto.firstName = this.employee.firstName;\r\n dto.lastName = this.employee.lastName;\r\n dto.secondLastName = this.employee.secondLastName;\r\n dto.imss = this.employee.imss;\r\n dto.curp = this.employee.curp;\r\n dto.jobName = this.requisition.jobDesc;\r\n dto.hiringDate = this.employee.hiringDate;\r\n dto.companyId = this.requisition.companyId;\r\n dto.employerRegister = this.requisition.employerRegister;\r\n dto.child = this.child;\r\n this.openingService.getWorkingDay(this.requisition.workingDayId).subscribe((res) => {\r\n if (res != null) {\r\n this.workingDay = res.data as IDtoWorkingDay;\r\n dto.workingDay = this.workingDay.description;\r\n this.getTemplateKindergarten(dto);\r\n } else {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', 'No existe una jornada laboral en este trabajador', 'error');\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private getTemplateKindergarten(dto: IDtoJobCandidateBasic): void {\r\n this.spinner.show();\r\n\r\n this.dashboardService.getTemplateKindergarten(dto).subscribe((res) => {\r\n if (res.isCorrect) {\r\n let file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n this.spinner.hide();\r\n saveAs(blob, file.fileDownloadName);\r\n this.child = undefined;\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n\\n.pointer {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvZGFzaGJvYXJkL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xcZGFzaGJvYXJkXFxkYXNoYm9hcmQuc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvZGFzaGJvYXJkL2Rhc2hib2FyZC5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSjs7QURDRTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtBQ0VKOztBRENFO0VBQ0UscUJBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsMEJBQUE7RUFDQSxlQUFBO0VBQ0Esc0JBQUE7RUFDQSw2QkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTtBQ0VKOztBRENFO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtBQ0VKOztBRENFO0VBQ0UsZUFBQTtBQ0VKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvZGFzaGJvYXJkL2Rhc2hib2FyZC5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcclxuICB9XHJcbiAgLnVwbG9hZC1idG51cC13cmFwcGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG4gIFxyXG4gIC5idG51cCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBwYWRkaW5nOiA2cHggMTJweDtcclxuICAgIGZvbnQtc2l6ZTogOXB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIH1cclxuICBcclxuICAudXBsb2FkLWJ0bnVwLXdyYXBwZXIgaW5wdXRbdHlwZT1maWxlXSB7XHJcbiAgICBmb250LXNpemU6IDEwMHB4O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAucG9pbnRlciB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5cbi51cGxvYWQtYnRudXAtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYnRudXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDlweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnVwbG9hZC1idG51cC13cmFwcGVyIGlucHV0W3R5cGU9ZmlsZV0ge1xuICBmb250LXNpemU6IDEwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLnBvaW50ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59Il19 */\"","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoConciliatoryAppointmentBoard } from 'app/shared/models/legal/demand/dto-conciliatory-appointment.model';\r\nimport { IDtoReceptionDemand } from 'app/shared/models/legal/demand/dto-reception-demand.model';\r\nimport { IDtoAnswerDemand } from 'app/shared/models/legal/demand/dto-answer-demand.model';\r\nimport { IDtoOfferAdmissionEvidence } from 'app/shared/models/legal/demand/offer-admission-evidence.model';\r\nimport { IDtoOfferAdmissionEvidenceDetail } from 'app/shared/models/legal/demand/offer-admission-evidence-detail.model';\r\nimport { IDtoReleaseEvidence } from 'app/shared/models/legal/demand/release-evidence.model';\r\nimport { IDtoAllegation } from 'app/shared/models/legal/demand/dto-allegation.model';\r\nimport { IDtoLaudo } from 'app/shared/models/legal/demand/dto-laudo.model';\r\nimport { IDtoConciliatoryAppointmentCourt } from 'app/shared/models/legal/demand/dto-conciliatory-appointment-court.model';\r\nimport { IDtoPreliminaryAudience } from 'app/shared/models/legal/demand/dto-preliminary-audience.model';\r\nimport { IDtoPreliminaryAudienceEvidenceDetail } from 'app/shared/models/legal/demand/dto-preliminary-audience-evidence-detail.model';\r\nimport { IDtoJudgmentAudience } from 'app/shared/models/legal/demand/dto-judgment-audience.model';\r\n@Injectable()\r\nexport class DemandService {\r\n private concludeDemandSource = new Subject();\r\n concludeDemandChallenge$ = this.concludeDemandSource.asObservable();\r\n private requestUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n });\r\n }\r\n }\r\n private demandStates: IDtoCatalog[] = [\r\n { id: 1, name: 'Proceso demanda', additional: 'Etapa 1' },\r\n { id: 2, name: 'Cita conciliatoria', additional: 'Etapa 1' },\r\n { id: 3, name: 'Recepción de la demanda', additional: 'Etapa 1' },\r\n { id: 4, name: 'Contestación de la demanda', additional: 'Etapa 1' },\r\n { id: 5, name: 'Ofrecimiento y admisión de pruebas', additional: 'Etapa 1' },\r\n { id: 6, name: 'Audiencia desahogo de pruebas', additional: 'Etapa 1' },\r\n { id: 7, name: 'Alegatos', additional: 'Etapa 1' },\r\n { id: 8, name: 'Laudos', additional: 'Etapa 1' },\r\n { id: 9, name: 'Costo demanda', additional: 'Etapa 1' },\r\n { id: 10, name: 'Cita conciliatoria', additional: 'Etapa 2' },\r\n { id: 11, name: 'Audiencia preliminar', additional: 'Etapa 2' },\r\n { id: 12, name: 'Audiencia de juicio', additional: 'Etapa 2' },\r\n { id: 13, name: 'Laudos', additional: 'Etapa 2' },\r\n { id: 14, name: 'Costo demanda', additional: 'Etapa 2' }\r\n ];\r\n public getCatalogDemandStates(): Observable {\r\n return Observable.of(this.demandStates);\r\n }\r\n public getCatalogLawyers(): Observable {\r\n const url = this.requestUrl + 'api/Lawyers/getCatalogLawyers';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogAuthorities(): Observable {\r\n const url = this.requestUrl + 'api/Authorities/getCatalogAuthorities';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogTypeConciliationMeetings(): Observable {\r\n const url = this.requestUrl + 'api/TypeConciliationMeetings/getCatalogTypeConciliationMeetings';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogProceduralStages(type: string): Observable {\r\n const url = `${this.requestUrl}api/ProceduralStages/getCatalogProceduralStages?type=${type}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addDemand(data: IDtoDemand): Observable {\r\n const url = `${this.requestUrl}api/Demands/addDemand`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getDemandByliquidationId(liquidationId: number): Observable {\r\n const url = `${this.requestUrl}api/Demands/getDemandByliquidationId?liquidationId=${liquidationId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addConciliatoryAppointmentBoard(data: IDtoConciliatoryAppointmentBoard): Observable {\r\n const url = `${this.requestUrl}api/Demands/addConciliatoryAppointmentBoard`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateConciliatoryAppointmentBoard(data: IDtoConciliatoryAppointmentBoard): Observable {\r\n const url = `${this.requestUrl}api/Demands/updateConciliatoryAppointmentBoard`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addReceptionDemand(data: IDtoReceptionDemand): Observable {\r\n const url = `${this.requestUrl}api/Demands/addReceptionDemand`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateReceptionDemand(data: IDtoReceptionDemand): Observable {\r\n const url = `${this.requestUrl}api/Demands/updateReceptionDemand`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addAnswerDemand(data: IDtoAnswerDemand): Observable {\r\n const url = `${this.requestUrl}api/Demands/addAnswerDemand`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateAnswerDemand(data: IDtoAnswerDemand): Observable {\r\n const url = `${this.requestUrl}api/Demands/updateAnswerDemand`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogTypeTests(): Observable {\r\n const url = this.requestUrl + 'api/Demands/getCatalogTypeTests';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addOfferAdmissionEvidence(data: IDtoOfferAdmissionEvidence): Observable {\r\n const url = `${this.requestUrl}api/Demands/addOfferAdmissionEvidence`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateOfferAdmissionEvidence(data: IDtoOfferAdmissionEvidence): Observable {\r\n const url = `${this.requestUrl}api/Demands/updateOfferAdmissionEvidence`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getOfferAdmissionEvidenceDetailByOfferAdmissionEvidenceId(offerAdmissionEvidenceId: number): Observable {\r\n const url = `${this.requestUrl}api/Demands/getOfferAdmissionEvidenceDetailByOfferAdmissionEvidenceId?offerAdmissionEvidenceId=${offerAdmissionEvidenceId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addOfferAdmissionEvidenceDetail(data: IDtoOfferAdmissionEvidenceDetail): Observable {\r\n const url = `${this.requestUrl}api/Demands/addOfferAdmissionEvidenceDetail`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public deleteDetailEvidence(id: Number): Observable {\r\n const url = `${this.requestUrl}api/Demands/deleteDetailEvidence?id=${id}`;\r\n\r\n return this.service.delete(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateOfferAdmissionEvidenceDetail(data: IDtoOfferAdmissionEvidenceDetail): Observable {\r\n const url = `${this.requestUrl}api/Demands/updateOfferAdmissionEvidenceDetail`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addReleaseEvidence(data: IDtoReleaseEvidence): Observable {\r\n const url = `${this.requestUrl}api/Demands/addReleaseEvidence`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateReleaseEvidence(data: IDtoReleaseEvidence): Observable {\r\n const url = `${this.requestUrl}api/Demands/updateReleaseEvidence`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addAllegation(data: IDtoAllegation): Observable {\r\n const url = `${this.requestUrl}api/Demands/addAllegation`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateAllegation(data: IDtoAllegation): Observable {\r\n const url = `${this.requestUrl}api/Demands/updateAllegation`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addLaudo(data: IDtoLaudo): Observable {\r\n const url = `${this.requestUrl}api/Demands/addLaudo`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateLaudo(data: IDtoLaudo): Observable {\r\n const url = `${this.requestUrl}api/Demands/updateLaudo`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addConciliatoryAppointmentCourt(data: IDtoConciliatoryAppointmentCourt): Observable {\r\n const url = `${this.requestUrl}api/ConciliatoryAppointmentCourts/addConciliatoryAppointmentCourt`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateConciliatoryAppointmentCourt(data: IDtoConciliatoryAppointmentCourt): Observable {\r\n const url = `${this.requestUrl}api/ConciliatoryAppointmentCourts/updateConciliatoryAppointmentCourt`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addPreliminaryAudience(data: IDtoPreliminaryAudience): Observable {\r\n const url = `${this.requestUrl}api/PreliminaryAudiences/addPreliminaryAudience`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updatePreliminaryAudience(data: IDtoPreliminaryAudience): Observable {\r\n const url = `${this.requestUrl}api/PreliminaryAudiences/updatePreliminaryAudience`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getPreliminaryAudienceEvidenceDetailByPreliminaryAudienceId(preliminaryAudienceId: number): Observable {\r\n const url = `${this.requestUrl}api/PreliminaryAudienceEvidenceDetails/getPreliminaryAudienceEvidenceDetailByPreliminaryAudienceId?preliminaryAudienceId=${preliminaryAudienceId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addPreliminaryAudienceEvidenceDetail(data: IDtoPreliminaryAudienceEvidenceDetail): Observable {\r\n const url = `${this.requestUrl}api/PreliminaryAudienceEvidenceDetails/addPreliminaryAudienceEvidenceDetail`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public deletePreliminaryAudienceEvidenceDetail(id: Number): Observable {\r\n const url = `${this.requestUrl}api/PreliminaryAudienceEvidenceDetails/deletePreliminaryAudienceEvidenceDetail?id=${id}`;\r\n\r\n return this.service.delete(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getPreliminaryAudienceEvidenceDetails(preliminaryAudienceId: number): Observable {\r\n const url = `${this.requestUrl}api/PreliminaryAudienceEvidenceDetails/getPreliminaryAudienceEvidenceDetails?preliminaryAudienceId=${preliminaryAudienceId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updatePreliminaryAudienceEvidenceDetail(data: IDtoPreliminaryAudienceEvidenceDetail): Observable {\r\n const url = `${this.requestUrl}api/PreliminaryAudienceEvidenceDetails/updatePreliminaryAudienceEvidenceDetail`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addJudgmentAudience(data: IDtoJudgmentAudience): Observable {\r\n const url = `${this.requestUrl}api/Demands/addJudgmentAudience`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateJudgmentAudience(data: IDtoJudgmentAudience): Observable {\r\n const url = `${this.requestUrl}api/Demands/updateJudgmentAudience`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public restartProceduralStages(liquidationId: number, stage : string): Observable {\r\n const url = `${this.requestUrl}api/Demands/restartProceduralStages?liquidationId=${liquidationId}&stage=${stage}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public concludeDemand(conclude: boolean) {\r\n this.concludeDemandSource.next(conclude);\r\n }\r\n public getEstimatedCostProceduralStagesByAuthorityAndLawyer(authorityId: number, lawyerId: number, liquidationId: number): Observable {\r\n const url = `${this.requestUrl}api/Lawyers/getEstimatedCostProceduralStagesByAuthorityAndLawyer?authorityId=${authorityId}&lawyerId=${lawyerId}&liquidationId=${liquidationId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getDemandBasicByliquidationId(liquidationId: number): Observable {\r\n const url = `${this.requestUrl}api/Demands/getDemandBasicByliquidationId?liquidationId=${liquidationId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCostProceduralStagesByAuthorityAndLawyer(authorityId: number, lawyerId: number, liquidationId: number): Observable {\r\n const url = `${this.requestUrl}api/Lawyers/getCostProceduralStagesByAuthorityAndLawyer?authorityId=${authorityId}&lawyerId=${lawyerId}&liquidationId=${liquidationId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { IResult } from 'app/shared/models/result.model';\r\n\r\n@Injectable()\r\nexport class DiscountService {\r\n private requestUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n });\r\n }\r\n }\r\n public getDetailsDescriptionDiscounts(employeeNum: string, employeeCompanyId: string): Observable {\r\n const url =`${this.requestUrl}api/Discounts/getDetailsDescriptionDiscounts?employeeNum=${employeeNum}&employeeCompanyId=${employeeCompanyId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoEmail } from 'app/shared/models/dto-email.model';\r\n\r\n@Injectable()\r\nexport class EmailService {\r\n private identityUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.identityUrl = this.configurationService.serverSettings.identityUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.identityUrl = this.configurationService.serverSettings.identityUrl;\r\n });\r\n }\r\n }\r\n public sendEmail(dto: IDtoEmail): Observable {\r\n const url =`${this.identityUrl}api/Emails/sendEmail/`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoPayrollEmployee } from 'app/shared/models/employee/dto-payroll-employee.model';\r\nimport { IDtoEmployeeFilter } from 'app/shared/models/employee/dto-employee-filter.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IStudy } from 'app/shared/models/recruitment/study.model';\r\nimport { IDtoEmployeeBasicData } from 'app/shared/models/employee/dto-employee-basic-data.model';\r\nimport { IDtoEmployeePaymentData } from 'app/shared/models/employee/dto-employee-payment-data.model';\r\nimport { IDtoPayrollEmployeeDetail } from 'app/shared/models/employee/dto-payroll-employee-detail.model';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoEmployeeShippingAddress } from 'app/shared/models/employee/dto-employee-shipping-address.model';\r\nimport { IDtoJobCandidateBasic } from '../../shared/models/employee/dto-jobcandidate-basic.model';\r\n\r\n@Injectable()\r\nexport class EmployeeService {\r\n private payrollUrl = '';\r\n private recruitmentUrl = '';\r\n private requestUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.payrollUrl = this.configurationService.serverSettings.payrollUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.payrollUrl = this.configurationService.serverSettings.payrollUrl;\r\n });\r\n }\r\n }\r\n public getListPayrollEmployees(values: IDtoEmployeeFilter): Observable {\r\n const url =`${this.recruitmentUrl}api/Employees/getListPayrollEmployees/`;\r\n return this.service.post(url, values).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getEmployeeDataPayrollById(employeeId: number): Observable {\r\n const url = this.recruitmentUrl + 'api/Employees/getEmployeeDataPayrollById?employeeId=' + employeeId;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogOfficeEmployeesActives(): Observable {\r\n const url = this.recruitmentUrl + 'api/Employees/getCatalogOfficeEmployeesActives';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogBanks(): Observable {\r\n const url = this.recruitmentUrl + 'api/Banks/getCatalogBanks';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogTypesSalary(): Observable {\r\n const url = this.recruitmentUrl + 'api/TypesSalary/getCatalogTypesSalary';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogMethodPayments(): Observable {\r\n const url = this.recruitmentUrl + 'api/MethodPayments/getCatalogMethodPayments';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogSalaryZones(): Observable {\r\n const url = this.recruitmentUrl + 'api/SalaryZones/getCatalogSalaryZones';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogFamilyMedicalUnits(): Observable {\r\n const url = this.recruitmentUrl + 'api/FamilyMedicalUnits/getCatalogFamilyMedicalUnits';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogAccountingSegments(): Observable {\r\n const url = this.recruitmentUrl + 'api/AccountingSegments/getCatalogAccountingSegments';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogBenefitCategories(): Observable {\r\n const url = this.recruitmentUrl + 'api/BenefitCategories/getCatalogBenefitCategories';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getBusinessPhone(uKey: string): Observable {\r\n const url =`${this.payrollUrl}api/Employees/getBusinessPhone?uKey=${uKey}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogSchoolLevels(): Observable {\r\n const url = this.recruitmentUrl + 'api/SchoolLevels/getCatalogSchoolLevels';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogEducationLevels(): Observable {\r\n const url = this.recruitmentUrl + 'api/LevelsEducation/getCatalogEducationLevels';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogDocumentsReceived(): Observable {\r\n const url = this.recruitmentUrl + 'api/DocumentsReceived/getCatalogDocumentsReceived';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public processEmployeeStudy(data: IStudy): Observable {\r\n let url = this.recruitmentUrl + 'api/jobCandidateLevelEducation/';\r\n if (data.id === undefined || data.id === null) {\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n } else {\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n }\r\n public processEmployeeBasicData(data: IDtoEmployeeBasicData): Observable {\r\n let url = this.recruitmentUrl + 'api/EmployeeBasicData/';\r\n if (data.id === undefined || data.id === null) {\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n } else {\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n }\r\n public processEmployeePaymentData(data: IDtoEmployeePaymentData): Observable {\r\n let url = this.recruitmentUrl + 'api/EmployeePaymentData/';\r\n if (data.id === undefined || data.id === null) {\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n } else {\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n }\r\n public updateEmployeePersonalData(data: IDtoPayrollEmployeeDetail): Observable {\r\n let url = this.recruitmentUrl + 'api/Employees/updateEmployeePersonalData';\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateEmployeeGeneralData(data: IDtoPayrollEmployeeDetail): Observable {\r\n let url = this.recruitmentUrl + 'api/Employees/updateEmployeeGeneralData';\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getEmployeeSalaryHistoriesbyEmployeeId(employeeId: number): Observable {\r\n const url =`${this.recruitmentUrl}api/EmployeeSalaryHistories/getEmployeeSalaryHistoriesbyEmployeeId?employeeId=${employeeId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public downloadFileEmployeeSalaryUpdate(id: number): Observable {\r\n\r\n const url = `${this.recruitmentUrl}api/EmployeeSalaryHistories/getFileEmployeeSalaryUpdateById?id=${id}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getListEmployeesByIds(ids: number[]): Observable {\r\n let url = this.recruitmentUrl + 'api/Employees/getListActiveEmployeesByIds';\r\n return this.service.post(url, ids).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getListActiveAndDismissalEmployeesByBossId(id:string): Observable {\r\n const url = `${this.recruitmentUrl}api/Employees/getListActiveAndDismissalEmployeesByBossId?id=${id}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateEmployeeShippingAddress(dto: IDtoEmployeeShippingAddress): Observable {\r\n let url = this.recruitmentUrl + 'api/EmployeeShippingAddress/UpdateEmployeeShippingAddress';\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getEmployeeShippingAddress(personalNumber: string): Observable {\r\n\r\n const url = `${this.recruitmentUrl}api/EmployeeShippingAddress/GetEmployeeShippingAddress?personalNumber=${personalNumber}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getListDismissalEmployeesByBossId (init: Date, end: Date): Observable {\r\n const url = `${this.recruitmentUrl}api/Employees/getListDismissalEmployeesByBossId?init=${init}&end=${end}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getEmployeeDataDismissalById(id: number): Observable {\r\n const url = `${this.requestUrl}api/Liquidations/getEmployeeDataDismissalById?requisitionId=${id}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getEmployeeDataDismissalByEmployeeIdAndRequisitionId(employeeId: number, requisitionId: number): Observable {\r\n const url = `${this.requestUrl}api/Liquidations/getEmployeeDataDismissalByEmployeeIdAndRequisitionId?employeeId=${employeeId}&requisitionId=${requisitionId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getEmployee(employeeId: number): Observable {\r\n const url = `${this.recruitmentUrl}api/Employees/getEmployee?employeeId=${employeeId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getEmployeeTaxDataActive(employeeId: number): Observable {\r\n const url =`${this.recruitmentUrl}api/Employees/getEmployeeTaxDataActive?employeeId=${employeeId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getEmployeeShippingAddressByUKey(uKey: string): Observable {\r\n const url = `${this.recruitmentUrl}api/EmployeeShippingAddress/GetEmployeeShippingAddressByUKey?uKey=${uKey}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateEmployeeEmailAndPersonalNumber(data: IDtoJobCandidateBasic): Observable {\r\n let url = this.recruitmentUrl + 'api/Employees/updateEmployeeEmailAndPersonalNumber';\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getEmployeeDataByBankAccount(bankAccount: string, employeeId: number): Observable {\r\n const url =`${this.recruitmentUrl}api/Employees/getEmployeeDataByBankAccount?bankAccount=${bankAccount}&employeeId=${employeeId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDocument } from 'app/shared/models/recruitment/document.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { RecruitmentService } from '../../recruitment/recruitment.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { IdentityService, IDtoEmployeeModuleProfile } from '../../security/identity.service';\r\nimport { BsModalService } from 'ngx-bootstrap';\r\nimport { ModalSalaryFormatComponet } from 'app/views/modales/employees/salary-format/modal-salary-format.component';\r\n\r\n@Component({\r\n selector: '[app-employee-documents]',\r\n templateUrl: './employee-documents.template.html',\r\n styleUrls: ['./employee-documents.style.scss']\r\n})\r\nexport class EmployeeDocumentsComponent implements OnInit {\r\n private catalogDocuments: Observable;\r\n private formDocuments: FormGroup;\r\n private activateSave: IDtoEmployeeModuleProfile;\r\n @Input() private employeeId: number;\r\n @Input() documents: Subject = new Subject();\r\n @Input() private profile: string;\r\n @Input() private email: string;\r\n public constructor(private recruitmentService: RecruitmentService\r\n , private identityService: IdentityService\r\n , private formBuilder: FormBuilder\r\n , private spinner: NgxSpinnerService\r\n , private configGeneral: AppConfig\r\n , private modalService: BsModalService) { }\r\n\r\n ngOnInit() {\r\n this.documents.subscribe(res => {\r\n if (res) {\r\n if (res.length > 0) {\r\n this.catalogDocuments.subscribe((docs) => {\r\n docs.forEach(element => {\r\n element.fileName = null;\r\n element.path = null;\r\n element.id = null;\r\n const d = res.filter(x => x.documentName === element.documentName)[0];\r\n if (d !== undefined) {\r\n element.fileName = d.fileName;\r\n element.path = d.path;\r\n element.id = d.id;\r\n }\r\n });\r\n })\r\n } else {\r\n this.catalogDocuments.subscribe((docs) => {\r\n docs.forEach(element => {\r\n element.fileName = null;\r\n element.path = null;\r\n element.id = null;\r\n });\r\n })\r\n }\r\n }\r\n })\r\n this.catalogDocuments = this.recruitmentService.getCatalogDocumens();\r\n this.activateSave = this.identityService.activateSaveForm(this.profile);\r\n this.initializeFormDocuments();\r\n }\r\n private initializeFormDocuments() {\r\n this.formDocuments = this.formBuilder.group({\r\n tableDocuments: [null]\r\n });\r\n }\r\n private readFormControlEmployeeModule(control: string): boolean {\r\n return this.identityService.readFormControlEmployeeModule(this.profile, control);\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private handleFileInput(item: IDocument, files: FileList) {\r\n const file = files.item(0);\r\n let ext = file.name.split('.').pop().toLowerCase();\r\n if (this.validateExt(ext, item.type)) {\r\n this.upload(item, file);\r\n } else {\r\n this.configGeneral.newToast('Validación', `Asegúrese de seleccionar el tipo de archivo correcto (${item.type})`, 'error');\r\n }\r\n }\r\n private validateExt(ext: string, listExts: string): boolean {\r\n const list = listExts.split(',').map(x => x.trim().toLowerCase());\r\n const e = list.filter(x => x === `.${ext}`)[0];\r\n if (e == undefined) {\r\n return false\r\n } else {\r\n return true;\r\n }\r\n }\r\n private upload(item: IDocument, file: File): void {\r\n this.spinner.show();\r\n if (this.employeeId === undefined || this.employeeId === 0) {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Validación', 'Capture y guarde información general primeramente', 'warning');\r\n return;\r\n }\r\n if (file.size > 2097152) {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Validación', 'No es posible subir documentos con un peso mayor a 2MB', 'warning');\r\n return;\r\n }\r\n item.fileName = file.name;\r\n item.jobCandidateId = this.employeeId;\r\n item.id = 0;\r\n this.recruitmentService.uploadFile(item, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const doc = res.data as IDocument;\r\n item.fileName = doc.fileName;\r\n item.path = doc.path;\r\n item.id = doc.id;\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Éxito', 'Documento cargado correctamente', 'success');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.message, 'error');\r\n });\r\n }\r\n private deleteFile(item: IDocument): void {\r\n if (item.id == undefined) {\r\n return;\r\n }\r\n this.recruitmentService.deleteFile(item.id).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n item.fileName = undefined;\r\n item.path = undefined;\r\n item.id = undefined;\r\n this.configGeneral.newToast('Éxito', 'Documento eliminado correctamente', 'success');\r\n }\r\n });\r\n }\r\n private downloadFile(item: IDocument): void {\r\n if (item.id == undefined) {\r\n return;\r\n }\r\n this.recruitmentService.downloadFile(item.id).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n });\r\n }\r\n private openModalSalaryFormat() {\r\n const initialState = {\r\n employeeId: this.employeeId\r\n , email: this.email\r\n };\r\n this.modalService.show(ModalSalaryFormatComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configGeneral.configModal));\r\n}\r\n}\r\n","module.exports = \".upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvZW1wbG95ZWVzL2VtcGxveWVlLWRvY3VtZW50cy9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXGVtcGxveWVlc1xcZW1wbG95ZWUtZG9jdW1lbnRzXFxlbXBsb3llZS1kb2N1bWVudHMuc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvZW1wbG95ZWVzL2VtcGxveWVlLWRvY3VtZW50cy9lbXBsb3llZS1kb2N1bWVudHMuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtBQ0NGOztBREVBO0VBQ0UscUJBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsMEJBQUE7RUFDQSxlQUFBO0VBQ0Esc0JBQUE7RUFDQSw2QkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvZW1wbG95ZWVzL2VtcGxveWVlLWRvY3VtZW50cy9lbXBsb3llZS1kb2N1bWVudHMuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cGxvYWQtYnRudXAtd3JhcHBlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4uYnRudXAge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBwYWRkaW5nOiA2cHggMTJweDtcclxuICBmb250LXNpemU6IDlweDtcclxuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxufVxyXG5cclxuLnVwbG9hZC1idG51cC13cmFwcGVyIGlucHV0W3R5cGU9ZmlsZV0ge1xyXG4gIGZvbnQtc2l6ZTogMTAwcHg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIG9wYWNpdHk6IDA7XHJcbn1cclxuIiwiLnVwbG9hZC1idG51cC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5idG51cCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIgaW5wdXRbdHlwZT1maWxlXSB7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBvcGFjaXR5OiAwO1xufSJdfQ== */\"","import { Component, OnDestroy, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { IStudy } from 'app/shared/models/recruitment/study.model';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { OpeningService } from '../opening/opening.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { CustomerService } from '../quote/customer.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService, IDtoEmployeeModuleProfile } from '../security/identity.service';\r\nimport { RecruitmentService } from '../recruitment/recruitment.service';\r\nimport { EmployeeService } from '../employee.service';\r\nimport { IDtoRequisitionPosition } from 'app/shared/models/opening/dto-requisition-position.model';\r\nimport { IDtoPayrollEmployeeDetail } from 'app/shared/models/employee/dto-payroll-employee-detail.model';\r\nimport { WorkingDayService } from '../quote/working-day.service';\r\nimport { PositionService } from '../quote/position.service';\r\nimport { PayrollService } from '../payroll.service';\r\nimport { OrganizationService } from '../organization/organization.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { IDtoEmployeeBasicData } from 'app/shared/models/employee/dto-employee-basic-data.model';\r\nimport { IDtoEmployeePaymentData } from 'app/shared/models/employee/dto-employee-payment-data.model';\r\nimport { IDtoEmployeeUpdatePayroll } from 'app/shared/models/employee/dto-employee-update-payroll.model';\r\nimport { IDocument } from 'app/shared/models/recruitment/document.model';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { WorkLeaveService } from '../request/workLeave.service';\r\n@Component({\r\n selector: 'app-employee-update',\r\n styleUrls: ['./employee-update.style.scss'],\r\n templateUrl: 'employee-update.template.html'\r\n})\r\nexport class EmployeeUpdateComponent implements OnDestroy, OnInit {\r\n private activateSave: IDtoEmployeeModuleProfile;\r\n private profile: string;\r\n @HostListener('window:beforeunload', ['$event'])\r\n doSomething($event) {\r\n if (this.formGeneralData.dirty\r\n || this.formStudy.dirty)\r\n $event.returnValue = '';\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.formGeneralData.dirty\r\n || this.formStudy.dirty) {\r\n const confirmation = window.confirm('No se han guardado los cambios ¿Desea continuar?');\r\n return Observable.of(confirmation);\r\n }\r\n return true;\r\n }\r\n\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formGeneralData: FormGroup;\r\n private formStudy: FormGroup;\r\n private formPersonalData: FormGroup;\r\n private formPaymentData: FormGroup;\r\n private formBasicData: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n @ViewChild('addSwal', { static: false }) private addSwal: SwalComponent;\r\n @ViewChild('addSwalBankAccount', { static: false }) private addSwalBankAccount: SwalComponent;\r\n /**Catalogos */\r\n private catalogGenders: ISelect[];\r\n private catalogMaritalStatus: ISelect[];\r\n private catalogStates: Observable;\r\n private catalogSchoolLevels: Observable;\r\n private catalogRequisitions: ISelect[];\r\n private catalogEducationLevels: Observable;\r\n private catalogDocumentsReceived: Observable;\r\n private catalogTrademarks: Observable;\r\n private catalogEmployerRegisters: Observable\r\n private catalogTypesSalary: IDtoCatalog[]\r\n private catalogMethodPayments: IDtoCatalog[]\r\n private catalogBenefitCategories: IDtoCatalog[];\r\n private catalogAccountingSegments: IDtoCatalog[];\r\n private catalogFamilyMedicalUnits: IDtoCatalog[];\r\n private catalogSalaryZones: IDtoCatalog[];\r\n private catalogPaymentForms: Observable;\r\n private catalogBanks: IDtoCatalog[]\r\n private catalogEmployees: IDtoCatalog[];\r\n private catalogContractTypes: Observable;\r\n private catalogPatrimonialRegimes: IDtoCatalog[];\r\n private catalogPayrollOfficers: Observable;\r\n private catalogSupervisors: Observable;\r\n private catalogPhoneCompanies: Observable;\r\n private catalogPhonePlans: Observable;\r\n private catalogWorkingDays: IDtoCatalog[];\r\n private catalogTowns: ISelect[];\r\n private generalData = {} as IDtoPayrollEmployeeDetail;\r\n private requisitionPosition = {} as IDtoRequisitionPosition;\r\n /**Variables */\r\n private section: string;\r\n public nav: any;\r\n private action = 'new';\r\n private navigationSubscription: any;\r\n public documents: Subject = new Subject();\r\n public constructor(public datepipe: DatePipe, private recruitmentService: RecruitmentService\r\n , private openingService: OpeningService\r\n , private workingDayService: WorkingDayService\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , public configGeneral: AppConfig\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private customerService: CustomerService\r\n , private identityService: IdentityService\r\n , private employeeService: EmployeeService\r\n , private positionService: PositionService\r\n , private payrollService: PayrollService\r\n , private organizationService: OrganizationService\r\n , private dismissalService: WorkLeaveService) {\r\n this.nav = document.querySelector('nav.navbar');\r\n this.profile = this.securityService.getProfileStorage('EmployeeUpdate');\r\n this.initializeFormGeneralData();\r\n this.initializeFormStudy();\r\n this.initializeFormPersonalData();\r\n this.initializeFormPaymentData();\r\n this.initializeFormBasicData();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n public ngOnDestroy(): any {\r\n this.nav.classList.remove('white-bg');\r\n if (this.navigationSubscription) {\r\n this.navigationSubscription.unsubscribe();\r\n }\r\n }\r\n private updateInput(input: string, inputUpdate: string): void {\r\n if (this.formGeneralData.get(input).value == '' && this.formGeneralData.get(inputUpdate).value == '') {\r\n this.formGeneralData.get(input).setValidators([Validators.required, Validators.maxLength(35)]);\r\n this.formGeneralData.get(inputUpdate).setValidators([Validators.required, Validators.maxLength(35)]);\r\n return;\r\n }\r\n if (this.formGeneralData.get(input).value == '') {\r\n this.formGeneralData.get(input).setValidators([Validators.maxLength(35)]);\r\n } else {\r\n this.formGeneralData.get(input).setValidators([Validators.required, Validators.maxLength(35)]);\r\n }\r\n if (this.formGeneralData.get(inputUpdate).value == '') {\r\n this.formGeneralData.get(inputUpdate).setValidators([Validators.maxLength(35)]);\r\n } else {\r\n this.formGeneralData.get(inputUpdate).setValidators([Validators.required, Validators.maxLength(35)]);\r\n }\r\n this.formGeneralData.get(inputUpdate).updateValueAndValidity();\r\n }\r\n public ngOnInit(): any {\r\n this.activateSave = this.identityService.activateSaveForm(this.profile);\r\n if (this.configurationService.isReady) {\r\n this.obtenerCatalogos();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.obtenerCatalogos();\r\n });\r\n }\r\n this.nav.className += ' white-bg';\r\n this.route.params.subscribe((params) => {\r\n if (params['id']) {\r\n setTimeout(() => {\r\n this.spinner.show();\r\n this.getEmployeeDataPayrollById(Number(params['id']));\r\n this.action = params['action'];\r\n this.workingDayService.getCatalogWorkingDays(params['companyPayId']).subscribe(x => {\r\n this.catalogWorkingDays = x;\r\n });\r\n this.catalogEmployerRegisters = this.organizationService.getCatalogEmployerRegistersByCustomerId(params['customerId']);\r\n }, 2);\r\n\r\n }\r\n });\r\n }\r\n private readFormControlEmployeeModule(control: string): boolean {\r\n return this.identityService.readFormControlEmployeeModule(this.profile, control);\r\n }\r\n private writeFormControlEmployeeModule(control: string): boolean {\r\n return !this.identityService.writeFormControlEmployeeModule(this.profile, control);\r\n }\r\n private getEmployeeDataPayrollById(employeeId: number): void {\r\n this.employeeService.getEmployeeDataPayrollById(employeeId).subscribe((res) => {\r\n this.generalData = res.data as IDtoPayrollEmployeeDetail;\r\n this.generalData.alimony = this.generalData.jobCandidateRecruiterComment.alimony;\r\n this.generalData.hasInfonavit = this.generalData.jobCandidateRecruiterComment.hasInfonavit;\r\n this.getCatalogTowns(this.generalData.stateId);\r\n this.generalData.birthDate = new Date(this.generalData.birthDate);\r\n this.generalData.hiringDate = this.datepipe.transform(this.generalData.hiringDate, 'dd-MM-yyyy');\r\n this.generalData.laborSeniorityDate = this.datepipe.transform(this.generalData.laborSeniorityDate, 'dd-MM-yyyy');\r\n this.generalData.employeeBasicData.laborSeniorityDate = this.generalData.laborSeniorityDate;\r\n this.generalData.employeeBasicData.hasInfonavit = this.generalData.jobCandidateRecruiterComment.hasInfonavit;\r\n this.generalData.employeeBasicData.alimony = this.generalData.jobCandidateRecruiterComment.alimony;\r\n this.generalData.maritalStatusId = this.generalData.maritalStatusId.toString();\r\n this.generalData.stateId = this.generalData.stateId.toString();\r\n this.generalData.townId = this.generalData.townId.toString();\r\n if (this.generalData.phoneCompanyId != null) {\r\n this.generalData.phoneCompanyId = this.generalData.phoneCompanyId.toString();\r\n }\r\n if (this.generalData.phonePlanId != null) {\r\n this.generalData.phonePlanId = this.generalData.phonePlanId.toString();\r\n }\r\n this.generalData.stateBirthId = this.generalData.stateBirthId.toString();\r\n if (this.generalData.jobCandidateLevelEducation !== null) {\r\n this.generalData.jobCandidateLevelEducation.periodFrom = new Date(this.generalData.jobCandidateLevelEducation.periodFrom);\r\n this.generalData.jobCandidateLevelEducation.periodTo = new Date(this.generalData.jobCandidateLevelEducation.periodTo);\r\n this.formStudy.patchValue(this.generalData.jobCandidateLevelEducation);\r\n }\r\n if (this.generalData.jobCandidateRecruiterComment.trackingStatusId != 13) {\r\n this.getLastDismissalDate(this.generalData.id);\r\n }\r\n if (this.generalData.employeeTaxData.length > 0) {\r\n let taxData = this.generalData.employeeTaxData[0];\r\n this.formPersonalData.get('taxStreet').setValue(taxData.street);\r\n this.formPersonalData.get('taxInteriorNumber').setValue(taxData.interiorNumber);\r\n this.formPersonalData.get('taxExternalNumber').setValue(taxData.externalNumber);\r\n this.formPersonalData.get('taxSuburb').setValue(taxData.suburb);\r\n this.formPersonalData.get('taxPostalCode').setValue(taxData.postalCode);\r\n this.formPersonalData.get('taxState').setValue(taxData.state);\r\n this.formPersonalData.get('taxTown').setValue(taxData.town);\r\n this.formPersonalData.get('taxRegime').setValue(taxData.regime);\r\n this.formPersonalData.get('taxIncorporationDate').setValue(taxData.incorporationDate);\r\n }\r\n this.getRequisitionByPositionId(this.generalData.jobCandidateRecruiterComment.positionId);\r\n this.documents.next(this.generalData.jobCandidateDocuments);\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.message, 'error');\r\n });\r\n }\r\n private getRequisitionByPositionId(requisitionId: number): void {\r\n this.spinner.show();\r\n this.openingService.getRequisitionByPositionId(requisitionId).subscribe((res) => {\r\n this.requisitionPosition = res;\r\n this.generalData.job = `${res.codeJob}-${res.job}`;\r\n this.generalData.positionNo = `${res.positionNo}-${res.position}`;\r\n this.generalData.companyName = res.companyName;\r\n this.generalData.projectName = res.projectName;\r\n this.generalData.planName = res.planName;\r\n this.generalData.customer = res.customer;\r\n this.generalData.zoneName = res.zoneName;\r\n this.generalData.townName = res.town;\r\n this.generalData.supervisorId = res.supervisorId != null ? res.supervisorId.toString() : null;\r\n this.generalData.payrollOfficerId = res.payrollOfficerId != null ? res.payrollOfficerId.toString() : null;\r\n this.generalData.workingDayId = res.workingDayId != null ? res.workingDayId : null;\r\n this.generalData.employeeBasicData.requisitionContractTypeId = res.requisitionContractTypeId.toString();\r\n this.generalData.employeeBasicData.employerRegisterId = res.location;\r\n this.generalData.employeePaymentData.dailySalary = res.dailySalary;\r\n this.generalData.employeePaymentData.classification = res.classification;\r\n this.formGeneralData.patchValue(this.generalData);\r\n this.formPersonalData.patchValue(this.generalData);\r\n this.formPaymentData.patchValue(this.generalData.employeePaymentData);\r\n this.formBasicData.patchValue(this.generalData.employeeBasicData);\r\n this.getIntegratedDailySalary(this.requisitionPosition.companyPayId, this.generalData.employeeNum, this.requisitionPosition.codePayroll);\r\n this.getBusinessPhone(this.generalData.uKey);\r\n if (this.generalData.typePosition == '1') {\r\n this.catalogEmployerRegisters = this.organizationService.getCatalogEmployerRegisterOfficesByProjectCustomerId(this.requisitionPosition.projectId);\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private getIntegratedDailySalary(codeNomCompanyNum: string, codeNomEmployeeNum: string, codeNomPayroll: string): void {\r\n this.payrollService.getIntegratedDailySalary(codeNomCompanyNum, codeNomEmployeeNum, codeNomPayroll).subscribe((res) => {\r\n this.generalData.integratedDailySalary = res;\r\n this.formPaymentData.get('integratedDailySalary').setValue(this.generalData.integratedDailySalary);\r\n this.spinner.hide();\r\n });\r\n }\r\n private getBusinessPhone(uKey: string): void {\r\n this.employeeService.getBusinessPhone(uKey).subscribe((res) => {\r\n this.formGeneralData.get('businessPhone').setValue(res);\r\n this.spinner.hide();\r\n });\r\n }\r\n private getLastDismissalDate(employeeId: number): void {\r\n this.dismissalService.getLastDismissalDate(employeeId).subscribe((res) => {\r\n let date = this.datepipe.transform(res, 'dd-MM-yyyy');\r\n this.formGeneralData.get('dismissalDate').setValue(date);\r\n this.spinner.hide();\r\n });\r\n }\r\n private changeMaritalStatus(dto: ISelect): void {\r\n if (dto == undefined) {\r\n this.formPersonalData.get('patrimonialRegimeId').setValidators(null);\r\n this.formPersonalData.get('patrimonialRegimeId').setValue(null);\r\n return;\r\n }\r\n if (dto.text != 'CASADO') {\r\n this.formPersonalData.get('patrimonialRegimeId').setValidators(null);\r\n this.formPersonalData.get('patrimonialRegimeId').setValue(null);\r\n } else {\r\n this.formPersonalData.get('patrimonialRegimeId').setValidators([Validators.required]);\r\n }\r\n this.formPersonalData.get('patrimonialRegimeId').updateValueAndValidity();\r\n }\r\n private obtenerCatalogos(): void {\r\n this.catalogStates = this.recruitmentService.getCatalogStates();\r\n this.recruitmentService.getCatalogMaritalStatus().subscribe(x=> {\r\n this.catalogMaritalStatus = x;\r\n });\r\n this.catalogSchoolLevels = this.employeeService.getCatalogSchoolLevels();\r\n this.catalogEducationLevels = this.employeeService.getCatalogEducationLevels();\r\n this.catalogDocumentsReceived = this.employeeService.getCatalogDocumentsReceived();\r\n this.catalogTrademarks = this.customerService.getCatalogCustomers();\r\n this.catalogPayrollOfficers = this.openingService.getCatalogPayrollOfficers();\r\n this.catalogSupervisors = this.openingService.getCatalogSupervisors();\r\n this.catalogPhoneCompanies = this.recruitmentService.getCatalogPhoneCompanies();\r\n this.catalogPhonePlans = this.recruitmentService.getCatalogPhonePlans();\r\n this.employeeService.getCatalogOfficeEmployeesActives().subscribe(x => {\r\n this.catalogEmployees = x;\r\n });\r\n this.recruitmentService.getCatalogPatrimonialRegimes().subscribe(x => {\r\n this.catalogPatrimonialRegimes = x;\r\n });\r\n this.employeeService.getCatalogMethodPayments().subscribe(x => {\r\n this.catalogMethodPayments = x;\r\n });\r\n this.employeeService.getCatalogBanks().subscribe(x => {\r\n this.catalogBanks = x;\r\n });\r\n this.employeeService.getCatalogTypesSalary().subscribe(x => {\r\n this.catalogTypesSalary = x;\r\n });\r\n this.employeeService.getCatalogSalaryZones().subscribe(x => {\r\n this.catalogSalaryZones = x;\r\n });\r\n this.employeeService.getCatalogFamilyMedicalUnits().subscribe(x => {\r\n this.catalogFamilyMedicalUnits = x;\r\n });\r\n this.employeeService.getCatalogAccountingSegments().subscribe(x => {\r\n this.catalogAccountingSegments = x;\r\n });\r\n this.employeeService.getCatalogBenefitCategories().subscribe(x => {\r\n this.catalogBenefitCategories = x;\r\n });\r\n this.catalogPaymentForms = this.positionService.getCatalogPaymentForms();\r\n this.catalogContractTypes = this.openingService.getCatalogContractTypes();\r\n }\r\n public getError(controlName: string): any {\r\n let error = '';\r\n let obj = {} as any;\r\n const control = this.formGeneralData.get(controlName);\r\n switch (controlName) {\r\n case 'stateBirth':\r\n case 'state':\r\n case 'maritalStatus':\r\n case 'schoolLevelId':\r\n if (control.errors != null) {\r\n error = JSON.stringify(control.errors);\r\n obj = JSON.parse(error);\r\n }\r\n break;\r\n default:\r\n if (control.touched && control.errors != null) {\r\n error = JSON.stringify(control.errors);\r\n obj = JSON.parse(error);\r\n }\r\n break;\r\n }\r\n\r\n return obj;\r\n }\r\n private initializeFormGeneralData() {\r\n this.formGeneralData = this.formBuilder.group({\r\n firstName: [null, [Validators.required, Validators.maxLength(50)]],\r\n lastName: [null, [Validators.required, Validators.maxLength(40)]],\r\n secondLastName: [null, [Validators.required, Validators.maxLength(40)]],\r\n birthDate: [null, Validators.required],\r\n stateBirthId: [null, Validators.required],\r\n gender: [null, Validators.required],\r\n curp: [null, [Validators.required, Validators.minLength(18), Validators.maxLength(18)]],\r\n rfc: [null, [Validators.required, Validators.minLength(13), Validators.maxLength(13)]],\r\n imss: [null, [Validators.required, Validators.minLength(11), Validators.maxLength(11)]],\r\n email: [null, [Validators.required, Validators.email, Validators.maxLength(100)]],\r\n employeeNum: [null],\r\n trackingStatus: [null],\r\n hiringDate: [null],\r\n dismissalDate: [null],\r\n laborSeniorityDate: [null],\r\n dailySalary: [null],\r\n job: [null],\r\n positionNo: [null],\r\n companyName: [null],\r\n projectName: [null],\r\n planName: [null],\r\n customer: [null],\r\n zoneName: [null],\r\n townName: [null],\r\n businessPhone: [null],\r\n bossId: [null, Validators.required],\r\n supervisorId: [null, Validators.required],\r\n payrollOfficerId: [null, Validators.required],\r\n workingDayId: [null, Validators.required]\r\n });\r\n }\r\n private initializeFormStudy() {\r\n this.formStudy = this.formBuilder.group({\r\n schoolLevelId: [null, Validators.required],\r\n educationLevelId: [null, Validators.required],\r\n institute: [null, [Validators.required, Validators.maxLength(100)]],\r\n documentReceivedId: [null, Validators.required],\r\n periodFrom: [null, Validators.required],\r\n periodTo: [null, Validators.required]\r\n });\r\n }\r\n private initializeFormPersonalData() {\r\n this.formPersonalData = this.formBuilder.group({\r\n maritalStatusId: [null, Validators.required],\r\n personalNumber: [null, Validators.maxLength(10)],\r\n street: [null, [Validators.required, Validators.maxLength(100)]],\r\n interiorNumber: [null, Validators.maxLength(10)],\r\n externalNumber: [null, [Validators.required, Validators.maxLength(10)]],\r\n postalCode: [null, [Validators.required, Validators.minLength(5), Validators.maxLength(5)]],\r\n suburb: [null, [Validators.required, Validators.maxLength(50)]],\r\n stateId: [null, Validators.required],\r\n townId: [null, Validators.required],\r\n patrimonialRegimeId: [null],\r\n country: [null],\r\n taxStreet: [null],\r\n taxInteriorNumber: [null],\r\n taxExternalNumber: [null],\r\n taxPostalCode: [null],\r\n taxSuburb: [null],\r\n taxState: [null],\r\n taxTown: [null],\r\n taxRegime: [null],\r\n taxIncorporationDate: [null],\r\n phoneCompanyId: [null, Validators.required],\r\n phonePlanId: [null, Validators.required]\r\n });\r\n }\r\n private initializeFormPaymentData() {\r\n this.formPaymentData = this.formBuilder.group({\r\n dailySalary: [null],\r\n integratedDailySalary: [null],\r\n bankId: [null, [Validators.required]],\r\n bankAccount: [null, [ Validators.maxLength(20)]],\r\n methodPaymentId: [null, [Validators.required]],\r\n classification: [null, [Validators.required]],\r\n typeSalaryId: [null, [Validators.required]],\r\n pantryAccount: [null, [ Validators.maxLength(16)]],\r\n pantryCard: [null, [Validators.maxLength(16)]],\r\n gasolineCard: [null, [ Validators.maxLength(16)]],\r\n gasolineIdentifier: [null, [ Validators.maxLength(6)]],\r\n interbankClabe: [null, [Validators.required, Validators.maxLength(18)]]\r\n });\r\n }\r\n private initializeFormBasicData() {\r\n this.formBasicData = this.formBuilder.group({\r\n subsidy: [null, Validators.required],\r\n requisitionContractTypeId: [null, Validators.required],\r\n laborSeniorityDate: [null],\r\n employerRegisterId: [null, [Validators.required]],\r\n salaryZoneId: [null, [Validators.required]],\r\n familyMedicalUnitId: [null, [Validators.required]],\r\n unionized: [null, [Validators.required]],\r\n accountingSegmentId: [null, [Validators.required]],\r\n individualAccount: [null, [Validators.required, Validators.maxLength(7)]],\r\n pieceWorker: [null, [Validators.required]],\r\n benefitCategoryId: [null, [Validators.required]],\r\n alimony: [null, [Validators.required]],\r\n hasInfonavit: [null, [Validators.required]]\r\n });\r\n }\r\n private submitFormStudy(section: string) {\r\n this.section = section;\r\n if (this.formStudy.valid) {\r\n let study = this.formStudy.value as IStudy;\r\n if (this.generalData.jobCandidateLevelEducation !== null) {\r\n study.id = this.generalData.jobCandidateLevelEducation.id === undefined ? null : this.generalData.jobCandidateLevelEducation.id;\r\n }\r\n study.jobCandidateId = this.generalData.id;\r\n this.addSwal.title = '¿Seguro que desea guardar los datos de estudios proporcionados?';\r\n this.addSwal.show().then((result) => {\r\n if (result.value) {\r\n this.processEmployeeStudy(study);\r\n }\r\n });\r\n } else {\r\n this.touchedControls(this.formStudy);\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n }\r\n }\r\n private processEmployeeStudy(data: IStudy): void {\r\n this.employeeService.processEmployeeStudy(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.updateEmployeePayroll();\r\n let res = x.data as IStudy;\r\n if (data.id > 0) {\r\n this.generalData.jobCandidateLevelEducation.id = res.id;\r\n } else {\r\n this.generalData.jobCandidateLevelEducation = res;\r\n }\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private submitFormBasicData(section: string) {\r\n this.section = section;\r\n if (this.formBasicData.valid) {\r\n let basicData = this.formBasicData.value as IDtoEmployeeBasicData;\r\n if (this.generalData.employeeBasicData !== null) {\r\n basicData.id = this.generalData.employeeBasicData.id === undefined ? null : this.generalData.employeeBasicData.id;\r\n }\r\n basicData.jobCandidateId = this.generalData.id;\r\n this.addSwal.title = '¿Seguro que desea guardar los datos básicos proporcionados?';\r\n this.addSwal.show().then((result) => {\r\n if (result.value) {\r\n this.processEmployeeBasicData(basicData);\r\n }\r\n });\r\n } else {\r\n this.touchedControls(this.formBasicData);\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n }\r\n }\r\n private processEmployeeBasicData(data: IDtoEmployeeBasicData): void {\r\n this.employeeService.processEmployeeBasicData(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.updateEmployeePayroll();\r\n let res = x.data as IDtoEmployeeBasicData\r\n if (data.id > 0) {\r\n this.generalData.employeeBasicData.id = res.id\r\n } else {\r\n this.generalData.employeeBasicData = res;\r\n }\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private submitFormPaymentData() {\r\n if (this.formPaymentData.valid) {\r\n let paymentData = this.formPaymentData.value as IDtoEmployeePaymentData;\r\n if (this.generalData.employeePaymentData !== null) {\r\n paymentData.id = this.generalData.employeePaymentData.id === undefined ? null : this.generalData.employeePaymentData.id;\r\n }\r\n paymentData.jobCandidateId = this.generalData.id;\r\n this.addSwal.title = '¿Seguro que desea guardar los datos de pago proporcionados?';\r\n this.addSwal.show().then((result) => {\r\n this.spinner.show();\r\n if (result.value) {\r\n this.employeeService.getEmployeeDataByBankAccount(paymentData.bankAccount, this.generalData.id).subscribe((x) => {\r\n let dataEmployee = x.data as IDtoPayrollEmployeeDetail\r\n if (dataEmployee == null){\r\n this.processEmployeePaymentData(paymentData);\r\n }\r\n else{\r\n this.addSwalBankAccount.title = `La cuenta ${paymentData.bankAccount} ya está asignada al trabajador ${dataEmployee.firstName} ${dataEmployee.lastName} ${dataEmployee.secondLastName}`;\r\n this.addSwalBankAccount.show();\r\n this.spinner.hide();\r\n return;\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n this.touchedControls(this.formPaymentData);\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n this.spinner.hide();\r\n }\r\n }\r\n private processEmployeePaymentData(data: IDtoEmployeePaymentData): void {\r\n this.employeeService.processEmployeePaymentData(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.updateEmployeePayroll();\r\n let res = x.data as IDtoEmployeePaymentData;\r\n if (data.id > 0) {\r\n this.generalData.employeePaymentData.id = res.id;\r\n } else {\r\n this.generalData.employeePaymentData = res;\r\n }\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private submitFormPersonalData() {\r\n if (this.formPersonalData.valid) {\r\n let personalData = this.formPersonalData.value as IDtoPayrollEmployeeDetail;\r\n personalData.id = this.generalData.id;\r\n this.addSwal.title = '¿Seguro que desea guardar los datos personales proporcionados?';\r\n this.addSwal.show().then((result) => {\r\n if (result.value) {\r\n this.updateEmployeePersonalData(personalData);\r\n }\r\n });\r\n } else {\r\n this.touchedControls(this.formPersonalData);\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n }\r\n }\r\n private updateEmployeePersonalData(data: IDtoPayrollEmployeeDetail): void {\r\n this.employeeService.updateEmployeePersonalData(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.updateEmployeePayroll();\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private submitFormGeneralData() {\r\n if (this.formGeneralData.valid) {\r\n let generalData = this.formGeneralData.value as IDtoPayrollEmployeeDetail;\r\n generalData.laborSeniorityDate = null;\r\n generalData.hiringDate = null;\r\n generalData.birthDate = new Date(this.configGeneral.dateFormat(generalData.birthDate, 'mm/dd/yyyy'));\r\n generalData.id = this.generalData.id;\r\n this.addSwal.title = '¿Seguro que desea guardar los datos generales proporcionados?';\r\n this.addSwal.show().then((result) => {\r\n if (result.value) {\r\n this.updateEmployeeGeneralData(generalData);\r\n this.updateSupervisor(this.generalData.jobCandidateRecruiterComment.positionId, +generalData.supervisorId);\r\n }\r\n });\r\n } else {\r\n this.touchedControls(this.formGeneralData);\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n }\r\n }\r\n private updateEmployeeGeneralData(data: IDtoPayrollEmployeeDetail): void {\r\n this.employeeService.updateEmployeeGeneralData(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.updateEmployeePayroll();\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private updateSupervisor(requisitionId: number, supervisorId: number): void {\r\n let dto = {} as IDtoRequisition;\r\n dto.id = requisitionId;\r\n dto.supervisorId = supervisorId;\r\n this.openingService.updateSupervisor(dto)\r\n .subscribe(\r\n (x) => {\r\n\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private addModuleLog(): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = \"JobCandidates\";\r\n dto.module = this.section;\r\n dto.action = this.action;\r\n dto.registryAffectedId = this.generalData.id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n private touchedControls(form: FormGroup): void {\r\n Object.keys(form.controls).forEach(field => {\r\n const control = form.get(field);\r\n control.markAsTouched({ onlySelf: true });\r\n });\r\n }\r\n private getCatalogTowns(id: string): void {\r\n this.recruitmentService.getCatalogTownsByStateIdCodeNom(id).subscribe((res) => {\r\n this.formPersonalData.get('townId').setValue(null);\r\n this.catalogTowns = res;\r\n if (this.action === 'update') {\r\n this.formPersonalData.get('townId').setValue(this.generalData.townId.toString());\r\n }\r\n });\r\n }\r\n private mapDataUpdateEmployeePayroll(): IDtoEmployeeUpdatePayroll {\r\n let data = {} as IDtoEmployeeUpdatePayroll;\r\n data.employeeNum = this.formGeneralData.value.employeeNum;\r\n data.companyPay = this.requisitionPosition.companyPayId;\r\n data.payroll = this.requisitionPosition.codePayroll;\r\n data.firstName = this.formGeneralData.value.firstName;\r\n data.lastName = this.formGeneralData.value.lastName;\r\n data.secondLastName = this.formGeneralData.value.secondLastName;\r\n data.gender = this.formGeneralData.value.gender;\r\n data.birthDate = this.formGeneralData.value.birthDate;\r\n data.imss = this.formGeneralData.value.imss;\r\n data.rfc = this.formGeneralData.value.rfc;\r\n data.curp = this.formGeneralData.value.curp;\r\n data.countryBirth = '101';\r\n data.stateBirth = ('000' + this.formGeneralData.value.stateBirthId).slice(-'000'.length);\r\n data.email = this.formGeneralData.value.email;\r\n let valueWorkingDay = this.catalogWorkingDays.filter(x => x.id == this.formGeneralData.value.workingDayId)[0];\r\n let splitWorkingDay = valueWorkingDay.additional.split('|');\r\n data.group = splitWorkingDay[1];\r\n data.workingDay = splitWorkingDay[0];\r\n let maritalStatus = this.catalogMaritalStatus.filter(x => x.id == this.formPersonalData.value.maritalStatusId)[0];\r\n data.maritalStatus = maritalStatus.additional;\r\n if(this.formPersonalData.value.patrimonialRegimeId != null) {\r\n data.patrimonialRegime = this.catalogPatrimonialRegimes.filter(x => x.id == this.formPersonalData.value.patrimonialRegimeId)[0].additional;\r\n }\r\n data.street = this.formPersonalData.value.street;\r\n data.interiorNumber = this.formPersonalData.value.interiorNumber;\r\n data.externalNumber = this.formPersonalData.value.externalNumber;\r\n data.suburb = this.formPersonalData.value.suburb;\r\n data.postalCode = this.formPersonalData.value.postalCode;\r\n data.countryResidence = '101';\r\n data.stateResidence = ('000' + this.formPersonalData.value.stateId).slice(-'000'.length);\r\n data.townResidence = this.catalogTowns.filter(x => x.id == this.formPersonalData.value.townId)[0].additional;\r\n data.personalNumber = this.formPersonalData.value.personalNumber;\r\n if(this.formPaymentData.value.methodPaymentId != null) {\r\n data.methodPayment = this.catalogMethodPayments.filter(x => x.id == this.formPaymentData.value.methodPaymentId)[0].additional;\r\n }\r\n if(this.formPaymentData.value.bankId != null) {\r\n data.bank = this.catalogBanks.filter(x => x.id == this.formPaymentData.value.bankId)[0].additional;\r\n }\r\n data.bankAccount = this.formPaymentData.value.bankAccount;\r\n if(this.formPaymentData.value.typeSalaryId != null) {\r\n data.typeSalary = this.catalogTypesSalary.filter(x => x.id == this.formPaymentData.value.typeSalaryId)[0].additional;\r\n }\r\n data.subsidy = this.formBasicData.value.subsidy;\r\n data.requisitionContractType = ('00' + this.formBasicData.value.requisitionContractTypeId).slice(-'00'.length);\r\n data.location = this.formBasicData.value.employerRegisterId;\r\n data.salaryZone = this.catalogSalaryZones.filter(x => x.id == this.formBasicData.value.salaryZoneId)[0].additional;\r\n data.familyMedicalUnit = this.catalogFamilyMedicalUnits.filter(x => x.id == this.formBasicData.value.familyMedicalUnitId)[0].additional;\r\n data.unionized = this.formBasicData.value.unionized;\r\n data.accountingSegment = this.catalogAccountingSegments.filter(x => x.id == this.formBasicData.value.accountingSegmentId)[0].additional;\r\n data.individualAccount = this.formBasicData.value.individualAccount;\r\n data.pieceWorker = this.formBasicData.value.pieceWorker;\r\n data.benefitCategory = this.catalogBenefitCategories.filter(x => x.id == this.formBasicData.value.benefitCategoryId)[0].additional;\r\n data.pantryAccount = this.formPaymentData.value.pantryAccount;\r\n data.pantryCard = this.formPaymentData.value.pantryCard;\r\n data.gasolineCard = this.formPaymentData.value.gasolineCard;;\r\n data.gasolineIdentifier = this.formPaymentData.value.gasolineIdentifier;\r\n\r\n const result = this.catalogEmployees.filter(x => x.id === this.formGeneralData.value.bossId);\r\n if (result.length == 0)\r\n {\r\n data.nameCoordinator = '0';\r\n }\r\n else{\r\n data.nameCoordinator = result[0].name;\r\n };\r\n\r\n return data;\r\n }\r\n private updateEmployeePayroll(): void {\r\n let dto = this.mapDataUpdateEmployeePayroll();\r\n this.payrollService.updateEmployeePayroll(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private updateTaxData(): void {\r\n let dto = {} as IDtoEmployeeUpdatePayroll;\r\n\r\n dto.street = this.formPersonalData.value.taxStreet;\r\n dto.interiorNumber = this.formPersonalData.value.taxInteriorNumber;\r\n dto.externalNumber = this.formPersonalData.value.taxExternalNumber;\r\n dto.postalCode = this.formPersonalData.value.taxPostalCode;\r\n dto.suburb = this.formPersonalData.value.suburb;\r\n dto.stateResidence = this.formPersonalData.value.taxState;\r\n dto.townResidence = this.formPersonalData.value.taxTown;\r\n dto.uKey = this.generalData.uKey;\r\n dto.employeeId = this.generalData.id;\r\n this.recruitmentService.updateTaxDataEmployee(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n}\r\n","module.exports = \"/* stylelint-disable order/properties-alphabetical-order */\\n/* stylelint-enable */\\n.disableDiv {\\n pointer-events: none;\\n}\\n.uppercase {\\n text-transform: uppercase;\\n}\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n/* colors */\\n/* tab setting */\\n/* breakpoints */\\n/* selectors relative to radio inputs */\\nhtml {\\n width: 100%;\\n height: 100%;\\n}\\nbody {\\n background: #efefef;\\n color: #333;\\n font-family: \\\"Raleway\\\";\\n height: 100%;\\n}\\nbody h1 {\\n text-align: center;\\n color: #1ab394;\\n font-weight: 300;\\n padding: 40px 0 20px 0;\\n margin: 0;\\n}\\n.tabs {\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n position: relative;\\n padding-bottom: 40px;\\n}\\n.tabs input[name=tab-control] {\\n display: none;\\n}\\n.tabs .content section h2,\\n.tabs ul li label {\\n font-weight: bold;\\n font-size: 15px;\\n color: #1ab394;\\n}\\n.tabs ul {\\n list-style-type: none;\\n padding-left: 0;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n margin-bottom: 10px;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n -webkit-box-align: end;\\n align-items: flex-end;\\n flex-wrap: wrap;\\n}\\n.tabs ul li {\\n box-sizing: border-box;\\n -webkit-box-flex: 1;\\n flex: 1;\\n width: 16.6666666667%;\\n padding: 0 10px;\\n text-align: center;\\n}\\n.tabs ul li label {\\n -webkit-transition: all 0.3s ease-in-out;\\n transition: all 0.3s ease-in-out;\\n color: #676767;\\n padding: 5px auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n cursor: pointer;\\n -webkit-transition: all 0.2s ease-in-out;\\n transition: all 0.2s ease-in-out;\\n white-space: nowrap;\\n -webkit-touch-callout: none;\\n}\\n.tabs ul li label br {\\n display: none;\\n}\\n.tabs ul li label svg {\\n fill: #676767;\\n height: 1.2em;\\n vertical-align: bottom;\\n margin-right: 0.2em;\\n -webkit-transition: all 0.2s ease-in-out;\\n transition: all 0.2s ease-in-out;\\n}\\n.tabs ul li label:hover, .tabs ul li label:focus, .tabs ul li label:active {\\n outline: 0;\\n color: #8d8d8d;\\n}\\n.tabs ul li label:hover svg, .tabs ul li label:focus svg, .tabs ul li label:active svg {\\n fill: #8d8d8d;\\n}\\n.tabs .slider {\\n position: relative;\\n width: 16.6666666667%;\\n -webkit-transition: all 0.33s cubic-bezier(0.38, 0.8, 0.32, 1.07);\\n transition: all 0.33s cubic-bezier(0.38, 0.8, 0.32, 1.07);\\n}\\n.tabs .slider .indicator {\\n position: relative;\\n width: 50px;\\n max-width: 100%;\\n margin: 0 auto;\\n height: 4px;\\n background: #1ab394;\\n border-radius: 1px;\\n}\\n.tabs .content {\\n margin-top: 30px;\\n}\\n.tabs .content section {\\n display: none;\\n -webkit-animation-name: content;\\n animation-name: content;\\n -webkit-animation-direction: normal;\\n animation-direction: normal;\\n -webkit-animation-duration: 0.3s;\\n animation-duration: 0.3s;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n line-height: 1.4;\\n}\\n.tabs .content section h2 {\\n color: #1ab394;\\n display: none;\\n}\\n.tabs .content section h2::after {\\n content: \\\"\\\";\\n position: relative;\\n display: block;\\n width: 30px;\\n height: 3px;\\n background: #1ab394;\\n margin-top: 5px;\\n left: 1px;\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ .slider {\\n -webkit-transform: translateX(0%);\\n transform: translateX(0%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ .content > section:nth-child(1) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ .slider {\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ .content > section:nth-child(2) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ .slider {\\n -webkit-transform: translateX(200%);\\n transform: translateX(200%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ .content > section:nth-child(3) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ .slider {\\n -webkit-transform: translateX(300%);\\n transform: translateX(300%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ .content > section:nth-child(4) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(5):checked ~ ul > li:nth-child(5) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(5):checked ~ ul > li:nth-child(5) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(5):checked ~ ul > li:nth-child(5) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(5):checked ~ .slider {\\n -webkit-transform: translateX(400%);\\n transform: translateX(400%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(5):checked ~ .content > section:nth-child(5) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(6):checked ~ ul > li:nth-child(6) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(6):checked ~ ul > li:nth-child(6) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(6):checked ~ ul > li:nth-child(6) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(6):checked ~ .slider {\\n -webkit-transform: translateX(500%);\\n transform: translateX(500%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(6):checked ~ .content > section:nth-child(6) {\\n display: block;\\n}\\n@-webkit-keyframes content {\\n from {\\n opacity: 0;\\n -webkit-transform: translateY(5%);\\n transform: translateY(5%);\\n }\\n to {\\n opacity: 1;\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n }\\n}\\n@keyframes content {\\n from {\\n opacity: 0;\\n -webkit-transform: translateY(5%);\\n transform: translateY(5%);\\n }\\n to {\\n opacity: 1;\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n }\\n}\\n@media (max-width: 1500px) {\\n .tabs ul li label {\\n white-space: initial;\\n }\\n .tabs ul li label br {\\n display: initial;\\n }\\n .tabs ul li label svg {\\n height: 1.5em;\\n }\\n}\\n@media (max-width: 900px) {\\n .tabs ul li label {\\n padding: 5px;\\n border-radius: 5px;\\n }\\n .tabs ul li label span {\\n display: none;\\n }\\n .tabs .slider {\\n display: none;\\n }\\n .tabs .content {\\n margin-top: 20px;\\n }\\n .tabs .content section h2 {\\n display: block;\\n }\\n}\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvZW1wbG95ZWVzL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xcZW1wbG95ZWVzXFxlbXBsb3llZS11cGRhdGUuc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvZW1wbG95ZWVzL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3RkaW4iLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL2VtcGxveWVlcy9lbXBsb3llZS11cGRhdGUuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsMERBQUE7QUFPQSxxQkFBQTtBQ3hCQTtFQUNFLG9CQUFBO0FDQUY7QURFQTtFQUNFLHlCQUFBO0FDQ0Y7QURFQTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtBQ0NGO0FERUE7RUFDRSxxQkFBQTtFQUNFLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSwwQkFBQTtFQUNBLGVBQUE7RUFDQSxzQkFBQTtFQUNBLDZCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0FDQ0o7QURFQTtFQUNFLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsTUFBQTtFQUNBLFVBQUE7QUNDRjtBREVBLFdBQUE7QUFVQSxnQkFBQTtBQUtBLGdCQUFBO0FBT0EsdUNBQUE7QUEyQkE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtBQzVDRjtBRCtDQTtFQUNFLG1CQUFBO0VBQ0EsV0FyREs7RUFzREwsc0JBQUE7RUFDQSxZQUFBO0FDNUNGO0FEOENFO0VBQ0Us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SUFTSSwrQkFBQTtFQ0dSO0FBQ0Y7QUR6S007RUFDRSxtQ0FBQTtVQUFBLDJCQUFBO0FDMktSO0FEeEtNO0VBQ0UsY0FBQTtBQzBLUjtBRG5CTTtFQUNFLGVBQUE7RUFDQSxjQW5NRDtBQ3dOUDtBRG5CUTtFQUNFLGFBdE1IO0FDMk5QO0FEbEJRO0VBUkY7SUFTSSwrQkFBQTtFQ3FCUjtBQUNGO0FEM0xNO0VBQ0UsbUNBQUE7VUFBQSwyQkFBQTtBQzZMUjtBRDFMTTtFQUNFLGNBQUE7QUM0TFI7QUR0QkU7RUFDRTtJQUNFLFVBQUE7SUFDQSxpQ0FBQTtZQUFBLHlCQUFBO0VDd0JKO0VEdEJFO0lBQ0UsVUFBQTtJQUNBLGlDQUFBO1lBQUEseUJBQUE7RUN3Qko7QUFDRjtBRGhDRTtFQUNFO0lBQ0UsVUFBQTtJQUNBLGlDQUFBO1lBQUEseUJBQUE7RUN3Qko7RUR0QkU7SUFDRSxVQUFBO0lBQ0EsaUNBQUE7WUFBQSx5QkFBQTtFQ3dCSjtBQUNGO0FEckJFO0VBQ0U7SUFDRSxvQkFBQTtFQ3VCSjtFRHJCSTtJQUNFLGdCQUFBO0VDdUJOO0VEcEJJO0lBQ0UsYUFBQTtFQ3NCTjtBQUNGO0FEbEJFO0VBQ0U7SUFDRSxZQUFBO0lBQ0Esa0JBQUE7RUNvQko7RURsQkk7SUFDRSxhQUFBO0VDb0JOO0VEaEJFO0lBQ0UsYUFBQTtFQ2tCSjtFRGZFO0lBQ0UsZ0JBQUE7RUNpQko7RURoQkk7SUFDRSxjQUFBO0VDa0JOO0FBQ0Y7QURiQTtFQUNFLGlCQUFBO0FDZ0JGIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvZW1wbG95ZWVzL2VtcGxveWVlLXVwZGF0ZS5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gT3V0cHV0cyB0aGUgYG92ZXJmbG93LXdyYXBgIHByb3BlcnR5IGFuZCBpdHMgbGVnYWN5IG5hbWUgYHdvcmQtd3JhcGAgdG9cbi8vLyBzdXBwb3J0IGJyb3dzZXJzIHRoYXQgZG8gbm90IHlldCB1c2UgYG92ZXJmbG93LXdyYXBgLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtzdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgQWNjZXB0ZWQgQ1NTIHZhbHVlcyBhcmUgYG5vcm1hbGAsIGBicmVhay13b3JkYCwgYGluaGVyaXRgLCBgaW5pdGlhbGAsXG4vLy8gICBvciBgdW5zZXRgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSBvdmVyZmxvdy13cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvcHJvcGVydGllcy1hbHBoYWJldGljYWwtb3JkZXIgKi9cblxuQG1peGluIG92ZXJmbG93LXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgd29yZC13cmFwOiAkd3JhcDtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9jb3JlL2JvdXJib25cIjtcclxuQGltcG9ydCBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvY29yZS9uZWF0XCI7XHJcblxyXG4uZGlzYWJsZURpdntcclxuICBwb2ludGVyLWV2ZW50czpub25lO1xyXG59XHJcbi51cHBlcmNhc2V7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuLnVwbG9hZC1idG51cC13cmFwcGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi5idG51cCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgcGFkZGluZzogNnB4IDEycHg7XHJcbiAgICBmb250LXNpemU6IDlweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxufVxyXG5cclxuLnVwbG9hZC1idG51cC13cmFwcGVyIGlucHV0W3R5cGU9ZmlsZV0ge1xyXG4gIGZvbnQtc2l6ZTogMTAwcHg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIG9wYWNpdHk6IDA7XHJcbn1cclxuXHJcbi8qIGNvbG9ycyAqL1xyXG4kYmx1ZTogIzFhYjM5NDtcclxuJHJlZDogI0ZGNEE1MztcclxuJGRhcms6ICMzMzM7XHJcblxyXG4kYWNjZW50OiAkYmx1ZTtcclxuJGFjY2VudC1pbmFjdGl2ZTogZGVzYXR1cmF0ZSgkYWNjZW50LCA4NSUpO1xyXG4kc2Vjb25kYXJ5OiAkYWNjZW50LWluYWN0aXZlO1xyXG5cclxuXHJcbi8qIHRhYiBzZXR0aW5nICovXHJcbiR0YWItY291bnQ6IDY7XHJcbiRpbmRpY2F0b3Itd2lkdGg6IDUwcHg7XHJcbiRpbmRpY2F0b3ItaGVpZ2h0OiA0cHg7XHJcblxyXG4vKiBicmVha3BvaW50cyAqL1xyXG4kYnJlYWtwb2ludHM6IChcclxuICBtZWRpdW06ICN7JHRhYi1jb3VudCoyNTBweH0sXHJcbiAgc21hbGw6ICN7JHRhYi1jb3VudCoxNTBweH1cclxuKTtcclxuXHJcblxyXG4vKiBzZWxlY3RvcnMgcmVsYXRpdmUgdG8gcmFkaW8gaW5wdXRzICovXHJcbiRsYWJlbC1zZWxlY3RvcjogXCJ+IHVsID4gbGlcIjtcclxuJHNsaWRlci1zZWxlY3RvcjogXCJ+IC5zbGlkZXJcIjtcclxuJGNvbnRlbnQtc2VsZWN0b3I6IFwifiAuY29udGVudCA+IHNlY3Rpb25cIjtcclxuXHJcbkBtaXhpbiB0YWJzKFxyXG4gICRsYWJlbC1zZWxlY3RvcjogJGxhYmVsLXNlbGVjdG9yLFxyXG4gICRzbGlkZXItc2VsZWN0b3I6ICRzbGlkZXItc2VsZWN0b3IsXHJcbiAgJGNvbnRlbnQtc2VsZWN0b3I6ICRjb250ZW50LXNlbGVjdG9yKSB7XHJcbiAgICBcclxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR0YWItY291bnQge1xyXG4gICAgJjpudGgtb2YtdHlwZSgjeyRpfSk6Y2hlY2tlZCB7XHJcbiAgICAgICN7JGxhYmVsLXNlbGVjdG9yfTpudGgtY2hpbGQoI3skaX0pIHtcclxuICAgICAgICBAY29udGVudDtcclxuICAgICAgfVxyXG5cclxuICAgICAgI3skc2xpZGVyLXNlbGVjdG9yfSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCN7MTAwJSAqICgkaSAtIDEpfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICN7JGNvbnRlbnQtc2VsZWN0b3J9Om50aC1jaGlsZCgjeyRpfSkge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5odG1sIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gIGJhY2tncm91bmQ6ICNlZmVmZWY7XHJcbiAgY29sb3I6ICRkYXJrO1xyXG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIjtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgXHJcbiAgaDEge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6ICRhY2NlbnQ7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgcGFkZGluZzogNDBweCAwIDIwcHggMDtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbn1cclxuXHJcbi50YWJzIHtcclxuICBsZWZ0OiA1MCU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAvLyBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAvLyBwYWRkaW5nOiA0MHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xyXG4gIC8vIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuICAvLyBtaW4td2lkdGg6ICN7JHRhYi1jb3VudCAqIDYwcHh9O1xyXG4gIGlucHV0W25hbWU9XCJ0YWItY29udHJvbFwiXSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICBcclxuICAuY29udGVudCBzZWN0aW9uIGgyLFxyXG4gIHVsIGxpIGxhYmVsIHtcclxuICAgIC8vZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBjb2xvcjogJGFjY2VudDtcclxuICB9XHJcbiAgXHJcbiAgdWwge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgXHJcbiAgICBsaSB7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIGZsZXg6IDE7XHJcbiAgICAgIHdpZHRoOiAjezEwMCUvJHRhYi1jb3VudH07XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBcclxuICAgICAgbGFiZWwge1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xyXG4gICAgICAgIHBhZGRpbmc6IDVweCBhdXRvO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgICAgIC8vIEBpbmNsdWRlIHVzZXItc2VsZWN0KG5vbmUpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGJyIHtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICBmaWxsOiAkc2Vjb25kYXJ5O1xyXG4gICAgICAgICAgaGVpZ2h0OiAxLjJlbTtcclxuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMmVtO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyxcclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICBvdXRsaW5lOiAwO1xyXG4gICAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJHNlY29uZGFyeSwgMTUlKTtcclxuICAgICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgIGZpbGw6IGxpZ2h0ZW4oJHNlY29uZGFyeSwgMTUlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLnNsaWRlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogI3sxMDAlLyR0YWItY291bnR9O1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMzNzIGN1YmljLWJlemllcigwLjM4LCAwLjgsIDAuMzIsIDEuMDcpO1xyXG4gICAgLmluZGljYXRvciB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgd2lkdGg6ICRpbmRpY2F0b3Itd2lkdGg7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgIGhlaWdodDogJGluZGljYXRvci1oZWlnaHQ7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRhY2NlbnQ7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsgICAgIFxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgbWFyZ2luLXRvcDogMzBweDtcclxuICAgIFxyXG4gICAgc2VjdGlvbiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIGFuaW1hdGlvbjoge1xyXG4gICAgICAgIG5hbWU6IGNvbnRlbnQ7XHJcbiAgICAgICAgZGlyZWN0aW9uOiBub3JtYWw7XHJcbiAgICAgICAgZHVyYXRpb246IDAuM3M7XHJcbiAgICAgICAgdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuICAgICAgICBpdGVyYXRpb24tY291bnQ6IDE7XHJcbiAgICAgIH1cclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICAgICAgXHJcbiAgICAgIGgyIHtcclxuICAgICAgICBjb2xvcjogJGFjY2VudDtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAzcHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjZW50O1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgICAgICAgbGVmdDogMXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBpbnB1dFtuYW1lPVwidGFiLWNvbnRyb2xcIl0ge1xyXG4gICAgQGluY2x1ZGUgdGFicyB7XHJcbiAgICAgID4gbGFiZWwge1xyXG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICBjb2xvcjogJGFjY2VudDtcclxuICAgICAgICBcclxuICAgICAgICBzdmcge1xyXG4gICAgICAgICAgZmlsbDogJGFjY2VudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBzbWFsbCkpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIGNvbnRlbnQge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1JSk7XHJcbiAgICB9XHJcbiAgICB0byB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAtZ2V0KCRicmVha3BvaW50cywgbWVkaXVtKSkge1xyXG4gICAgdWwgbGkgbGFiZWwge1xyXG4gICAgICB3aGl0ZS1zcGFjZTogaW5pdGlhbDtcclxuICAgICAgXHJcbiAgICAgIGJyIHtcclxuICAgICAgICBkaXNwbGF5OiBpbml0aWFsO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBzdmcge1xyXG4gICAgICAgIGhlaWdodDogMS41ZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBzbWFsbCkpIHtcclxuICAgIHVsIGxpIGxhYmVsIHtcclxuICAgICAgcGFkZGluZzogNXB4O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICAgIFxyXG4gICAgICBzcGFuIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5zbGlkZXIge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY29udGVudCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7IFxyXG4gICAgICBzZWN0aW9uIGgyIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn0iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9wcm9wZXJ0aWVzLWFscGhhYmV0aWNhbC1vcmRlciAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmRpc2FibGVEaXYge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi51cGxvYWQtYnRudXAtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYnRudXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDlweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnVwbG9hZC1idG51cC13cmFwcGVyIGlucHV0W3R5cGU9ZmlsZV0ge1xuICBmb250LXNpemU6IDEwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLyogY29sb3JzICovXG4vKiB0YWIgc2V0dGluZyAqL1xuLyogYnJlYWtwb2ludHMgKi9cbi8qIHNlbGVjdG9ycyByZWxhdGl2ZSB0byByYWRpbyBpbnB1dHMgKi9cbmh0bWwge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogI2VmZWZlZjtcbiAgY29sb3I6ICMzMzM7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuYm9keSBoMSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICMxYWIzOTQ7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHBhZGRpbmc6IDQwcHggMCAyMHB4IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuLnRhYnMge1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50YWJzIC5jb250ZW50IHNlY3Rpb24gaDIsXG4udGFicyB1bCBsaSBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGNvbG9yOiAjMWFiMzk0O1xufVxuLnRhYnMgdWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi50YWJzIHVsIGxpIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleDogMTtcbiAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi50YWJzIHVsIGxpIGxhYmVsIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIGNvbG9yOiAjNjc2NzY3O1xuICBwYWRkaW5nOiA1cHggYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG59XG4udGFicyB1bCBsaSBsYWJlbCBiciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGFicyB1bCBsaSBsYWJlbCBzdmcge1xuICBmaWxsOiAjNjc2NzY3O1xuICBoZWlnaHQ6IDEuMmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBtYXJnaW4tcmlnaHQ6IDAuMmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbn1cbi50YWJzIHVsIGxpIGxhYmVsOmhvdmVyLCAudGFicyB1bCBsaSBsYWJlbDpmb2N1cywgLnRhYnMgdWwgbGkgbGFiZWw6YWN0aXZlIHtcbiAgb3V0bGluZTogMDtcbiAgY29sb3I6ICM4ZDhkOGQ7XG59XG4udGFicyB1bCBsaSBsYWJlbDpob3ZlciBzdmcsIC50YWJzIHVsIGxpIGxhYmVsOmZvY3VzIHN2ZywgLnRhYnMgdWwgbGkgbGFiZWw6YWN0aXZlIHN2ZyB7XG4gIGZpbGw6ICM4ZDhkOGQ7XG59XG4udGFicyAuc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjMzcyBjdWJpYy1iZXppZXIoMC4zOCwgMC44LCAwLjMyLCAxLjA3KTtcbn1cbi50YWJzIC5zbGlkZXIgLmluZGljYXRvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDUwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kOiAjMWFiMzk0O1xuICBib3JkZXItcmFkaXVzOiAxcHg7XG59XG4udGFicyAuY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG4udGFicyAuY29udGVudCBzZWN0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYW5pbWF0aW9uLW5hbWU6IGNvbnRlbnQ7XG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi50YWJzIC5jb250ZW50IHNlY3Rpb24gaDIge1xuICBjb2xvcjogIzFhYjM5NDtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50YWJzIC5jb250ZW50IHNlY3Rpb24gaDI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogM3B4O1xuICBiYWNrZ3JvdW5kOiAjMWFiMzk0O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGxlZnQ6IDFweDtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDEpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgxKSA+IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogIzFhYjM5NDtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDEpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgxKSA+IGxhYmVsIHN2ZyB7XG4gIGZpbGw6ICMxYWIzOTQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMSk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDEpID4gbGFiZWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIH1cbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDEpOmNoZWNrZWQgfiAuc2xpZGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDEpOmNoZWNrZWQgfiAuY29udGVudCA+IHNlY3Rpb246bnRoLWNoaWxkKDEpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgyKTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoMikgPiBsYWJlbCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6ICMxYWIzOTQ7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgyKTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoMikgPiBsYWJlbCBzdmcge1xuICBmaWxsOiAjMWFiMzk0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDIpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgyKSA+IGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICB9XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgyKTpjaGVja2VkIH4gLnNsaWRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDIpOmNoZWNrZWQgfiAuY29udGVudCA+IHNlY3Rpb246bnRoLWNoaWxkKDIpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgzKTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoMykgPiBsYWJlbCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6ICMxYWIzOTQ7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgzKTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoMykgPiBsYWJlbCBzdmcge1xuICBmaWxsOiAjMWFiMzk0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDMpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgzKSA+IGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICB9XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgzKTpjaGVja2VkIH4gLnNsaWRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDAlKTtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDMpOmNoZWNrZWQgfiAuY29udGVudCA+IHNlY3Rpb246bnRoLWNoaWxkKDMpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSg0KTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoNCkgPiBsYWJlbCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6ICMxYWIzOTQ7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSg0KTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoNCkgPiBsYWJlbCBzdmcge1xuICBmaWxsOiAjMWFiMzk0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDQpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCg0KSA+IGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICB9XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSg0KTpjaGVja2VkIH4gLnNsaWRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMDAlKTtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDQpOmNoZWNrZWQgfiAuY29udGVudCA+IHNlY3Rpb246bnRoLWNoaWxkKDQpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSg1KTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoNSkgPiBsYWJlbCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6ICMxYWIzOTQ7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSg1KTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoNSkgPiBsYWJlbCBzdmcge1xuICBmaWxsOiAjMWFiMzk0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDUpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCg1KSA+IGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICB9XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSg1KTpjaGVja2VkIH4gLnNsaWRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDAlKTtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDUpOmNoZWNrZWQgfiAuY29udGVudCA+IHNlY3Rpb246bnRoLWNoaWxkKDUpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSg2KTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoNikgPiBsYWJlbCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6ICMxYWIzOTQ7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSg2KTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoNikgPiBsYWJlbCBzdmcge1xuICBmaWxsOiAjMWFiMzk0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDYpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCg2KSA+IGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICB9XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSg2KTpjaGVja2VkIH4gLnNsaWRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MDAlKTtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDYpOmNoZWNrZWQgfiAuY29udGVudCA+IHNlY3Rpb246bnRoLWNoaWxkKDYpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5Aa2V5ZnJhbWVzIGNvbnRlbnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1JSk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE1MDBweCkge1xuICAudGFicyB1bCBsaSBsYWJlbCB7XG4gICAgd2hpdGUtc3BhY2U6IGluaXRpYWw7XG4gIH1cbiAgLnRhYnMgdWwgbGkgbGFiZWwgYnIge1xuICAgIGRpc3BsYXk6IGluaXRpYWw7XG4gIH1cbiAgLnRhYnMgdWwgbGkgbGFiZWwgc3ZnIHtcbiAgICBoZWlnaHQ6IDEuNWVtO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLnRhYnMgdWwgbGkgbGFiZWwge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIH1cbiAgLnRhYnMgdWwgbGkgbGFiZWwgc3BhbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAudGFicyAuc2xpZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC50YWJzIC5jb250ZW50IHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG4gIC50YWJzIC5jb250ZW50IHNlY3Rpb24gaDIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0iXX0= */\"","import { Component, OnDestroy, OnInit, ViewChild, EventEmitter } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ISlimScrollOptions, SlimScrollEvent } from 'ngx-slimscroll';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { StorageService } from 'app/shared/services/storage.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../security/identity.service';\r\nimport { RecruitmentService } from '../recruitment/recruitment.service';\r\nimport { CustomerService } from '../quote/customer.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { OrganizationService } from '../organization/organization.service';\r\nimport { IDtoEmployeeFilter } from 'app/shared/models/employee/dto-employee-filter.model';\r\nimport { EmployeeService } from '../employee.service';\r\nimport { IDtoPayrollEmployee } from 'app/shared/models/employee/dto-payroll-employee.model';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalAppearanceComponet } from 'app/views/modales/recruitment/appearance/modal-appearance.component';\r\nimport { forkJoin } from \"rxjs\";\r\nimport { IAppearance } from 'app/shared/models/recruitment/appearance.model';\r\n@Component({\r\n selector: 'app-list-employees',\r\n styleUrls: ['./list-employees.style.scss'],\r\n templateUrl: 'list-employees.template.html'\r\n})\r\nexport class ListEmployeesComponent implements OnDestroy, OnInit {\r\n /**Formularios */\r\n private formFilter: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Listas */\r\n private employees: IDtoPayrollEmployee[];\r\n /**Catalogos */\r\n\r\n private catalogTrademarks: Observable;\r\n private catalogCompanies: Observable;\r\n private catalogTrackingStatus: ISelect[];\r\n /** */\r\n @ViewChild(DatatableComponent, { static: false }) tableEmployees: DatatableComponent;\r\n /** */\r\n private statusLabelsMap = {\r\n 'Baja': '

Baja

',\r\n 'Laborando en Red': '

Laborando en Red

'\r\n };\r\n /**Variables */\r\n public nav: any;\r\n private clients: any;\r\n private now: number;\r\n /**Slim-control */\r\n optsSlim: ISlimScrollOptions;\r\n scrollEvents: EventEmitter;\r\n private search: string;\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n public constructor(private recruitmentService: RecruitmentService\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private storageService: StorageService\r\n , private identityService: IdentityService\r\n , private customerService: CustomerService\r\n , private organizationService: OrganizationService\r\n , private employeeService: EmployeeService\r\n , private securityService: SecurityService\r\n , private modalService: BsModalService) {\r\n this.nav = document.querySelector('nav.navbar');\r\n this.configToast = configGeneral.getConfigToast();\r\n this.optsSlim = configGeneral.getConfigSlimScroll();\r\n this.initializeFormFilter();\r\n const showRoles = this.securityService.getUserRolesStorage();\r\n if (showRoles !== '') {\r\n this.clients = showRoles.listClients;\r\n }\r\n }\r\n\r\n public ngOnInit(): any {\r\n this.scrollEvents = new EventEmitter();\r\n this.now = Date.now();\r\n this.nav.className += ' white-bg';\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.obetenerCatalogos();\r\n //this.initFilters();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.obetenerCatalogos();\r\n //this.initFilters();\r\n });\r\n }\r\n }\r\n private initFilters(): void {\r\n const values = this.storageService.retrieve('recruitments.filters');\r\n if (values != null) {\r\n this.formFilter.patchValue(values);\r\n }\r\n const search = this.storageService.retrieve('recruitments.search');\r\n if (search != undefined) {\r\n this.search = search;\r\n }\r\n let getJobCandidates = false;\r\n Object.keys(this.formFilter.controls).forEach(field => {\r\n const control = this.formFilter.get(field);\r\n if (control.value != null) {\r\n getJobCandidates = true;\r\n return;\r\n }\r\n });\r\n if (getJobCandidates) {\r\n this.getEmployees(false);\r\n }\r\n else {\r\n this.getEmployees(true);\r\n }\r\n }\r\n private obetenerCatalogos(): void {\r\n\r\n this.catalogTrademarks = this.configureCatalogsTrademarks();\r\n this.catalogCompanies = this.organizationService.getCatalogCompanies();\r\n this.recruitmentService.getCatalogTrackingStatus().subscribe (res => {\r\n this.catalogTrackingStatus = res.filter(x => x.id == '13' || x.id == '17')\r\n });\r\n this.spinner.hide();\r\n }\r\n private configureCatalogsTrademarks(): Observable {\r\n const clients = new Array as IDtoCatalog[];\r\n const t = this.customerService.getCatalogCustomers().pipe(\r\n map((res: any) => {\r\n this.clients.forEach(element => {\r\n const z = res.filter(x => x.id == element.clientId)[0];\r\n console.log(element.clientId);\r\n if (z != undefined)\r\n clients.push(z);\r\n });\r\n return clients;\r\n })\r\n );\r\n return t;\r\n }\r\n private initializeFormFilter() {\r\n this.formFilter = this.formBuilder.group({\r\n companyId: [null],\r\n customerId: [null],\r\n employeeNumber: [null],\r\n lastName: [null],\r\n secondLastName: [null],\r\n firstName: [null],\r\n trackingStatusId: [null]\r\n });\r\n }\r\n private navigateTo(row: IDtoPayrollEmployee): void {\r\n const values = this.formFilter.value;\r\n this.storageService.store('recruitments.filters', values);\r\n this.storageService.store('recruitments.search', this.search);\r\n this.router.navigate(['/employees/update',\r\n { id: row.id, action: 'update', companyPayId: row.companyPayId, customerId: row.customerId }], { relativeTo: this.route });\r\n }\r\n private getEmployees(initialize: boolean): void {\r\n this.spinner.show();\r\n const emps = new Array as IDtoPayrollEmployee[];\r\n let values = this.formFilter.value as IDtoEmployeeFilter;\r\n this.employeeService.getListPayrollEmployees(values).subscribe((res) => {\r\n this.clients.forEach(element => {\r\n const z = res.filter(x => x.customerId == element.clientId);\r\n emps.push(...z);\r\n });\r\n this.employees = emps;\r\n this.spinner.hide();\r\n });\r\n }\r\n public ngOnDestroy(): any {\r\n this.nav.classList.remove('white-bg');\r\n }\r\n\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'JobCandidates';\r\n dto.module = \"requestReviews\";\r\n dto.action = 'hiring';\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n private getCatalogs(row: IDtoPayrollEmployee): void {\r\n this.spinner.show();\r\n forkJoin([\r\n this.recruitmentService.getCatalogSizes(),\r\n this.recruitmentService.getCatalogPhysicalComplexions(),\r\n this.recruitmentService.getCatalogStatures(),\r\n this.recruitmentService.getCatalogShoeSizes(),\r\n this.recruitmentService.getCatalogShirtSizes(),\r\n this.recruitmentService.getJobCandidateAppearanceByJobCandidateId(row.id)\r\n ]).subscribe(([sizes, physicalComplexion, statures, shoeSizes, shirtSizes, appearance]) => {\r\n let genderSizes = sizes.filter(x => x.additional === row.gender);\r\n const catalogs = new Array() as Array;\r\n catalogs.push(genderSizes);\r\n catalogs.push(physicalComplexion);\r\n catalogs.push(statures);\r\n catalogs.push(shoeSizes);\r\n catalogs.push(shirtSizes);\r\n this.openModalAppearance(catalogs, appearance);\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalAppearance(catalogs: Array, appearance: IAppearance) {\r\n const initialState = {\r\n listCatalogs: catalogs,\r\n title: 'Información de complexión física del candidato',\r\n action: 'update',\r\n appearance: appearance,\r\n module: 'employee'\r\n };\r\n this.modalRef = this.modalService.show(ModalAppearanceComponet\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n //this.appearance = result;\r\n }\r\n });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\n.scroll-window {\\n width: 100%;\\n height: 300px;\\n font-size: 13px;\\n padding: 10px 20px 10px 0;\\n font-size: 15px;\\n line-height: 20px;\\n color: #000;\\n}\\n\\n.form-group {\\n font-weight: 500;\\n font-size: 12px;\\n}\\n\\n.m-b-dowload-excel {\\n margin-bottom: -20px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvZW1wbG95ZWVzL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xcZW1wbG95ZWVzXFxsaXN0LWVtcGxveWVlcy5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9lbXBsb3llZXMvbGlzdC1lbXBsb3llZXMuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLGlCQUFBO0FDQUY7O0FERUE7RUFDRSxXQUFBO0VBQ0EsYUFBQTtFQUNBLGVBQUE7RUFDQSx5QkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7QUNDRjs7QURDQTtFQUNFLGdCQUFBO0VBQ0EsZUFBQTtBQ0VGOztBREFBO0VBQ0Usb0JBQUE7QUNHRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL2VtcGxveWVlcy9saXN0LWVtcGxveWVlcy5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG59XHJcbi5zY3JvbGwtd2luZG93IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDMwMHB4O1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAwO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICBsaW5lLWhlaWdodDogMjBweDtcclxuICBjb2xvcjogIzAwMDtcclxufVxyXG4uZm9ybS1ncm91cCB7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBmb250LXNpemU6IDEycHg7XHJcbn1cclxuLm0tYi1kb3dsb2FkLWV4Y2VsIHtcclxuICBtYXJnaW4tYm90dG9tOiAtMjBweDtcclxufSIsIi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn1cblxuLnNjcm9sbC13aW5kb3cge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMDBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogIzAwMDtcbn1cblxuLmZvcm0tZ3JvdXAge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5tLWItZG93bG9hZC1leGNlbCB7XG4gIG1hcmdpbi1ib3R0b206IC0yMHB4O1xufSJdfQ== */\"","\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport 'rxjs/Rx';\r\nimport 'rxjs/add/observable/throw';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Subject } from 'rxjs/Rx';\r\nimport { IDtoEvent } from 'app/shared/models/incident/dto-event.model';\r\nimport { IDtoTicket } from 'app/shared/models/incident/dto-ticket.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoTicketResourceLocation } from 'app/shared/models/incident/dto-ticket-resource-location.model';\r\nimport { IDtoTicketResource } from 'app/shared/models/incident/dto-ticket-resource.model';\r\n\r\n@Injectable()\r\nexport class IncidentService {\r\n private incidentUrl = '';\r\n private listCatalogs = new Subject();\r\n public object: any;\r\n public listCatalogsChallenge$ = this.listCatalogs.asObservable();\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.incidentUrl = this.configurationService.serverSettings.incidentUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.incidentUrl = this.configurationService.serverSettings.incidentUrl;\r\n });\r\n }\r\n }\r\n public getCatalogResource(): Observable {\r\n const url = this.incidentUrl + 'api/resource/getCatalogTicketResource';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogLocations(): Observable {\r\n const url = this.incidentUrl + 'api/location/getCatalogLocations';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogs() {\r\n return Observable.forkJoin([\r\n this.getCatalogResource(),\r\n this.getCatalogLocations(),\r\n ]).subscribe(([resources, locations]) => {\r\n const list: any[] = [];\r\n list.push(resources);\r\n list.push(locations);\r\n this.listCatalogs.next(list);\r\n //\r\n });\r\n }\r\n public getEventsByDate(start, end, employeeId, perfil): Observable {\r\n const url = `${this.incidentUrl}api/event/getEventsByDate?start=${start}&end=${end}\r\n &employeeId=${employeeId}&perfil=${perfil}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n public getTicketsByDate(start, end, employeeId, perfilSeleccionado): Observable {\r\n const url = `${this.incidentUrl}api/ticket/getTicketsByDate?start=${start}&end=${end}\r\n &employeeId=${employeeId}&perfil=${perfilSeleccionado}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n public getTickets(eventId: number): Observable {\r\n const url = `${this.incidentUrl}api/ticket/getTickets?eventId=${eventId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public closeEvent(event): Observable {\r\n const url = this.incidentUrl + 'api/event/closeEvent';\r\n return this.service.post(url, event).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addEvent(event: IDtoEvent): Observable {\r\n const url = this.incidentUrl + 'api/event/addEvent/';\r\n return this.service.post(url, event).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addTicket(ticket: IDtoTicket): Observable {\r\n const url = this.incidentUrl + 'api/ticket/addTicket/';\r\n return this.service.post(url, ticket).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public listStatusIncident: IDtoCatalog[] = [\r\n { id: 1, name: 'Nuevo' }, { id: 2, name: 'Progreso' },\r\n { id: 3, name: 'Pendiente' }, { id: 4, name: 'Cerrado' }];\r\n\r\n public getEmployeesAssigned(): Observable {\r\n const url = this.incidentUrl + 'api/resource/getEmployeesAssigned';\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateTicket(ticket: IDtoTicket): Observable {\r\n const url = this.incidentUrl + 'api/ticket/updateTicket/';\r\n return this.service.putWithId(url, ticket).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getTicketById(ticketId: number): Observable {\r\n const url = `${this.incidentUrl}api/ticket/getTicketById?ticketId=${ticketId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getEventById(eventId: number): Observable {\r\n const url = `${this.incidentUrl}api/Event/getEventById?eventId=${eventId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getResourceLocation(locationId: number, ticketResourceId: number): Observable {\r\n const url = `${this.incidentUrl}api/resource/getResourceLocation?locationId=${locationId}&ticketResourceId=${ticketResourceId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { PageChangedEvent } from 'ngx-bootstrap/pagination';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport { StorageService } from 'app/shared/services/storage.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoEvent } from 'app/shared/models/incident/dto-event.model';\r\nimport { ModalIncidentComponent } from 'app/views/modales/incident/modal.incident.component';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { IncidentService } from '../../incident.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoJobCandidateBasic } from 'app/shared/models/employee/dto-jobcandidate-basic.model';\r\nimport { EmployeeService } from '../../employee.service';\r\nimport { EmailService } from '../../email.service';\r\nimport { IDtoEmail } from 'app/shared/models/dto-email.model';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { IDtoTicket } from 'app/shared/models/incident/dto-ticket.model';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IDtoMessageDetail } from 'app/shared/models/dto-message-detail.model';\r\nimport { MessageService } from '../../message.service';\r\n\r\n@Component({\r\n selector: 'incident',\r\n templateUrl: './incident.detail.template.html',\r\n styleUrls: ['./incident.detail.style.scss'],\r\n})\r\n\r\nexport class IncidentDetailComponent implements OnInit {\r\n private currentItemName: string = 'inbox';\r\n private titleGroupTool: string = 'Sin';\r\n private titleTool: string = 'Solicitudes';\r\n private toolSubtypeId: number = 0;\r\n private toolTypeId: number = 0;\r\n private requestEmployeeId: number = 0;\r\n private employeeAssigned: IDtoJobCandidateBasic;\r\n private employeeOwner: IDtoJobCandidateBasic;\r\n private oldAssignedEmpId: number;\r\n private model: any = {\r\n onColor: 'primary',\r\n offColor: 'secondary',\r\n onText: 'Nuevo',\r\n offText: 'Cerrado',\r\n disabled: false,\r\n size: 'sm',\r\n value: true\r\n };\r\n private formIncident: FormGroup;\r\n private config = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private itemsPageList: number[] = [5, 10, 15, 20, 30, 50];\r\n private page: number = 2;\r\n private itemsPage: number = 20;\r\n private modalRef: BsModalRef;\r\n private errorReceived: boolean;\r\n private listEvents: IDtoEvent[] = []; // = new List();\r\n private listEventsPage: IDtoEvent[] = [];\r\n private listTickets: IDtoTicket[] = [];\r\n private listEventsFilter: IDtoEvent[] = [];\r\n private listEmployeesAssigned: IDtoCatalog[];\r\n private listStatusIncident: IDtoCatalog[];\r\n\r\n private list: any[] = [];\r\n private event = {} as IDtoEvent;\r\n private ticket = {} as IDtoTicket;\r\n private showEvent: boolean;\r\n private tk = {} as IDtoTicket;\r\n private userData: IDtoJobCandidateBasic;\r\n private enabledSave = true;\r\n private rutaFile: string;\r\n private showDownloadFile = false;\r\n private isRolUsuario: boolean;\r\n private roles: any;\r\n private showRoles: any;\r\n employee: IDtoJobCandidateBasic;\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n constructor(private serviceIncident: IncidentService\r\n , private modalService: BsModalService\r\n , private emailService: EmailService\r\n , private formBuilder: FormBuilder\r\n , private configuration: ConfigurationService\r\n , private router: Router\r\n , private appConfig: AppConfig\r\n , private storageService: StorageService\r\n , private securityService: SecurityService\r\n , private employeeService: EmployeeService\r\n , private route: ActivatedRoute\r\n , private messageService: MessageService) {\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n }\r\n\r\n public ngOnInit() {\r\n this.formIncident = this.formBuilder.group({\r\n fcnStatusIncident: [null],\r\n fcnStatusEmployeeAssigned: [null],\r\n txtSolution: [null],\r\n txtDescription: [null],\r\n txtComments: [null, Validators.required],\r\n assignedEmp: [null]\r\n });\r\n this.getEmployee();\r\n this.userData = this.storageService.retrieve('userData');\r\n this.employeeOwner = {} as IDtoJobCandidateBasic;\r\n this.employeeAssigned = {} as IDtoJobCandidateBasic;\r\n this.oldAssignedEmpId = 0;\r\n this.isRolUsuario = false;\r\n this.initializeData();\r\n this.roles = this.securityService.getUserRolesStorage();\r\n\r\n this.load();\r\n }\r\n private initializeData(): void {\r\n this.route.params.subscribe((params) => {\r\n if (params['ticketId']) {\r\n this.showEvent = false;\r\n setTimeout(() => {\r\n this.getTicketById(Number(params['ticketId']));\r\n }, 2);\r\n }\r\n if (params['eventId']) {\r\n setTimeout(() => {\r\n this.showEvent = true;\r\n this.getEventById(Number(params['eventId']));\r\n }, 2);\r\n }\r\n });\r\n }\r\n private getEmployee(): void {\r\n this.employeeService.getEmployee(this.showRoles.employeeId).subscribe((res) => {\r\n this.employee = res.data as IDtoJobCandidateBasic;\r\n },\r\n (errMessage) => {\r\n this.appConfig.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private getTicketById(ticketId: number): void {\r\n this.serviceIncident.getTicketById(ticketId).subscribe((res) => {\r\n this.ticket = res;\r\n this.oldAssignedEmpId = this.ticket.assignedEmpId;\r\n this.selectTicket(this.ticket);\r\n },\r\n (errMessage) => {\r\n this.appConfig.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private getEventById(eventId: number): void {\r\n this.serviceIncident.getEventById(eventId).subscribe((res) => {\r\n this.event = res;\r\n this.listTickets = this.event.tickets;\r\n this.selectTicket(this.listTickets[0]);\r\n },\r\n (errMessage) => {\r\n this.appConfig.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private load() {\r\n let profile = this.securityService.getProfileStorage('Incident');\r\n if (profile == 'Usuario') {\r\n this.isRolUsuario = true;\r\n this.formIncident.controls['fcnStatusEmployeeAssigned'].disable();\r\n this.formIncident.controls['fcnStatusIncident'].disable();\r\n this.formIncident.controls['txtComments'].disable();\r\n this.formIncident.controls['txtSolution'].disable();\r\n } else {\r\n this.formIncident.controls['txtDescription'].disable();\r\n }\r\n }\r\n\r\n private mostrarElementos(item: any, data: IDtoEvent[]): void {\r\n this.itemsPage = item;\r\n const startItem = (1 - 1) * this.itemsPage;\r\n const endItem = 1 * this.itemsPage;\r\n this.listEventsPage = data.slice(startItem, endItem);\r\n this.page = 1;\r\n }\r\n\r\n private initializeValuesTicket(ticket) {\r\n {\r\n this.oldAssignedEmpId = ticket.assignedEmpId;\r\n this.selectTicket(ticket);\r\n }\r\n }\r\n\r\n private extendedTicket(ticket: IDtoTicket): void {\r\n this.event.status = ticket.status;\r\n this.listTickets.push(ticket);\r\n }\r\n\r\n private pageChanged(event: PageChangedEvent): void {\r\n const startItem = (event.page - 1) * event.itemsPerPage;\r\n const endItem = event.page * event.itemsPerPage;\r\n this.listEventsPage = this.listEventsFilter.slice(startItem, endItem);\r\n }\r\n //\r\n private goToIncidents(): void {\r\n this.router.navigate(['/incident/records']);\r\n }\r\n //\r\n private onSelect(item: IDtoCatalog, control: string) {\r\n if (item != null || item !== undefined) {\r\n switch (control) {\r\n case ('fcnStatusIncident'):\r\n // asigno el title y el resourceId a evento y el mismo valor al ticket\r\n\r\n this.ticket.status = +item.id;\r\n break;\r\n case ('fcnStatusEmployeeAssigned'):\r\n this.ticket.assignedEmpId = +item.id;\r\n break;\r\n }\r\n }\r\n }\r\n //\r\n private getEmployeesAssigned() {\r\n this.serviceIncident.getEmployeesAssigned()\r\n .catch((err) => this.handleError(err))\r\n .subscribe((data) => {\r\n\r\n this.listEmployeesAssigned = data.data as IDtoCatalog[];\r\n this.formIncident.controls['fcnStatusEmployeeAssigned'].setValue(this.ticket.assignedEmpId);\r\n //this.ticket.assignedEmp = this.listEmployeesAssigned.find(x => x.id == this.ticket.assignedEmpId).name;\r\n });\r\n this.formIncident.controls['fcnStatusIncident'].setValue(this.ticket.status);\r\n }\r\n //\r\n private updateTicket(): Observable {\r\n if (this.formIncident.valid) {\r\n if (this.ticket.status == 4 && (this.ticket.solution == null || this.ticket.solution == undefined) ) {\r\n this.appConfig.newToast('Validación', 'Ingrese la solución del ticket antes de cerrarlo', 'warning');\r\n return;\r\n }\r\n this.ticket.eventClose = this.ticket.status == 4;\r\n const updateTicketObservable = this.serviceIncident.updateTicket(this.ticket);\r\n updateTicketObservable\r\n .subscribe(\r\n (x) => {\r\n const result = x;\r\n if (result.isCorrect) {\r\n this.event.status = this.ticket.status;\r\n // If assigned employee has changed then send email notification\r\n let emp = this.listEmployeesAssigned.find(x => x.id == this.ticket.assignedEmpId);\r\n if (this.oldAssignedEmpId !== this.ticket.assignedEmpId) {\r\n let messaje = `usted tienen asignado un incidente con número de folio ${this.ticket.ticketId} y asunto ${this.ticket.title}. Favor de acceder a http://rednovation.azurewebsites.net/ para su atención.`;\r\n this.sendMessage(emp.description, emp.id, emp.additional, messaje);\r\n this.oldAssignedEmpId = this.ticket.assignedEmpId;\r\n\r\n }\r\n // If ticket is closed send email to owner employee\r\n if (this.ticket.status === 4) {\r\n let messaje = `el incidente con número de folio ${this.ticket.ticketId} y asunto ${this.ticket.title}, ha sido cerrado. Para ver mas detalles de la resolución del incidente, favor de ingresar a http://rednovation.azurewebsites.net/.`;\r\n this.sendMessage(emp.description, this.ticket.ownerEmpId, this.ticket.ownerEmpUKey, messaje);\r\n }\r\n\r\n this.tk.status = this.ticket.status;\r\n this.appConfig.newToast('¡Exito!', 'Datos actualizados', 'success');\r\n }\r\n },\r\n (errMessage) => this.handleError = errMessage.messages);\r\n return updateTicketObservable;\r\n } else {\r\n this.appConfig.newToast('Validación!', 'Ingrese la información requerida', 'warning');\r\n }\r\n\r\n }\r\n //\r\n private selectTicket(entidad: IDtoTicket): void {\r\n //this.list = [];\r\n this.oldAssignedEmpId = entidad.assignedEmpId;\r\n this.tk = entidad;\r\n this.ticket = Object.assign({}, entidad);\r\n this.listStatusIncident = this.serviceIncident.listStatusIncident;\r\n /** Evaluo si habilito el botom de guardar */\r\n if (this.tk.status === 4 || this.tk.ownerEmpId === this.userData.id) {\r\n this.enabledSave = false;\r\n } else {\r\n this.enabledSave = true;\r\n }\r\n this.getEmployeesAssigned();\r\n }\r\n\r\n private getCatalogsModal(item: any, accion: string, id: number) {\r\n let any = this.listTickets.some(ticket => ticket.status != 4);\r\n if (any) {\r\n this.appConfig.newToast('¡Validación!', 'No es posible generar un nuevo ticket debido a tickets abiertos en este evento', 'warning');\r\n return;\r\n }\r\n this.serviceIncident.getCatalogs();\r\n const t = this.serviceIncident.listCatalogsChallenge$.subscribe((res) => {\r\n t.unsubscribe();\r\n this.openModalIncident(item, accion, res, id);\r\n });\r\n }\r\n\r\n private openModalIncident(item: any, acc: string, catalogs: any[], id: number) {\r\n const initialState = {\r\n list: catalogs,\r\n title: 'Información del ticket',\r\n accion: acc,\r\n eventId: id,\r\n employee: this.employee\r\n };\r\n\r\n this.modalRef = this.modalService.show(ModalIncidentComponent\r\n , Object.assign({ initialState }\r\n , { class: 'gray modal-lg' }, this.config));\r\n this.modalRef.content.closeBtnName = 'Close';\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result != null) {\r\n switch (acc) {\r\n case ('nuevo'):\r\n this.extendedTicket(result);\r\n this.appConfig.newToast('¡Exito!', 'Datos agregados', 'success');\r\n break;\r\n case ('editar'):\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private sendMessage(personalNumber: string, assignedEmpId: number, uKey: string, message: string): void {\r\n this.employeeService.getBusinessPhone(uKey)\r\n .subscribe(\r\n (x) => {\r\n let dto = {} as IDtoMessageDetail;\r\n dto.recipientId = x == null ? personalNumber : x.toString();\r\n dto.messageSent = message;\r\n dto.employeeId = assignedEmpId;\r\n dto.template = 'incidente_nuevo';\r\n this.messageService.sendMessage(dto)\r\n .subscribe(\r\n (x) => {\r\n },\r\n (errMessage) => {\r\n this.appConfig.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n },\r\n (errMessage) => {\r\n this.appConfig.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private handleError(error: any) {\r\n this.errorReceived = true;\r\n return Observable.throw(error);\r\n }\r\n}\r\n","module.exports = \"/*================================================================*/\\n/*--------- ESTILOS PARA LA TABLA DE PERFIL DE PUESTO ------------*/\\n/*================================================================*/\\n/*========== TABLA 01 =======*/\\n.centrar {\\n text-align: center;\\n}\\n.pading {\\n padding: 15px;\\n}\\n.margen-top {\\n margin-top: -21px;\\n}\\n.encabezado-01 {\\n height: 70px;\\n border: 1px solid #dddddd;\\n text-align: left;\\n padding: 16px 0;\\n}\\n.encabezado-02 {\\n background-color: #EBB400;\\n height: 70px;\\n border: 1px solid #dddddd;\\n text-align: center;\\n padding: 5px 0;\\n}\\n.encabezado-ticket {\\n height: 70px;\\n border: 1px solid #dddddd;\\n text-align: left;\\n padding: 16px 0;\\n}\\n.encabezado-ticket-02 {\\n height: 70px;\\n border: 1px solid #dddddd;\\n text-align: center;\\n padding: 5px 0;\\n}\\n#th-blanco {\\n background-color: white;\\n text-align: center;\\n}\\n#td-contenido {\\n /*background-color: white;*/\\n text-align: center;\\n}\\nimg.logo-tabla {\\n margin: 25px auto;\\n}\\n#titulo-tabla_01 {\\n background-color: white;\\n text-align: center;\\n padding: 25px 0;\\n}\\n/*========== TABLA 02 =======*/\\n#th-gris {\\n background-color: #d9d9d9;\\n width: 30%;\\n}\\n#th-gris-border {\\n border-color: #d9d9d9;\\n background-color: #d9d9d9;\\n}\\n#td-gris {\\n background-color: #d9d9d9;\\n width: 50%;\\n}\\n#td-blanco {\\n width: 50%;\\n}\\n#centrado {\\n text-align: center;\\n}\\n#perfil-ideal {\\n background-color: #d9d9d9;\\n text-align: center;\\n font-size: 16px;\\n border-right-color: #d9d9d9;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvaW5jaWRlbnQvZGV0YWlsL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xcaW5jaWRlbnRcXGRldGFpbFxcaW5jaWRlbnQuZGV0YWlsLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL2luY2lkZW50L2RldGFpbC9pbmNpZGVudC5kZXRhaWwuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxtRUFBQTtBQUNBLG1FQUFBO0FBQ0EsbUVBQUE7QUFDQSw4QkFBQTtBQUNBO0VBQ0ksa0JBQUE7QUNBSjtBREVBO0VBQ0ksYUFBQTtBQ0NKO0FEQ0E7RUFDSSxpQkFBQTtBQ0VKO0FEQUE7RUFDSSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUNHSjtBRERBO0VBQ0kseUJBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7QUNJSjtBREZBO0VBQ0ksWUFBQTtFQUNBLHlCQUFBO0VBQ0EsZ0JBQUE7RUFBZ0IsZUFBQTtBQ01wQjtBREpBO0VBRUksWUFBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7RUFBa0IsY0FBQTtBQ090QjtBRExBO0VBQ0ksdUJBQUE7RUFDQSxrQkFBQTtBQ1FKO0FETkE7RUFDSSwyQkFBQTtFQUNBLGtCQUFBO0FDU0o7QURQQTtFQUNJLGlCQUFBO0FDVUo7QURSQTtFQUNJLHVCQUFBO0VBQ0Qsa0JBQUE7RUFDQSxlQUFBO0FDV0g7QURUQSw4QkFBQTtBQUNBO0VBQ0kseUJBQUE7RUFDQSxVQUFBO0FDWUo7QURWQTtFQUNJLHFCQUFBO0VBQ0EseUJBQUE7QUNhSjtBRFhBO0VBQ0kseUJBQUE7RUFDQSxVQUFBO0FDY0o7QURaQTtFQUNJLFVBQUE7QUNlSjtBRGJBO0VBQ0ksa0JBQUE7QUNnQko7QURkQTtFQUNJLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsMkJBQUE7QUNpQkoiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9pbmNpZGVudC9kZXRhaWwvaW5jaWRlbnQuZGV0YWlsLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuLyotLS0tLS0tLS0gRVNUSUxPUyBQQVJBIExBIFRBQkxBIERFIFBFUkZJTCBERSBQVUVTVE8gLS0tLS0tLS0tLS0tKi9cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuLyo9PT09PT09PT09IFRBQkxBIDAxID09PT09PT0qL1xyXG4uY2VudHJhciB7XHJcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxufVxyXG4ucGFkaW5nIHtcclxuICAgIHBhZGRpbmc6MTVweDsgICBcclxufVxyXG4ubWFyZ2VuLXRvcCB7XHJcbiAgICBtYXJnaW4tdG9wOi0yMXB4O1xyXG59XHJcbi5lbmNhYmV6YWRvLTAxe1xyXG4gICAgaGVpZ2h0OjcwcHg7XHJcbiAgICBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7XHJcbiAgICB0ZXh0LWFsaWduOmxlZnQ7XHJcbiAgICBwYWRkaW5nOjE2cHggMFxyXG59XHJcbi5lbmNhYmV6YWRvLTAyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6I0VCQjQwMDtcclxuICAgIGhlaWdodDo3MHB4O1xyXG4gICAgYm9yZGVyOjFweCBzb2xpZCAjZGRkZGRkO1xyXG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XHJcbiAgICBwYWRkaW5nOjVweCAwXHJcbn1cclxuLmVuY2FiZXphZG8tdGlja2V0IHtcclxuICAgIGhlaWdodDo3MHB4O1xyXG4gICAgYm9yZGVyOjFweCBzb2xpZCAjZGRkZGRkO1xyXG4gICAgdGV4dC1hbGlnbjpsZWZ0O3BhZGRpbmc6MTZweCAwXHJcbn1cclxuLmVuY2FiZXphZG8tdGlja2V0LTAyIHtcclxuICAgIC8vIGJhY2tncm91bmQtY29sb3I6IzZDQzRCRjtcclxuICAgIGhlaWdodDo3MHB4O1xyXG4gICAgYm9yZGVyOjFweCBzb2xpZCAjZGRkZGRkO1xyXG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo1cHggMFxyXG59XHJcbiN0aC1ibGFuY28ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxufSAgXHJcbiN0ZC1jb250ZW5pZG8ge1xyXG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsqL1xyXG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XHJcbn0gXHJcbmltZy5sb2dvLXRhYmxhIHtcclxuICAgIG1hcmdpbjoyNXB4IGF1dG87XHJcbn1cclxuI3RpdHVsby10YWJsYV8wMSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgdGV4dC1hbGlnbjpjZW50ZXI7XHJcbiAgIHBhZGRpbmc6MjVweCAwO1xyXG59XHJcbi8qPT09PT09PT09PSBUQUJMQSAwMiA9PT09PT09Ki9cclxuI3RoLWdyaXMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcclxuICAgIHdpZHRoOjMwJTtcclxufVxyXG4jdGgtZ3Jpcy1ib3JkZXIge1xyXG4gICAgYm9yZGVyLWNvbG9yOiNkOWQ5ZDk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5O1xyXG59XHJcbiN0ZC1ncmlzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XHJcbiAgICB3aWR0aDo1MCU7XHJcbn1cclxuI3RkLWJsYW5jbyB7XHJcbiAgICB3aWR0aDo1MCU7XHJcbn1cclxuI2NlbnRyYWRvIHtcclxuICAgIHRleHQtYWxpZ246Y2VudGVyO1xyXG59XHJcbiNwZXJmaWwtaWRlYWwge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcclxuICAgIHRleHQtYWxpZ246Y2VudGVyO1xyXG4gICAgZm9udC1zaXplOjE2cHg7XHJcbiAgICBib3JkZXItcmlnaHQtY29sb3I6I2Q5ZDlkOTtcclxufSIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKi0tLS0tLS0tLSBFU1RJTE9TIFBBUkEgTEEgVEFCTEEgREUgUEVSRklMIERFIFBVRVNUTyAtLS0tLS0tLS0tLS0qL1xuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qPT09PT09PT09PSBUQUJMQSAwMSA9PT09PT09Ki9cbi5jZW50cmFyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucGFkaW5nIHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLm1hcmdlbi10b3Age1xuICBtYXJnaW4tdG9wOiAtMjFweDtcbn1cblxuLmVuY2FiZXphZG8tMDEge1xuICBoZWlnaHQ6IDcwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDE2cHggMDtcbn1cblxuLmVuY2FiZXphZG8tMDIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJCNDAwO1xuICBoZWlnaHQ6IDcwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogNXB4IDA7XG59XG5cbi5lbmNhYmV6YWRvLXRpY2tldCB7XG4gIGhlaWdodDogNzBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZGRkZDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMTZweCAwO1xufVxuXG4uZW5jYWJlemFkby10aWNrZXQtMDIge1xuICBoZWlnaHQ6IDcwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogNXB4IDA7XG59XG5cbiN0aC1ibGFuY28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jdGQtY29udGVuaWRvIHtcbiAgLypiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsqL1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbmltZy5sb2dvLXRhYmxhIHtcbiAgbWFyZ2luOiAyNXB4IGF1dG87XG59XG5cbiN0aXR1bG8tdGFibGFfMDEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAyNXB4IDA7XG59XG5cbi8qPT09PT09PT09PSBUQUJMQSAwMiA9PT09PT09Ki9cbiN0aC1ncmlzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbiAgd2lkdGg6IDMwJTtcbn1cblxuI3RoLWdyaXMtYm9yZGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZDlkOWQ5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5O1xufVxuXG4jdGQtZ3JpcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG4gIHdpZHRoOiA1MCU7XG59XG5cbiN0ZC1ibGFuY28ge1xuICB3aWR0aDogNTAlO1xufVxuXG4jY2VudHJhZG8ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbiNwZXJmaWwtaWRlYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZDlkOWQ5O1xufSJdfQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\n//import { ModalIncidentComponent } from '../modales/modal.incident.component';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\r\nimport { PageChangedEvent } from 'ngx-bootstrap/pagination';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { StorageService } from 'app/shared/services/storage.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoEvent } from 'app/shared/models/incident/dto-event.model';\r\nimport { IncidentService } from '../incident.service';\r\nimport { EmployeeService } from '../employee.service';\r\nimport { IDtoJobCandidateBasic } from 'app/shared/models/employee/dto-jobcandidate-basic.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalIncidentComponent } from 'app/views/modales/incident/modal.incident.component';\r\nimport { IDtoTicket } from 'app/shared/models/incident/dto-ticket.model';\r\n@Component({\r\n selector: 'incident',\r\n templateUrl: './incident.template.html',\r\n styleUrls: ['./incident.style.scss'],\r\n})\r\n\r\nexport class IncidentComponent implements OnInit {\r\n private showRoles: any;\r\n private formIncident: FormGroup;\r\n private config = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private itemsPageList: number[] = [5, 10, 15, 20, 30, 50];\r\n private page: number = 2;\r\n private itemsPage: number = 20;\r\n private errorReceived: boolean;\r\n private listEvents = [];\r\n private listEventsPage = [];\r\n private listTickets = [] as IDtoTicket[];\r\n private listEventsFilter: any[] = [];\r\n private listEmployees = [] as IDtoCatalog[];\r\n private event: IDtoEvent;\r\n private router: Router;\r\n private desde: Date;\r\n private hasta: Date;\r\n private typeFilter = 'tickets';\r\n private isEvent: boolean;\r\n private perfilSeleccionado = 'owner';\r\n /* Variables para count*/\r\n private countPending: number;\r\n private countSolved: number;\r\n private countOpen: number;\r\n private countInProcess: number;\r\n profile: string;\r\n private modalRef?: BsModalRef;\r\n @ViewChild('sentCloseIncident', { static: false }) private sentCloseIncident: SwalComponent;\r\n employee: IDtoJobCandidateBasic;\r\n @ViewChild('tab2', { static: false }) private tab2;\r\n constructor(private incidentService: IncidentService\r\n , private formBuilder: FormBuilder\r\n , router: Router\r\n , private storageService: StorageService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , public configGeneral: AppConfig\r\n , private employeeService: EmployeeService\r\n , private spinner: NgxSpinnerService\r\n , private modalService: BsModalService\r\n , private route: ActivatedRoute) {\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n this.router = router;\r\n this.profile = this.securityService.getProfileStorage('Incident');\r\n }\r\n\r\n public ngOnInit() {\r\n if (this.configurationService.isReady) {\r\n this.getEmployee();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getEmployee();\r\n });\r\n }\r\n this.desde = new Date(new Date().getTime() - (1000 * 60 * 60 * 24) * 5);\r\n this.hasta = new Date(new Date().getTime() + (1000 * 60 * 60 * 24));\r\n this.isEvent = false;\r\n this.getDataFilters();\r\n this.formIncident = this.formBuilder.group({\r\n selItemPage: new FormControl(null),\r\n paginaIncident: new FormControl(null),\r\n dtpStart: [null],\r\n dtpEnd: [null],\r\n });\r\n this.formIncident.controls['selItemPage'].setValue(this.itemsPage, { onlySelf: true });\r\n }\r\n\r\n private mostrarElementos(item: any, data: any[]): void {\r\n this.itemsPage = item;\r\n const startItem = (1 - 1) * this.itemsPage;\r\n const endItem = 1 * this.itemsPage;\r\n this.listEventsPage = data.slice(startItem, endItem);\r\n this.page = 1;\r\n }\r\n\r\n private getEvents(perfilSeleccionado: string) {\r\n this.countInProcess = 0;\r\n this.countOpen = 0;\r\n this.countPending = 0;\r\n this.countSolved = 0;\r\n this.incidentService.getEventsByDate(\r\n `${(this.desde.getMonth() + 1)}-${this.desde.getDate()}-${this.desde.getFullYear()}`\r\n , `${(this.hasta.getMonth() + 1)}-${this.hasta.getDate()}-${this.hasta.getFullYear()}`\r\n , this.showRoles.employeeId\r\n , perfilSeleccionado)\r\n .catch((err) => this.handleError(err))\r\n .subscribe((data) => {\r\n this.listEvents = data;\r\n this.mostrarElementos(this.itemsPage, data);\r\n if (this.listEvents.length > 0) {\r\n this.countsStatesIncidents();\r\n this.filterTicketsByStatus(1);\r\n }\r\n });\r\n }\r\n private getEmployee(): void {\r\n this.employeeService.getEmployee(this.showRoles.employeeId).subscribe((res) => {\r\n this.employee = res.data as IDtoJobCandidateBasic;\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private getTickets(perfilSeleccionado: string) {\r\n this.countInProcess = 0;\r\n this.countOpen = 0;\r\n this.countPending = 0;\r\n this.countSolved = 0;\r\n this.incidentService.getTicketsByDate(\r\n `${(this.desde.getMonth() + 1)}-${this.desde.getDate()}-${this.desde.getFullYear()}`\r\n , `${(this.hasta.getMonth() + 1)}-${this.hasta.getDate()}-${this.hasta.getFullYear()}`\r\n , this.showRoles.employeeId\r\n , perfilSeleccionado)\r\n .catch((err) => this.handleError(err))\r\n .subscribe((data) => {\r\n this.listEvents = data;\r\n this.mostrarElementos(this.itemsPage, data);\r\n if (this.listEvents.length > 0) {\r\n this.countsStatesIncidents();\r\n this.filterTicketsByStatus(1);\r\n }\r\n });\r\n }\r\n\r\n private getDataBy(perfilSeleccionado: string) {\r\n this.perfilSeleccionado = perfilSeleccionado;\r\n switch (this.typeFilter) {\r\n case 'events':\r\n this.getEvents(perfilSeleccionado);\r\n break;\r\n case 'tickets':\r\n this.getTickets(perfilSeleccionado);\r\n break;\r\n }\r\n }\r\n\r\n private filterTicketsByStatus(status: number): void {\r\n this.listEventsPage = this.listEvents.filter(x => x.status === status);\r\n }\r\n\r\n private getTicket(item: IDtoEvent) {\r\n\r\n this.incidentService.getTickets(item.eventId)\r\n .catch((err) => this.handleError(err))\r\n .subscribe((data) => {\r\n this.listTickets = data;\r\n });\r\n }\r\n\r\n private getDataFilters() {\r\n if(this.tab2) {\r\n this.tab2.nativeElement.checked = true;\r\n }\r\n switch (this.typeFilter) {\r\n case 'events':\r\n this.isEvent = true;\r\n this.getEvents('owner');\r\n break;\r\n case 'tickets':\r\n this.isEvent = false;\r\n this.getTickets('owner');\r\n break;\r\n }\r\n }\r\n\r\n private onSelectionChange(entry) {\r\n this.typeFilter = entry;\r\n switch (this.typeFilter) {\r\n case 'events':\r\n this.isEvent = true;\r\n break;\r\n case 'tickets':\r\n this.isEvent = false;\r\n break;\r\n }\r\n }\r\n\r\n //\r\n private countsStatesIncidents() {\r\n this.countOpen = this.listEvents.filter(x => x.status === 1).length;\r\n this.countInProcess = this.listEvents.filter(x => x.status === 2).length;\r\n this.countPending = this.listEvents.filter(x => x.status === 3).length;\r\n this.countSolved = this.listEvents.filter(x => x.status === 4).length;\r\n }\r\n //\r\n private pageChanged(event: PageChangedEvent): void {\r\n const startItem = (event.page - 1) * event.itemsPerPage;\r\n const endItem = event.page * event.itemsPerPage;\r\n this.listEventsPage = this.listEventsFilter.slice(startItem, endItem);\r\n }\r\n\r\n private filterEvents = (events) => {\r\n this.listEventsFilter = events;\r\n this.mostrarElementos(this.itemsPage, events);\r\n }\r\n\r\n private handleError(error: any) {\r\n this.errorReceived = true;\r\n return Observable.throw(error);\r\n }\r\n // TODO: //Cool\r\n private detailIncidentGo(item) {\r\n if (item.ticketId == undefined) {\r\n this.router.navigate(['/incident/detail',\r\n { eventId: item.eventId }], { relativeTo: this.route });\r\n } else {\r\n this.router.navigate(['/incident/detail',\r\n { ticketId: item.ticketId }], { relativeTo: this.route });\r\n }\r\n }\r\n\r\n private getCatalogsModal(item: any, accion: string, id: number) {\r\n this.openModalIncident(item, accion, id);\r\n const t = this.incidentService.listCatalogsChallenge$.subscribe((res) => {\r\n t.unsubscribe();\r\n });\r\n }\r\n //\r\n private questCloseEvent(item: IDtoEvent) {\r\n switch (item.type) {\r\n case 'Incident':\r\n this.sentCloseIncident.title = 'Se va a cerrar el ticket seleccionado.';\r\n break;\r\n case 'Request':\r\n this.sentCloseIncident.title = 'Se va a cerrar el evento seleccionado. ' +\r\n 'Todos los tickets asociados al evento se cerrarán';\r\n break;\r\n }\r\n this.event = item;\r\n this.sentCloseIncident.show();\r\n }\r\n\r\n private closeEvent() {\r\n this.incidentService.closeEvent(this.event)\r\n .catch((err) => this.handleError(err))\r\n .subscribe((data) => {\r\n if (data.isCorrect) {\r\n this.configGeneral.newToast('¡Exito!', 'Evento cerrado', 'success');\r\n this.event.status = 4;\r\n } else {\r\n this.configGeneral.newToast('¡Error!', 'Error al procesar los datos', 'error');\r\n }\r\n });\r\n }\r\n\r\n private openModalIncident(item: any, acc: string, id: number) {\r\n const initialState = {\r\n title: 'Información del ticket',\r\n accion: acc,\r\n eventId: id,\r\n employee: this.employee\r\n };\r\n\r\n this.modalRef = this.modalService.show(ModalIncidentComponent\r\n , Object.assign({ initialState }\r\n , { class: 'gray modal-lg' }, this.config));\r\n this.modalRef.content.closeBtnName = 'Close';\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result != null) {\r\n switch (acc) {\r\n case ('nuevo'):\r\n if (this.perfilSeleccionado === 'owner') {\r\n this.listEventsFilter.push(result);\r\n this.mostrarElementos(this.itemsPage, this.listEventsFilter);\r\n }\r\n break;\r\n case ('editar'):\r\n case ('reemplazar'):\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","module.exports = \"@charset \\\"UTF-8\\\";\\n.accordion {\\n color: #555555;\\n width: 100%;\\n}\\n.accordion .section {\\n width: 100%;\\n}\\n.accordion .section input[type=radio] {\\n display: none;\\n}\\n.accordion .section input[type=radio]:checked + label {\\n background: #A59663;\\n color: #eeece4;\\n}\\n.accordion .section input[type=radio]:checked + label:before {\\n content: \\\" \\\";\\n position: absolute;\\n border-left: 3px solid #6E6442;\\n height: 100%;\\n left: 0;\\n}\\n.accordion .section input[type=radio]:checked ~ .content {\\n max-height: 300px;\\n opacity: 1;\\n z-index: 10;\\n overflow-y: auto;\\n}\\n.accordion .section label {\\n position: relative;\\n cursor: pointer;\\n padding: 10px 20px;\\n margin: 0px;\\n display: table;\\n background: #222;\\n width: 100%;\\n -webkit-transition: background 0.3s ease-in-out;\\n transition: background 0.3s ease-in-out;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n -o-user-select: none;\\n user-select: none;\\n}\\n.accordion .section label:before {\\n content: \\\" \\\";\\n width: 100%;\\n position: absolute;\\n left: 0;\\n top: 0;\\n height: 1px;\\n border-top: 1px solid #363636;\\n}\\n.accordion .section label:hover {\\n background: #363636;\\n}\\n.accordion .section label span {\\n display: table-cell;\\n vertical-align: middle;\\n color: #eeece4;\\n}\\n.accordion .section:last-of-type {\\n border-bottom: 1px solid #363636;\\n}\\n.accordion .section .content {\\n max-height: 0;\\n -webkit-transition: all 0.4s;\\n transition: all 0.4s;\\n opacity: 0;\\n position: relative;\\n overflow-y: hidden;\\n}\\n*, *:before, *:after {\\n box-sizing: border-box;\\n}\\n.left-menu {\\n background: #222;\\n width: 100%;\\n top: 0;\\n}\\n.accordion {\\n font-size: 13px;\\n}\\n.accordion .section .content {\\n padding: 0 15px;\\n}\\n.accordion .section input[type=radio] {\\n display: none;\\n}\\n.accordion .section input[type=radio]:checked ~ .content {\\n padding: 5px;\\n}\\nul {\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n list-style: none;\\n}\\nul li {\\n padding: 7px;\\n}\\nul li i {\\n font-size: 13px;\\n width: 15px;\\n margin-right: 10px;\\n}\\nul li span:hover {\\n color: #A59663;\\n}\\nul li:hover {\\n cursor: pointer;\\n}\\nul li:hover i {\\n color: #A59663;\\n}\\np:not(:last-child) {\\n margin: 0 0 20px;\\n}\\n.tabMain {\\n margin: 0 -5px;\\n}\\n.sectionTab {\\n display: none;\\n padding: 20px 0 0;\\n border-top: 1px solid #abc;\\n}\\n.inputTab {\\n display: none;\\n}\\n.labelTab {\\n display: inline-block;\\n margin: 0 0 -1px;\\n padding: 15px 25px;\\n font-weight: 600;\\n text-align: center;\\n color: #abc;\\n border: 1px solid transparent;\\n}\\n.labelTab:before {\\n font-family: fontawesome;\\n font-weight: normal;\\n margin-right: 10px;\\n}\\n.labelTab[for*=\\\"1\\\"]:before {\\n content: \\\"\\\";\\n}\\n.labelTab[for*=\\\"2\\\"]:before {\\n content: \\\"\\\";\\n}\\n.labelTab[for*=\\\"3\\\"]:before {\\n content: \\\"\\\";\\n}\\n.labelTab[for*=\\\"4\\\"]:before {\\n content: \\\"\\\";\\n}\\n.labelTab:hover {\\n color: #789;\\n cursor: pointer;\\n}\\n.inputTab:checked + .labelTab {\\n color: #0af;\\n border: 1px solid #abc;\\n border-top: 2px solid #0af;\\n border-bottom: 1px solid #fff;\\n}\\n#tab1:checked ~ #content1,\\n#tab2:checked ~ #content2,\\n#tab3:checked ~ #content3,\\n#tab4:checked ~ #content4 {\\n display: block;\\n}\\n@media screen and (max-width: 800px) {\\n .labelTab {\\n font-size: 0;\\n }\\n\\n .labelTab:before {\\n margin: 0;\\n font-size: 18px;\\n }\\n}\\n@media screen and (max-width: 500px) {\\n .labelTab {\\n padding: 15px;\\n }\\n}\\n.indicador {\\n opacity: 1;\\n}\\n.indicador:hover {\\n opacity: 0.9;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvaW5jaWRlbnQvaW5jaWRlbnQuc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvaW5jaWRlbnQvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxpbmNpZGVudFxcaW5jaWRlbnQuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7RUFDSSxjQUFBO0VBQ0EsV0FBQTtBREVKO0FDQUU7RUFDRSxXQUFBO0FER0o7QUNERTtFQUNFLGFBQUE7QURJSjtBQ0ZFO0VBQ0UsbUJBQUE7RUFDQSxjQUFBO0FES0o7QUNIRTtFQUNFLFlBQUE7RUFDQSxrQkFBQTtFQUNBLDhCQUFBO0VBQ0EsWUFBQTtFQUNBLE9BQUE7QURNSjtBQ0pFO0VBQ0UsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0FET0o7QUNMRTtFQUNFLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSwrQ0FBQTtFQUdBLHVDQUFBO0VBQ0EseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtBRFFKO0FDTkU7RUFDRSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxXQUFBO0VBQ0EsNkJBQUE7QURTSjtBQ1BFO0VBQ0UsbUJBQUE7QURVSjtBQ1JFO0VBQ0UsbUJBQUE7RUFDQSxzQkFBQTtFQUNBLGNBQUE7QURXSjtBQ1RFO0VBQ0UsZ0NBQUE7QURZSjtBQ1ZFO0VBQ0UsYUFBQTtFQUNBLDRCQUFBO0VBR0Esb0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtBRGFKO0FDVkU7RUFHRSxzQkFBQTtBRGFKO0FDVkU7RUFDRSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxNQUFBO0FEYUo7QUNWRTtFQUNFLGVBQUE7QURhSjtBQ1hFO0VBQ0UsZUFBQTtBRGNKO0FDWkU7RUFDRSxhQUFBO0FEZUo7QUNaRTtFQUNFLFlBQUE7QURlSjtBQ1pFO0VBQ0UsV0FBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsZ0JBQUE7QURlSjtBQ2JFO0VBQ0UsWUFBQTtBRGdCSjtBQ2RFO0VBQ0UsZUFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtBRGlCSjtBQ2ZFO0VBQ0UsY0FBQTtBRGtCSjtBQ2hCRTtFQUNFLGVBQUE7QURtQko7QUNqQkU7RUFDRSxjQUFBO0FEb0JKO0FDakJFO0VBQ0UsZ0JBQUE7QURvQko7QUNqQkE7RUFDRSxjQUFBO0FEb0JGO0FDZkU7RUFDRSxhQUFBO0VBQ0EsaUJBQUE7RUFDQSwwQkFBQTtBRGtCSjtBQ2ZFO0VBQ0UsYUFBQTtBRGtCSjtBQ2ZFO0VBQ0UscUJBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSw2QkFBQTtBRGtCSjtBQ2ZFO0VBQ0Usd0JBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0FEa0JKO0FDZkU7RUFBNkIsWUFBQTtBRG1CL0I7QUNsQkU7RUFBNkIsWUFBQTtBRHNCL0I7QUNyQkU7RUFBNkIsWUFBQTtBRHlCL0I7QUN4QkU7RUFBNkIsWUFBQTtBRDRCL0I7QUMxQkU7RUFDRSxXQUFBO0VBQ0EsZUFBQTtBRDZCSjtBQzFCRTtFQUNFLFdBQUE7RUFDQSxzQkFBQTtFQUNBLDBCQUFBO0VBQ0EsNkJBQUE7QUQ2Qko7QUMxQkU7Ozs7RUFJRSxjQUFBO0FENkJKO0FDMUJFO0VBQ0U7SUFDRSxZQUFBO0VENkJKOztFQzNCRTtJQUNFLFNBQUE7SUFDQSxlQUFBO0VEOEJKO0FBQ0Y7QUMzQkU7RUFDRTtJQUNFLGFBQUE7RUQ2Qko7QUFDRjtBQzFCRTtFQUVFLFVBQUE7QUQyQko7QUN6QkU7RUFFRSxZQUFBO0FEMkJKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvaW5jaWRlbnQvaW5jaWRlbnQuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi5hY2NvcmRpb24ge1xuICBjb2xvcjogIzU1NTU1NTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5hY2NvcmRpb24gLnNlY3Rpb24ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmFjY29yZGlvbiAuc2VjdGlvbiBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5hY2NvcmRpb24gLnNlY3Rpb24gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArIGxhYmVsIHtcbiAgYmFja2dyb3VuZDogI0E1OTY2MztcbiAgY29sb3I6ICNlZWVjZTQ7XG59XG5cbi5hY2NvcmRpb24gLnNlY3Rpb24gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzZFNjQ0MjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xufVxuXG4uYWNjb3JkaW9uIC5zZWN0aW9uIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgfiAuY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDMwMHB4O1xuICBvcGFjaXR5OiAxO1xuICB6LWluZGV4OiAxMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmFjY29yZGlvbiAuc2VjdGlvbiBsYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIG1hcmdpbjogMHB4O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgYmFja2dyb3VuZDogIzIyMjtcbiAgd2lkdGg6IDEwMCU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLWluLW91dDtcbiAgLW1zLXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UtaW4tb3V0O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1vLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmFjY29yZGlvbiAuc2VjdGlvbiBsYWJlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIiBcIjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzNjM2MzY7XG59XG5cbi5hY2NvcmRpb24gLnNlY3Rpb24gbGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjMzYzNjM2O1xufVxuXG4uYWNjb3JkaW9uIC5zZWN0aW9uIGxhYmVsIHNwYW4ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjb2xvcjogI2VlZWNlNDtcbn1cblxuLmFjY29yZGlvbiAuc2VjdGlvbjpsYXN0LW9mLXR5cGUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzM2MzYzNjtcbn1cblxuLmFjY29yZGlvbiAuc2VjdGlvbiAuY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHM7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuNHM7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgMC40cztcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHM7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xufVxuXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubGVmdC1tZW51IHtcbiAgYmFja2dyb3VuZDogIzIyMjtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogMDtcbn1cblxuLmFjY29yZGlvbiB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLmFjY29yZGlvbiAuc2VjdGlvbiAuY29udGVudCB7XG4gIHBhZGRpbmc6IDAgMTVweDtcbn1cblxuLmFjY29yZGlvbiAuc2VjdGlvbiBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5hY2NvcmRpb24gLnNlY3Rpb24gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCB+IC5jb250ZW50IHtcbiAgcGFkZGluZzogNXB4O1xufVxuXG51bCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbnVsIGxpIHtcbiAgcGFkZGluZzogN3B4O1xufVxuXG51bCBsaSBpIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB3aWR0aDogMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG51bCBsaSBzcGFuOmhvdmVyIHtcbiAgY29sb3I6ICNBNTk2NjM7XG59XG5cbnVsIGxpOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG51bCBsaTpob3ZlciBpIHtcbiAgY29sb3I6ICNBNTk2NjM7XG59XG5cbnA6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbjogMCAwIDIwcHg7XG59XG5cbi50YWJNYWluIHtcbiAgbWFyZ2luOiAwIC01cHg7XG59XG5cbi5zZWN0aW9uVGFiIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMjBweCAwIDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYWJjO1xufVxuXG4uaW5wdXRUYWIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubGFiZWxUYWIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAwIC0xcHg7XG4gIHBhZGRpbmc6IDE1cHggMjVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2FiYztcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5sYWJlbFRhYjpiZWZvcmUge1xuICBmb250LWZhbWlseTogZm9udGF3ZXNvbWU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLmxhYmVsVGFiW2Zvcio9XCIxXCJdOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi74eLXCI7XG59XG5cbi5sYWJlbFRhYltmb3IqPVwiMlwiXTpiZWZvcmUge1xuICBjb250ZW50OiBcIu+FvVwiO1xufVxuXG4ubGFiZWxUYWJbZm9yKj1cIjNcIl06YmVmb3JlIHtcbiAgY29udGVudDogXCLvhb1cIjtcbn1cblxuLmxhYmVsVGFiW2Zvcio9XCI0XCJdOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi74W9XCI7XG59XG5cbi5sYWJlbFRhYjpob3ZlciB7XG4gIGNvbG9yOiAjNzg5O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5pbnB1dFRhYjpjaGVja2VkICsgLmxhYmVsVGFiIHtcbiAgY29sb3I6ICMwYWY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYmM7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMGFmO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjtcbn1cblxuI3RhYjE6Y2hlY2tlZCB+ICNjb250ZW50MSxcbiN0YWIyOmNoZWNrZWQgfiAjY29udGVudDIsXG4jdGFiMzpjaGVja2VkIH4gI2NvbnRlbnQzLFxuI3RhYjQ6Y2hlY2tlZCB+ICNjb250ZW50NCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAubGFiZWxUYWIge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gIC5sYWJlbFRhYjpiZWZvcmUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gIC5sYWJlbFRhYiB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgfVxufVxuLmluZGljYWRvciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5pbmRpY2Fkb3I6aG92ZXIge1xuICBvcGFjaXR5OiAwLjk7XG59IiwiLmFjY29yZGlvbiB7XHJcbiAgICBjb2xvcjogIzU1NTU1NTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICAuYWNjb3JkaW9uIC5zZWN0aW9uIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICAuYWNjb3JkaW9uIC5zZWN0aW9uIGlucHV0W3R5cGU9J3JhZGlvJ10ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbiAgLmFjY29yZGlvbiAuc2VjdGlvbiBpbnB1dFt0eXBlPSdyYWRpbyddOmNoZWNrZWQgKyBsYWJlbCB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjQTU5NjYzO1xyXG4gICAgY29sb3I6IHJnYigyMzgsIDIzNiwgMjI4KVxyXG4gIH1cclxuICAuYWNjb3JkaW9uIC5zZWN0aW9uIGlucHV0W3R5cGU9J3JhZGlvJ106Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIiBcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzZFNjQ0MjtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgfVxyXG4gIC5hY2NvcmRpb24gLnNlY3Rpb24gaW5wdXRbdHlwZT0ncmFkaW8nXTpjaGVja2VkIH4gLmNvbnRlbnQge1xyXG4gICAgbWF4LWhlaWdodDogMzAwcHg7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgei1pbmRleDogMTA7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIH1cclxuICAuYWNjb3JkaW9uIC5zZWN0aW9uIGxhYmVsIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcclxuICAgIG1hcmdpbjogMHB4O1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMjIyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLWluLW91dDtcclxuICAgIC1tb3otdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UtaW4tb3V0O1xyXG4gICAgLW1zLXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLWluLW91dDtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLWluLW91dDtcclxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICB9XHJcbiAgLmFjY29yZGlvbiAuc2VjdGlvbiBsYWJlbDpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCIgXCI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMzYzNjM2O1xyXG4gIH1cclxuICAuYWNjb3JkaW9uIC5zZWN0aW9uIGxhYmVsOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICMzNjM2MzY7XHJcbiAgfVxyXG4gIC5hY2NvcmRpb24gLnNlY3Rpb24gbGFiZWwgc3BhbiB7XHJcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIGNvbG9yOiByZ2IoMjM4LCAyMzYsIDIyOClcclxuICB9XHJcbiAgLmFjY29yZGlvbiAuc2VjdGlvbjpsYXN0LW9mLXR5cGUge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzNjM2MzY7XHJcbiAgfVxyXG4gIC5hY2NvcmRpb24gLnNlY3Rpb24gLmNvbnRlbnQge1xyXG4gICAgbWF4LWhlaWdodDogMDtcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHM7XHJcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjRzO1xyXG4gICAgLW1zLXRyYW5zaXRpb246IGFsbCAwLjRzO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNHM7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG4gIH1cclxuICBcclxuICAqLCAqOmJlZm9yZSwgKjphZnRlciB7XHJcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIH1cclxuICBcclxuICAubGVmdC1tZW51IHtcclxuICAgIGJhY2tncm91bmQ6ICMyMjI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRvcDogMDtcclxuICB9XHJcbiAgXHJcbiAgLmFjY29yZGlvbiB7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgfVxyXG4gIC5hY2NvcmRpb24gLnNlY3Rpb24gLmNvbnRlbnQge1xyXG4gICAgcGFkZGluZzogMCAxNXB4O1xyXG4gIH1cclxuICAuYWNjb3JkaW9uIC5zZWN0aW9uIGlucHV0W3R5cGU9J3JhZGlvJ10ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIFxyXG4gIH1cclxuICAuYWNjb3JkaW9uIC5zZWN0aW9uIGlucHV0W3R5cGU9J3JhZGlvJ106Y2hlY2tlZCB+IC5jb250ZW50IHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICB9XHJcbiAgXHJcbiAgdWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICB9XHJcbiAgdWwgbGkge1xyXG4gICAgcGFkZGluZzogN3B4O1xyXG4gIH1cclxuICB1bCBsaSBpIHtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gIH1cclxuICB1bCBsaSBzcGFuOmhvdmVyIHtcclxuICAgIGNvbG9yOiAjQTU5NjYzO1xyXG4gIH1cclxuICB1bCBsaTpob3ZlciB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG4gIHVsIGxpOmhvdmVyIGkge1xyXG4gICAgY29sb3I6ICNBNTk2NjM7XHJcbiAgfVxyXG5cclxuICBwOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgbWFyZ2luOiAwIDAgMjBweDtcclxuICB9XHJcblxyXG4udGFiTWFpbiB7XHJcbiAgbWFyZ2luOiAwIC01cHhcclxuICAvLyBwYWRkaW5nOiAyMHB4O1xyXG4gIC8vIGJhY2tncm91bmQ6ICNmZmY7XHJcbn1cclxuICBcclxuICAuc2VjdGlvblRhYiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcGFkZGluZzogMjBweCAwIDA7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2FiYztcclxuICB9XHJcbiAgXHJcbiAgLmlucHV0VGFiIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIFxyXG4gIC5sYWJlbFRhYiB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW46IDAgMCAtMXB4O1xyXG4gICAgcGFkZGluZzogMTVweCAyNXB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiAjYWJjO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG4gIFxyXG4gIC5sYWJlbFRhYjpiZWZvcmUge1xyXG4gICAgZm9udC1mYW1pbHk6IGZvbnRhd2Vzb21lO1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICB9XHJcbiAgXHJcbiAgLmxhYmVsVGFiW2Zvcio9JzEnXTpiZWZvcmUgeyBjb250ZW50OiAnXFxmMWNiJzsgfVxyXG4gIC5sYWJlbFRhYltmb3IqPScyJ106YmVmb3JlIHsgY29udGVudDogJ1xcZjE3ZCc7IH1cclxuICAubGFiZWxUYWJbZm9yKj0nMyddOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGYxN2QnOyB9XHJcbiAgLmxhYmVsVGFiW2Zvcio9JzQnXTpiZWZvcmUgeyBjb250ZW50OiAnXFxmMTdkJzsgfVxyXG5cclxuICAubGFiZWxUYWI6aG92ZXIge1xyXG4gICAgY29sb3I6ICM3ODk7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG4gIFxyXG4gIC5pbnB1dFRhYjpjaGVja2VkICsgLmxhYmVsVGFiIHtcclxuICAgIGNvbG9yOiAjMGFmO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2FiYztcclxuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMGFmO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmY7XHJcbiAgfVxyXG4gIFxyXG4gICN0YWIxOmNoZWNrZWQgfiAjY29udGVudDEsXHJcbiAgI3RhYjI6Y2hlY2tlZCB+ICNjb250ZW50MixcclxuICAjdGFiMzpjaGVja2VkIH4gI2NvbnRlbnQzLFxyXG4gICN0YWI0OmNoZWNrZWQgfiAjY29udGVudDQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG4gIFxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XHJcbiAgICAubGFiZWxUYWIge1xyXG4gICAgICBmb250LXNpemU6IDA7XHJcbiAgICB9XHJcbiAgICAubGFiZWxUYWI6YmVmb3JlIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgICAubGFiZWxUYWIge1xyXG4gICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAuaW5kaWNhZG9yXHJcbiAge1xyXG4gICAgb3BhY2l0eToxO1xyXG4gIH1cclxuICAuaW5kaWNhZG9yOmhvdmVyXHJcbiAge1xyXG4gICAgb3BhY2l0eTouOTtcclxuICB9XHJcbiJdfQ== */\"","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoPeriod } from 'app/shared/models/payroll/dto-period.model';\r\nimport { IDtoMovementRestrictionCalendar } from 'app/shared/models/payroll/dto-movement-restriction-calendar.model';\r\nimport { IDtoPayrollEmployee } from 'app/shared/models/employee/dto-payroll-employee.model';\r\nimport { IDtoEmployeeFilter } from 'app/shared/models/employee/dto-employee-filter.model';\r\nimport { IGeneralData } from 'app/shared/models/recruitment/general-data.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IStudy } from 'app/shared/models/recruitment/study.model';\r\nimport { IDtoEmployeeBasicData } from 'app/shared/models/employee/dto-employee-basic-data.model';\r\nimport { IDtoEmployeePaymentData } from 'app/shared/models/employee/dto-employee-payment-data.model';\r\nimport { IDtoPayrollEmployeeDetail } from 'app/shared/models/employee/dto-payroll-employee-detail.model';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoLiquidation } from 'app/shared/models/legal/dto-liquidation.model';\r\nimport { IDtoSettlement } from 'app/shared/models/legal/dto-settlement.model';\r\nimport { IDtoDiscountDismissal } from 'app/shared/models/legal/dto-discount-dismissal.model';\r\n\r\n@Injectable()\r\nexport class LiquidationService {\r\n private requestUrl = '';\r\n private recruitmentUrl = '';\r\n private moneyUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n this.moneyUrl = this.configurationService.serverSettings.moneyUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n this.moneyUrl = this.configurationService.serverSettings.moneyUrl;\r\n });\r\n }\r\n }\r\n public getliquidation(dto: IDtoLiquidation): Observable {\r\n const url = `${this.requestUrl}api/Liquidations/getliquidation/`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getDetailSettlementEmployee(dto: IDtoLiquidation): Observable {\r\n const url = `${this.requestUrl}api/Liquidations/getDetailSettlementEmployee/`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addLiquidation(dto: IDtoLiquidation): Observable {\r\n const url = `${this.requestUrl}api/Liquidations/addLiquidation/`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getLiquidationsByStatusId(statusId: number): Observable {\r\n const url = `${this.requestUrl}api/Liquidations/getLiquidationsByStatusId?statusId=${statusId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getLiquidationById(liquidationId: number): Observable {\r\n const url = `${this.requestUrl}api/Liquidations/getLiquidationById?liquidationId=${liquidationId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateLiquidation(dto: IDtoLiquidation): Observable {\r\n const url = `${this.requestUrl}api/Liquidations/updateLiquidation/`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getApproverConciliationOwn(): Observable {\r\n const url = `${this.requestUrl}api/Approvers/getApproverConciliationOwn`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public approveOwnConciliation(liquidationId: number): Observable {\r\n const url = `${this.requestUrl}api/Liquidations/approveOwnConciliation?liquidationId=${liquidationId}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public sentRequestMoney(dto: IDtoLiquidation): Observable {\r\n const url = `${this.requestUrl}api/Liquidations/sentRequestMoney/`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public hasLiquidation(employeeId: number, requisitionId: number): Observable {\r\n const url = `${this.requestUrl}api/Liquidations/hasLiquidation?employeeId=${employeeId}&requisitionId=${requisitionId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public downloadFileLiquidation(employeeId: number, liquidationId: number, requisitionId: number): Observable {\r\n const url = `${this.recruitmentUrl}api/Templates/getLiquidation?employeeId=${employeeId}&liquidationId=${liquidationId}&requisitionId=${requisitionId}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public downloadFileLiquidationSimple(employeeId: number, liquidationId: number, requisitionId: number): Observable {\r\n const url = `${this.recruitmentUrl}api/Templates/getLiquidationSimple?employeeId=${employeeId}&liquidationId=${liquidationId}&requisitionId=${requisitionId}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public obtenerDatosSolicitudDinero(idRegistroModulo: number, modulo: string): Observable {\r\n const url = `${this.moneyUrl}api/Solicitudes/obtenerDatosSolicitud?idRegistroModulo=${idRegistroModulo}&modulo=${modulo}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogDiscountTypes(): Observable {\r\n const url = `${this.requestUrl}api/DiscountTypes/getCatalogDiscountTypes`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getDiscountDismissals(employeeId: number, requisitionId: number): Observable {\r\n const url = `${this.requestUrl}api/DiscountDismissals/getDiscountDismissals?employeeId=${employeeId}&requisitionId=${requisitionId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addDiscountDismissal(dto: IDtoDiscountDismissal): Observable {\r\n const url = `${this.requestUrl}api/DiscountDismissals/addDiscountDismissal/`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public deleteDiscountDismissal(id: number): Observable {\r\n const url = `${this.requestUrl}api/DiscountDismissals/deleteDiscountDismissal?id=${id}`;\r\n return this.service.delete(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { IUser } from 'app/shared/models/user.model';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { IDtoUser } from 'app/shared/models/security/dto-user.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\n@Component({\r\n selector: 'login',\r\n templateUrl: 'login.template.html'\r\n})\r\nexport class LoginComponent implements OnInit {\r\n private frmLogin: FormGroup;\r\n private user: IUser;\r\n private subscriptionLogin: Subscription;\r\n private authenticated = false;\r\n /**Validadores */\r\n private errorMessages: any;\r\n /**Notificaciones */\r\n private configToast: any;\r\n constructor(private formBuilder: FormBuilder\r\n , private serviceSecurity: SecurityService\r\n , config: AppConfig\r\n , public snotifyService: SnotifyService\r\n , private spinner: NgxSpinnerService\r\n , private identityService: IdentityService\r\n , private configGeneral: AppConfig) {\r\n this.user = serviceSecurity.MapNewUsuario();\r\n this.user.system = config.getConfig().name;\r\n this.frmLogin = formBuilder.group({\r\n username: [this.user.username, Validators.required],\r\n password: [this.user.password, Validators.required]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptionLogin = this.serviceSecurity.authenticationChallenge$.subscribe((res) => {\r\n this.authenticated = res;\r\n if (this.authenticated) {\r\n this.serviceSecurity.GetRolesUser('/dashboard/init');\r\n this.spinner.hide();\r\n } else {\r\n this.spinner.hide();\r\n this.snotifyService.error('Datos incorrectos'\r\n , 'Iniciar sesión', this.configToast);\r\n }\r\n });\r\n }\r\n\r\n private onSubmit(value: IUser) {\r\n\r\n if (this.frmLogin.valid) {\r\n this.spinner.show();\r\n this.login(value);\r\n } else {\r\n // validate all form fields\r\n }\r\n }\r\n\r\n private login(usuario: IUser) {\r\n usuario.code = this.user.code;\r\n usuario.system = this.user.system;\r\n this.serviceSecurity.GetAuthorizationUser(usuario);\r\n }\r\n\r\n private restorePassword(): void {\r\n const usernameValue = this.frmLogin.controls['username'].value;\r\n if (usernameValue === 'solicitudempleo@redpromex.com') {\r\n return;\r\n }\r\n\r\n this.spinner.show();\r\n let user = {} as IDtoUser;\r\n user.username = usernameValue;\r\n this.identityService.restorePassword(user)\r\n .subscribe(\r\n (x) => {\r\n this.configGeneral.notificationSuccessError(x)\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoMessageDetail } from 'app/shared/models/dto-message-detail.model';\r\n\r\n@Injectable()\r\nexport class MessageService {\r\n private messageUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.messageUrl = this.configurationService.serverSettings.messageUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.messageUrl = this.configurationService.serverSettings.messageUrl;\r\n });\r\n }\r\n }\r\n public addMessageDetail(dto: IDtoMessageDetail): Observable {\r\n const url =`${this.messageUrl}MessageDetail/addMessageDetail/`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public sendMessage(dto: IDtoMessageDetail): Observable {\r\n const url =`${this.messageUrl}Message/sendMessage/`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IDtoRequisitionFilter } from 'app/shared/models/opening/dto-requisition-filter.model';\r\nimport { IDtoPosition } from 'app/shared/models/opening/dto-position.model';\r\nimport { IDtoCalculateSalary } from 'app/shared/models/position/dto-calculate-salary.model';\r\nimport { IDtoWorkingDay } from 'app/shared/models/position/dto-working-day.model';\r\nimport { IDtoRequisitionPosition } from 'app/shared/models/opening/dto-requisition-position.model';\r\nimport { IDtoRequisitionTracking } from 'app/shared/models/opening/dto-requisition-tracking.model';\r\n\r\n@Injectable()\r\nexport class OpeningService {\r\n private openingUrl = '';\r\n private requestUrl = '';\r\n private recruitmentUrl = '';\r\n private quoteUrl = '';\r\n constructor(private service: DataService\r\n , private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.openingUrl = this.configurationService.serverSettings.openingUrl;\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.openingUrl = this.configurationService.serverSettings.openingUrl;\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n });\r\n }\r\n }\r\n /**Información de requisiciones */\r\n public addRequisition(data: IDtoRequisition): Observable {\r\n const url = `${this.openingUrl}api/Requisitions`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateRequisition(data: IDtoRequisition): Observable {\r\n const url = `${this.openingUrl}api/Requisitions`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getPositionById(positionId: number): Observable {\r\n const url = `${this.openingUrl}api/Positions/GetRequisitionById?id=${positionId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getRequisitionByFilter(data: IDtoRequisitionFilter): Observable {\r\n const url = `${this.openingUrl}api/Requisitions/GetRequisitionByFilter`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogStatusRequests(): Observable {\r\n const url = this.openingUrl + 'api/statusRequests/getCatalogStatusRequests/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getcatalogFulfillments(): Observable {\r\n const url = this.openingUrl + 'api/fulfillments/getCatalogFulfillments/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogMotiveVacancys(): Observable {\r\n const url = this.openingUrl + 'api/motiveVacancies/getCatalogMotiveVacancies/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogRequisitions(): Observable {\r\n const url = `${this.openingUrl}api/Requisitions`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogRequisitionsByTrademarkId(trademarkId: number): Observable {\r\n const url = `${this.openingUrl}api/Requisitions/getRequisitionsByTrademarkId?trademarkId=${trademarkId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogContractTypes(): Observable {\r\n const url = `${this.requestUrl}api/ContractType/getCatalogContractTypes/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogListEmployeeActive(): Observable {\r\n const url = `${this.requestUrl}api/Employees/getCatalogListEmployeeActive/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPayrollOfficers(): Observable {\r\n const url = `${this.openingUrl}api/PayrollManagers/getCatalogPayrollManagers/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCurrentDate(): Observable {\r\n const url = `${this.requestUrl}api/Dismissals/getCurrentDate/`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public cancelPosition(data: IDtoPosition): Observable {\r\n const url = `${this.openingUrl}api/Positions/cancelPosition`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public pausedPosition(data: IDtoPosition): Observable {\r\n const url = `${this.openingUrl}api/Positions/pausedPosition`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getEmployeeByRequisitionId(requisitionId: string): Observable {\r\n const url = `${this.recruitmentUrl}api/Employees/getEmployeeByRequisitionId?requisitionId=${requisitionId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getPaymentConceptsForOpening(jobId: number): Observable {\r\n const url = `${this.quoteUrl}api/Positions/getPaymentConceptsForOpening?jobId=${jobId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogSupervisors(): Observable {\r\n const url = `${this.openingUrl}api/Supervisors/getCatalogSupervisors/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getWorkingDay(id: number): Observable {\r\n const url = `${this.quoteUrl}api/WorkingDays/getWorkingDay?id=${id}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getRequisitionByPositionId(requisitionId: number): Observable {\r\n const url = `${this.openingUrl}api/Requisitions/getRequisitionByPositionId`;\r\n return this.service.post(url, requisitionId)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateSupervisor(data: IDtoRequisition): Observable {\r\n const url = `${this.openingUrl}api/Requisitions/updateSupervisor`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogStoreRoutes(): Observable {\r\n const url = `${this.openingUrl}api/StoreRoutes/getCatalogStoreRoutes/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addRequisitionTracking(data: IDtoRequisitionTracking): Observable {\r\n const url = `${this.openingUrl}api/RequisitionTrackings/addRequisitionTracking`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public deleteRequisitionTracking(id: number): Observable {\r\n const url = `${this.openingUrl}api/RequisitionTrackings/deleteRequisitionTracking?id=${id}`;\r\n return this.service.delete(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getRequisitionTrackingsByRequisitionId(requisitionId: number): Observable {\r\n const url = `${this.openingUrl}api/RequisitionTrackings/getRequisitionTrackingsByRequisitionId?requisitionId=${requisitionId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateRequisitionTracking(dto: IDtoRequisitionTracking): Observable {\r\n const url = `${this.openingUrl}api/RequisitionTrackings/updateRequisitionTracking`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateOperationObservationRequisitionTracking(dto: IDtoRequisitionTracking): Observable {\r\n const url = `${this.openingUrl}api/RequisitionTrackings/updateOperationObservationRequisitionTracking`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getRequisitionById(requisitionId: number): Observable {\r\n const url = `${this.openingUrl}api/Requisitions/getRequisitionById?requisitionId=${requisitionId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { OpeningService } from '../opening.service';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoCalculateSalary } from 'app/shared/models/position/dto-calculate-salary.model';\r\nimport { saveAs } from 'file-saver';\r\nimport { RecruitmentService } from '../../recruitment/recruitment.service';\r\nimport { IDocument } from 'app/shared/models/recruitment/document.model';\r\nimport { Observable } from 'rxjs';\r\nimport { IDtoWorkingDay } from 'app/shared/models/position/dto-working-day.model';\r\n@Component({\r\n selector: 'app-requisition-detail',\r\n styleUrls: ['./requisition-detail.style.scss'],\r\n templateUrl: 'requisition-detail.template.html'\r\n})\r\nexport class RequisitionDetailComponent implements OnDestroy, OnInit {\r\n /**Variables */\r\n private now: number;\r\n private action = '';\r\n /**Objetos*/\r\n private requisition = {} as IDtoRequisition;\r\n /**Validadores */\r\n private errorMessages: any;\r\n /**Notificaciones */\r\n private configToast: any;\r\n private profile: string;\r\n private salary = {} as IDtoCalculateSalary;\r\n private documents: Observable;\r\n private workingDay = {} as IDtoWorkingDay;\r\n public constructor(private formBuilder: FormBuilder\r\n , private recruitmentService: RecruitmentService\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private openingService: OpeningService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService) {\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.getProfile();\r\n this.now = Date.now();\r\n this.route.params.subscribe((params) => {\r\n if (params['id']) {\r\n setTimeout(() => {\r\n this.spinner.show();\r\n this.action = params['action'];\r\n if (this.configurationService.isReady) {\r\n this.getPositionById(Number(params['id']));\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getPositionById(Number(params['id']));\r\n });\r\n }\r\n }, 2);\r\n }\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n }\r\n private getProfile(): void {\r\n this.profile = this.securityService.getProfileStorage('RequisitionReviews');\r\n }\r\n private getPositionById(positionId: number): void {\r\n this.openingService.getPositionById(positionId).subscribe((res) => {\r\n this.requisition = res.data as IDtoRequisition;\r\n // this.requisition.recruitmentSourceId = this.requisition.recruitmentSourceId == null ? '0' : this.requisition.recruitmentSourceId.toString();\r\n // this.requisition.typeContractId = this.requisition.typeContractId == null ? '0' : this.requisition.typeContractId.toString();\r\n if (this.requisition.admissionDate != null) {\r\n this.requisition.admissionDate = new Date(this.requisition.admissionDate);\r\n }\r\n if (this.requisition.hireDate) {\r\n this.requisition.hireDate = new Date(this.requisition.hireDate);\r\n }\r\n if (this.requisition.requestNumber != null) {\r\n this.getEmployeeByRequisitionId(this.requisition.requestNumber);\r\n }\r\n this.getPaymentConceptsForOpening(this.requisition.quoteJobId);\r\n this.getWorkingDay();\r\n this.spinner.hide();\r\n });\r\n }\r\n private getEmployeeByRequisitionId(requisitionId: string): void {\r\n this.openingService.getEmployeeByRequisitionId(requisitionId).subscribe((res) => {\r\n if (res != null) {\r\n let employee = res.additional.split('|');\r\n this.requisition.employeeName = res.text;\r\n this.requisition.hiringDate = employee[0];\r\n this.requisition.employeeNum = employee[1];\r\n this.documents = this.recruitmentService.getJobCandidateDocumentsByJobCandidateId(+res.id);\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private getPaymentConceptsForOpening(jobId: number): void {\r\n this.openingService.getPaymentConceptsForOpening(jobId).subscribe((res) => {\r\n if (res != null) {\r\n this.salary = res.data as IDtoCalculateSalary;\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private getWorkingDay(): void {\r\n this.openingService.getWorkingDay(this.requisition.workingDayId).subscribe((res) => {\r\n if(res != null) {\r\n this.workingDay = res.data as IDtoWorkingDay;\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private downloadFile(item: IDocument): void {\r\n if (item.id == undefined) {\r\n return;\r\n }\r\n this.recruitmentService.downloadFile(item.id).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n } else {\r\n this.snotifyService.error(res.message\r\n , 'Error', this.configToast);\r\n }\r\n });\r\n }\r\n private receiveRequisitionId(id: number) {\r\n this.requisition.requestNumber = id.toString();\r\n }\r\n}\r\n","module.exports = \"/*========== TABLA 01 =======*/\\n.header-01 {\\n height: 70px;\\n border: 1px solid #dddddd;\\n text-align: left;\\n padding: 20px 0;\\n padding-left: 10px;\\n}\\n.header-02 {\\n background-color: #F8AC5A;\\n height: 70px;\\n border: 1px solid #dddddd;\\n text-align: center;\\n padding: 15px 0;\\n}\\n.mt-8 {\\n margin-top: -8px;\\n}\\n.mt-15 {\\n margin-top: -15px;\\n}\\n.m-header {\\n margin: 0 -14px;\\n}\\n.m-footer {\\n margin: 20px -14px 0 -14px;\\n}\\nth:nth-child(even) {\\n background: #FFF;\\n width: 20%;\\n}\\nth:nth-child(odd) {\\n background: #E6E6E6;\\n width: 15%;\\n}\\nul, li {\\n display: inline;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3Mvb3BlbmluZy9yZXF1aXNpdGlvbi1kZXRhaWwvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxvcGVuaW5nXFxyZXF1aXNpdGlvbi1kZXRhaWxcXHJlcXVpc2l0aW9uLWRldGFpbC5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9vcGVuaW5nL3JlcXVpc2l0aW9uLWRldGFpbC9yZXF1aXNpdGlvbi1kZXRhaWwuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4QkFBQTtBQUNBO0VBQ0ksWUFBQTtFQUNBLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7QUNDSjtBRENBO0VBQ0kseUJBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7QUNFSjtBREFBO0VBQ0ksZ0JBQUE7QUNHSjtBRERBO0VBQ0ksaUJBQUE7QUNJSjtBREZBO0VBQ0ksZUFBQTtBQ0tKO0FESEE7RUFDSSwwQkFBQTtBQ01KO0FESEE7RUFDSSxnQkFBQTtFQUNBLFVBQUE7QUNNSjtBREpBO0VBQ0ksbUJBQUE7RUFDQSxVQUFBO0FDT0o7QURMQTtFQUNJLGVBQUE7QUNRSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL29wZW5pbmcvcmVxdWlzaXRpb24tZGV0YWlsL3JlcXVpc2l0aW9uLWRldGFpbC5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyo9PT09PT09PT09IFRBQkxBIDAxID09PT09PT0qL1xyXG4uaGVhZGVyLTAxe1xyXG4gICAgaGVpZ2h0OjcwcHg7XHJcbiAgICBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7XHJcbiAgICB0ZXh0LWFsaWduOmxlZnQ7XHJcbiAgICBwYWRkaW5nOjIwcHggMDtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweFxyXG59XHJcbi5oZWFkZXItMDIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjojRjhBQzVBO1xyXG4gICAgaGVpZ2h0OjcwcHg7XHJcbiAgICBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7XHJcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuICAgIHBhZGRpbmc6MTVweCAwXHJcbn1cclxuLm10LTgge1xyXG4gICAgbWFyZ2luLXRvcDogLThweFxyXG59XHJcbi5tdC0xNSB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMTVweFxyXG59XHJcbi5tLWhlYWRlciB7XHJcbiAgICBtYXJnaW46IDAgLTE0cHhcclxufVxyXG4ubS1mb290ZXIge1xyXG4gICAgbWFyZ2luOiAyMHB4IC0xNHB4IDAgLTE0cHhcclxufVxyXG5cclxudGg6bnRoLWNoaWxkKGV2ZW4pIHtcclxuICAgIGJhY2tncm91bmQ6ICNGRkY7XHJcbiAgICB3aWR0aDogMjAlO1xyXG59XHJcbnRoOm50aC1jaGlsZChvZGQpIHtcclxuICAgIGJhY2tncm91bmQ6ICNFNkU2RTY7XHJcbiAgICB3aWR0aDogMTUlXHJcbn1cclxudWwsIGxpIHtcclxuICAgIGRpc3BsYXk6aW5saW5lXHJcbn1cclxuXHJcbiIsIi8qPT09PT09PT09PSBUQUJMQSAwMSA9PT09PT09Ki9cbi5oZWFkZXItMDEge1xuICBoZWlnaHQ6IDcwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4uaGVhZGVyLTAyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y4QUM1QTtcbiAgaGVpZ2h0OiA3MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE1cHggMDtcbn1cblxuLm10LTgge1xuICBtYXJnaW4tdG9wOiAtOHB4O1xufVxuXG4ubXQtMTUge1xuICBtYXJnaW4tdG9wOiAtMTVweDtcbn1cblxuLm0taGVhZGVyIHtcbiAgbWFyZ2luOiAwIC0xNHB4O1xufVxuXG4ubS1mb290ZXIge1xuICBtYXJnaW46IDIwcHggLTE0cHggMCAtMTRweDtcbn1cblxudGg6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZDogI0ZGRjtcbiAgd2lkdGg6IDIwJTtcbn1cblxudGg6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kOiAjRTZFNkU2O1xuICB3aWR0aDogMTUlO1xufVxuXG51bCwgbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59Il19 */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { RecruitmentService } from 'app/views/appviews/recruitment/recruitment.service';\r\nimport { OpeningService } from '../../opening.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { WorkingDayService } from 'app/views/appviews/quote/working-day.service';\r\nimport { DatePipe } from '@angular/common';\r\n@Component({\r\n selector: '[requisition-edit]',\r\n templateUrl: './requisition-edit.template.html',\r\n styleUrls: ['./requisition-edit.style.scss']\r\n})\r\nexport class RequisitionEditComponent implements OnInit, OnChanges {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formGeneralData: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Catalogos */\r\n private catalogContractTypes: Observable;\r\n private catalogPayrollOfficers: Observable;\r\n private catalogSupervisors: Observable;\r\n private catalogWorkingDays: Observable;\r\n private catalogStoreRoutes: ISelect[];\r\n /**Inputs */\r\n @Input() private requisition: IDtoRequisition;\r\n private action: string;\r\n @Output() getRequisitionId = new EventEmitter();\r\n @Output() routeName = new EventEmitter();\r\n private locale: string = 'es';\r\n /**Securty */\r\n private showRoles: any;\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private openingService: OpeningService\r\n , private recruitmentService: RecruitmentService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private identityService: IdentityService\r\n , private workingDayService: WorkingDayService\r\n , public datepipe: DatePipe) {\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n this.initializeFormGerneralData();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n if (this.configurationService.isReady) {\r\n this.getCatalog();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getCatalog();\r\n });\r\n }\r\n this.action = this.requisition.requisitionId > 0 ? 'new' : 'update';\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.requisition.currentValue.positionId !== undefined && changes.requisition.currentValue.positionId !== null) {\r\n if (this.requisition.positionId > 0) {\r\n this.patchValueGeneralData();\r\n this.catalogWorkingDays = this.workingDayService.getCatalogWorkingDays(this.requisition.companyId);\r\n }\r\n }\r\n }\r\n private getCatalog() {\r\n this.catalogContractTypes = this.openingService.getCatalogContractTypes();\r\n this.catalogPayrollOfficers = this.openingService.getCatalogPayrollOfficers();\r\n this.catalogSupervisors = this.openingService.getCatalogSupervisors();\r\n this.openingService.getCatalogStoreRoutes().subscribe(x => {\r\n this.catalogStoreRoutes = x;\r\n });\r\n }\r\n private initializeFormGerneralData() {\r\n this.formGeneralData = this.formBuilder.group({\r\n route: [null, [Validators.required]],\r\n operationObservation: [null, [Validators.required, Validators.maxLength(500)]],\r\n clientInterview: [null, [Validators.required]],\r\n payrollOfficerId: [null, [Validators.required]],\r\n requisitionTypeContractId: [null, [Validators.required]],\r\n supervisorId: [null, [Validators.required]],\r\n workingDayId: [null, [Validators.required]],\r\n endContractDate: [null]\r\n });\r\n }\r\n private submitForm(form: FormGroup) {\r\n if (form.valid) {\r\n const value = form.value;\r\n this.requisition.operationObservation = value.operationObservation;\r\n this.requisition.clientInterview = value.clientInterview;\r\n this.requisition.payrollOfficerId = value.payrollOfficerId;\r\n this.requisition.supervisorId = value.supervisorId;\r\n this.requisition.workingDayId = value.workingDayId;\r\n this.requisition.requisitionTypeContractId = value.requisitionTypeContractId;\r\n this.requisition.statusRequestId = 2;\r\n if (value.requisitionTypeContractId == 1){\r\n this.requisition.endContractDate = new Date(this.datepipe.transform(value.endContractDate, 'yyyy-MM-dd'));\r\n }\r\n else{\r\n this.requisition.endContractDate = null;\r\n }\r\n this.requisition.route = value.route.toString();\r\n this.requisition.routeNames = this.catalogStoreRoutes.filter(x => value.route.includes(x.id)).map(a => a.text).toString();\r\n\r\n if (this.requisition.requisitionId > 0) {\r\n this.updateRequisition();\r\n } else {\r\n this.addRequisition();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(form);\r\n }\r\n }\r\n private addRequisition(): void {\r\n this.requisition.coordinatorId = this.showRoles.employeeId;\r\n this.openingService.addRequisition(this.requisition).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n this.requisition = x.data as IDtoRequisition\r\n this.getRequisitionId.emit(+this.requisition.requisitionId)\r\n this.addModuleLogRequistion();\r\n this.addModuleLogPosition();\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private updateRequisition(): void {\r\n this.requisition.coordinatorId = this.showRoles.employeeId;\r\n this.openingService.updateRequisition(this.requisition).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n this.requisition = x.data as IDtoRequisition\r\n this.addModuleLogRequistion();\r\n this.addModuleLogPosition();\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchValueGeneralData(): void {\r\n if (this.requisition.endContractDate === null) {\r\n let transformedDate = new Date();\r\n let timezoneOffset = transformedDate.getTimezoneOffset();\r\n transformedDate.setMinutes(transformedDate.getMinutes() + timezoneOffset);\r\n this.requisition.endContractDate = transformedDate;\r\n }\r\n else {\r\n let transformedDate = new Date(this.datepipe.transform(this.requisition.endContractDate, 'yyyy-MM-dd'));\r\n let timezoneOffset = transformedDate.getTimezoneOffset();\r\n transformedDate.setMinutes(transformedDate.getMinutes() + timezoneOffset);\r\n this.requisition.endContractDate = transformedDate;\r\n }\r\n this.formGeneralData.patchValue(this.requisition);\r\n if (this.requisition.route != null) {\r\n this.formGeneralData.get('route').setValue(this.requisition.route.split(','));\r\n }\r\n }\r\n private addModuleLogRequistion(): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Requisitions';\r\n dto.module = 'requisitionReviews';\r\n dto.action = this.action;\r\n dto.registryAffectedId = this.requisition.id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n private addModuleLogPosition(): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Positions';\r\n dto.module = 'requisitionReviews';\r\n dto.action = 'release';\r\n dto.registryAffectedId = this.requisition.positionId;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n contractDate() {\r\n let id = this.formGeneralData.get('requisitionTypeContractId').value;\r\n if (id == 1) {\r\n this.formGeneralData.get('endContractDate').setValidators([Validators.required]);\r\n } else {\r\n this.formGeneralData.get('endContractDate').clearValidators();\r\n }\r\n this.formGeneralData.get('endContractDate').updateValueAndValidity();\r\n }\r\n}\r\n\r\n","module.exports = \"/* stylelint-disable order/properties-alphabetical-order */\\n/* stylelint-enable */\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n@-webkit-keyframes fake {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n@keyframes fake {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\nbody {\\n -webkit-animation: fake 1s infinite;\\n animation: fake 1s infinite;\\n}\\n.worko-tabs {\\n margin: 0 15px -30px 0;\\n width: 98%;\\n}\\n.worko-tabs .state {\\n position: absolute;\\n left: -10000px;\\n}\\n.worko-tabs .flex-tabs {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n flex-wrap: wrap;\\n padding-left: 15px;\\n}\\n.worko-tabs .flex-tabs .tab {\\n -webkit-box-flex: 1;\\n flex-grow: 1;\\n max-height: 40px;\\n}\\n.worko-tabs .flex-tabs .panel {\\n background-color: #fff;\\n padding-left: 30px;\\n display: none;\\n width: 100%;\\n flex-basis: auto;\\n}\\n.worko-tabs .tab {\\n display: inline-block;\\n padding: 10px;\\n vertical-align: top;\\n background-color: #eee;\\n cursor: hand;\\n cursor: pointer;\\n border-left: 10px solid #ccc;\\n}\\n.worko-tabs .tab:hover {\\n background-color: #fff;\\n}\\n#tab-one:checked ~ .tabs #tab-one-label,\\n#tab-two:checked ~ .tabs #tab-two-label {\\n background-color: #fff;\\n cursor: default;\\n border-left-color: #1ab394;\\n}\\n#tab-one:checked ~ .tabs #tab-one-panel,\\n#tab-two:checked ~ .tabs #tab-two-panel {\\n display: block;\\n}\\n@media (max-width: 600px) {\\n .flex-tabs {\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n }\\n .flex-tabs .tab {\\n background: #fff;\\n border-bottom: 1px solid #ccc;\\n }\\n .flex-tabs .tab:last-of-type {\\n border-bottom: none;\\n }\\n .flex-tabs #tab-one-label {\\n -webkit-box-ordinal-group: 2;\\n order: 1;\\n }\\n .flex-tabs #tab-two-label {\\n -webkit-box-ordinal-group: 4;\\n order: 3;\\n }\\n .flex-tabs #tab-one-panel {\\n -webkit-box-ordinal-group: 3;\\n order: 2;\\n }\\n .flex-tabs #tab-two-panel {\\n -webkit-box-ordinal-group: 5;\\n order: 4;\\n }\\n\\n #tab-one:checked ~ .tabs #tab-one-label,\\n#tab-two:checked ~ .tabs #tab-two-label {\\n border-bottom: none;\\n }\\n\\n #tab-one:checked ~ .tabs #tab-one-panel,\\n#tab-two:checked ~ .tabs #tab-two-panel {\\n border-bottom: 1px solid #ccc;\\n }\\n}\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3Mvb3BlbmluZy9yZXF1aXNpdGlvbi1kZXRhaWwvcmVxdWlzaXRpb24tZWRpdC9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXG9wZW5pbmdcXHJlcXVpc2l0aW9uLWRldGFpbFxccmVxdWlzaXRpb24tZWRpdFxccmVxdWlzaXRpb24tZWRpdC5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9vcGVuaW5nL3JlcXVpc2l0aW9uLWRldGFpbC9yZXF1aXNpdGlvbi1lZGl0L0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3RkaW4iLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL29wZW5pbmcvcmVxdWlzaXRpb24tZGV0YWlsL3JlcXVpc2l0aW9uLWVkaXQvcmVxdWlzaXRpb24tZWRpdC5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CQSwwREFBQTtBQU9BLHFCQUFBO0FDeEJBO0VBQ0UsaUJBQUE7QUNBRjtBREdBO0VBQ0U7SUFDRSxVQUFBO0VDQUY7RURHQTtJQUNFLFVBQUE7RUNERjtBQUNGO0FETkE7RUFDRTtJQUNFLFVBQUE7RUNBRjtFREdBO0lBQ0UsVUFBQTtFQ0RGO0FBQ0Y7QURJQTtFQUNFLG1DQUFBO1VBQUEsMkJBQUE7QUNGRjtBREtBO0VBQ0Usc0JBQUE7RUFDQSxVQUFBO0FDRkY7QURJRTtFQUNFLGtCQUFBO0VBQ0EsY0FBQTtBQ0ZKO0FES0U7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0FDSEo7QURJSTtFQUNFLG1CQUFBO1VBQUEsWUFBQTtFQUNBLGdCQUFBO0FDRk47QURLSTtFQUNFLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0FDSE47QURPRTtFQUNFLHFCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLDRCQUFBO0FDTEo7QURPSTtFQUNFLHNCQUFBO0FDTE47QURVQTs7RUFFRSxzQkFBQTtFQUNBLGVBQUE7RUFDQSwwQkFBQTtBQ1BGO0FEVUE7O0VBRUUsY0FBQTtBQ1BGO0FEVUE7RUFDRTtJQUNFLDRCQUFBO0lBQUEsNkJBQUE7WUFBQSxzQkFBQTtFQ1BGO0VEU0U7SUFDRSxnQkFBQTtJQUNBLDZCQUFBO0VDUEo7RURTSTtJQUNFLG1CQUFBO0VDUE47RURXRTtJQUNFLDRCQUFBO1lBQUEsUUFBQTtFQ1RKO0VEWUU7SUFDRSw0QkFBQTtZQUFBLFFBQUE7RUNWSjtFRGFFO0lBQ0UsNEJBQUE7WUFBQSxRQUFBO0VDWEo7RURjRTtJQUNFLDRCQUFBO1lBQUEsUUFBQTtFQ1pKOztFRGdCQTs7SUFFRSxtQkFBQTtFQ2JGOztFRGdCQTs7SUFFRSw2QkFBQTtFQ2JGO0FBQ0Y7QURnQkE7RUFDSSxpQkFBQTtBQ2RKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3Mvb3BlbmluZy9yZXF1aXNpdGlvbi1kZXRhaWwvcmVxdWlzaXRpb24tZWRpdC9yZXF1aXNpdGlvbi1lZGl0LnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBPdXRwdXRzIHRoZSBgb3ZlcmZsb3ctd3JhcGAgcHJvcGVydHkgYW5kIGl0cyBsZWdhY3kgbmFtZSBgd29yZC13cmFwYCB0b1xuLy8vIHN1cHBvcnQgYnJvd3NlcnMgdGhhdCBkbyBub3QgeWV0IHVzZSBgb3ZlcmZsb3ctd3JhcGAuXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBBY2NlcHRlZCBDU1MgdmFsdWVzIGFyZSBgbm9ybWFsYCwgYGJyZWFrLXdvcmRgLCBgaW5oZXJpdGAsIGBpbml0aWFsYCxcbi8vLyAgIG9yIGB1bnNldGAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIG92ZXJmbG93LXdyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9wcm9wZXJ0aWVzLWFscGhhYmV0aWNhbC1vcmRlciAqL1xuXG5AbWl4aW4gb3ZlcmZsb3ctd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCBcIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2NvcmUvYm91cmJvblwiO1xyXG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9jb3JlL25lYXRcIjtcclxuXHJcbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGZha2Uge1xyXG4gIGZyb20ge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcblxyXG4gIHRvIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcblxyXG5ib2R5IHtcclxuICBhbmltYXRpb246IGZha2UgMXMgaW5maW5pdGU7XHJcbn1cclxuXHJcbi53b3Jrby10YWJzIHtcclxuICBtYXJnaW46IDAgMTVweCAtMzBweCAwIDtcclxuICB3aWR0aDogOTglO1xyXG5cclxuICAuc3RhdGUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogLTEwMDAwcHg7XHJcbiAgfVxyXG5cclxuICAuZmxleC10YWJzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbiAgICAudGFiIHtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBtYXgtaGVpZ2h0OiA0MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5wYW5lbCB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGFiIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICAgIGN1cnNvcjogaGFuZDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNjY2M7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4jdGFiLW9uZTpjaGVja2Vkfi50YWJzICN0YWItb25lLWxhYmVsLFxyXG4jdGFiLXR3bzpjaGVja2Vkfi50YWJzICN0YWItdHdvLWxhYmVsIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBib3JkZXItbGVmdC1jb2xvcjogIzFhYjM5NDtcclxufVxyXG5cclxuI3RhYi1vbmU6Y2hlY2tlZH4udGFicyAjdGFiLW9uZS1wYW5lbCxcclxuI3RhYi10d286Y2hlY2tlZH4udGFicyAjdGFiLXR3by1wYW5lbCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gIC5mbGV4LXRhYnMge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAudGFiIHtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XHJcblxyXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICN0YWItb25lLWxhYmVsIHtcclxuICAgICAgb3JkZXI6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgI3RhYi10d28tbGFiZWwge1xyXG4gICAgICBvcmRlcjogMztcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLW9uZS1wYW5lbCB7XHJcbiAgICAgIG9yZGVyOiAyO1xyXG4gICAgfVxyXG5cclxuICAgICN0YWItdHdvLXBhbmVsIHtcclxuICAgICAgb3JkZXI6IDQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjdGFiLW9uZTpjaGVja2Vkfi50YWJzICN0YWItb25lLWxhYmVsLFxyXG4gICN0YWItdHdvOmNoZWNrZWR+LnRhYnMgI3RhYi10d28tbGFiZWwge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICB9XHJcblxyXG4gICN0YWItb25lOmNoZWNrZWR+LnRhYnMgI3RhYi1vbmUtcGFuZWwsXHJcbiAgI3RhYi10d286Y2hlY2tlZH4udGFicyAjdGFiLXR3by1wYW5lbCB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcclxuICB9XHJcbn1cclxuXHJcbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbiAgfSIsIi8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL3Byb3BlcnRpZXMtYWxwaGFiZXRpY2FsLW9yZGVyICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5cbkBrZXlmcmFtZXMgZmFrZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbmJvZHkge1xuICBhbmltYXRpb246IGZha2UgMXMgaW5maW5pdGU7XG59XG5cbi53b3Jrby10YWJzIHtcbiAgbWFyZ2luOiAwIDE1cHggLTMwcHggMDtcbiAgd2lkdGg6IDk4JTtcbn1cbi53b3Jrby10YWJzIC5zdGF0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwMDAwcHg7XG59XG4ud29ya28tdGFicyAuZmxleC10YWJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbn1cbi53b3Jrby10YWJzIC5mbGV4LXRhYnMgLnRhYiB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWF4LWhlaWdodDogNDBweDtcbn1cbi53b3Jrby10YWJzIC5mbGV4LXRhYnMgLnBhbmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC1iYXNpczogYXV0bztcbn1cbi53b3Jrby10YWJzIC50YWIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGN1cnNvcjogaGFuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjY2NjO1xufVxuLndvcmtvLXRhYnMgLnRhYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbiN0YWItb25lOmNoZWNrZWQgfiAudGFicyAjdGFiLW9uZS1sYWJlbCxcbiN0YWItdHdvOmNoZWNrZWQgfiAudGFicyAjdGFiLXR3by1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMxYWIzOTQ7XG59XG5cbiN0YWItb25lOmNoZWNrZWQgfiAudGFicyAjdGFiLW9uZS1wYW5lbCxcbiN0YWItdHdvOmNoZWNrZWQgfiAudGFicyAjdGFiLXR3by1wYW5lbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmZsZXgtdGFicyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuZmxleC10YWJzIC50YWIge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIH1cbiAgLmZsZXgtdGFicyAudGFiOmxhc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxuICAuZmxleC10YWJzICN0YWItb25lLWxhYmVsIHtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAuZmxleC10YWJzICN0YWItdHdvLWxhYmVsIHtcbiAgICBvcmRlcjogMztcbiAgfVxuICAuZmxleC10YWJzICN0YWItb25lLXBhbmVsIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAuZmxleC10YWJzICN0YWItdHdvLXBhbmVsIHtcbiAgICBvcmRlcjogNDtcbiAgfVxuXG4gICN0YWItb25lOmNoZWNrZWQgfiAudGFicyAjdGFiLW9uZS1sYWJlbCxcbiN0YWItdHdvOmNoZWNrZWQgfiAudGFicyAjdGFiLXR3by1sYWJlbCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxuXG4gICN0YWItb25lOmNoZWNrZWQgfiAudGFicyAjdGFiLW9uZS1wYW5lbCxcbiN0YWItdHdvOmNoZWNrZWQgfiAudGFicyAjdGFiLXR3by1wYW5lbCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIH1cbn1cbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0iXX0= */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { RecruitmentService } from 'app/views/appviews/recruitment/recruitment.service';\r\nimport { OpeningService } from '../../opening.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoRequisitionTracking } from 'app/shared/models/opening/dto-requisition-tracking.model';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalRequisitionTrackingComponet } from 'app/views/modales/opening/requisition-tracking/modal-requisition-tracking.component';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { saveAs } from 'file-saver';\r\n@Component({\r\n selector: '[requisition-tracking]',\r\n templateUrl: './requisition-tracking.template.html',\r\n styleUrls: ['./requisition-tracking.style.scss'], encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RequisitionTrackingComponent implements OnInit, OnChanges {\r\n /**Formularios */\r\n private formGeneralData: FormGroup;\r\n private formCandidate: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Catalogos */\r\n private catalogSources: Observable;\r\n private catalogCandidates: IDtoCatalog[];\r\n private requisitionTrackings = new Array() as IDtoRequisitionTracking[];\r\n /**Inputs */\r\n @Input() private requisition: any;\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private profile: string;\r\n private fileName = '';\r\n private document = {} as IDtoDocument;\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private openingService: OpeningService\r\n , private recruitmentService: RecruitmentService\r\n , private configurationService: ConfigurationService\r\n , private identityService: IdentityService\r\n , private modalService: BsModalService\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private securityService: SecurityService\r\n , private datePipe: DatePipe\r\n , private documentService: DocumentService) {\r\n this.initializeFormGerneralData();\r\n this.initializeFormCandidate();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n if (this.configurationService.isReady) {\r\n this.catalogSources = this.recruitmentService.getCatalogSources();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.catalogSources = this.recruitmentService.getCatalogSources();\r\n });\r\n }\r\n this.profile = this.securityService.getProfileStorage('RequisitionReviews');\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.requisition.currentValue !== undefined && changes.requisition.currentValue !== null) {\r\n this.patchValueGeneralData();\r\n this.getRequisitionTrackingsByRequisitionId();\r\n this.getCandidatesRechargeableByRequisitionId();\r\n }\r\n }\r\n private getCandidatesRechargeableByRequisitionId(){\r\n if (this.requisition.requisitionId == undefined) {\r\n return;\r\n }\r\n this.recruitmentService.getCandidatesRechargeableByRequisitionId(this.requisition.requisitionId).subscribe(e => {\r\n this.catalogCandidates = e;\r\n });\r\n }\r\n private initializeFormGerneralData() {\r\n this.formGeneralData = this.formBuilder.group({\r\n recruitingObservations: [null, [Validators.required, Validators.maxLength(500)]],\r\n recruitmentSourceId: [null, [Validators.required]],\r\n interviewObservations: [null, [Validators.required, Validators.maxLength(500)]],\r\n hireDate: [null, [Validators.required]],\r\n admissionDate: [null, [Validators.required]],\r\n finalRecruitmentObservation: [null, [Validators.required, Validators.maxLength(500)]]\r\n });\r\n }\r\n private initializeFormCandidate() {\r\n this.formCandidate = this.formBuilder.group({\r\n jobCandidateId: [null, [Validators.required]]\r\n });\r\n }\r\n private submitForm(form: FormGroup) {\r\n if (form.valid) {\r\n const value = form.value;\r\n this.requisition.recruitingObservations = value.recruitingObservations;\r\n this.requisition.recruitmentSourceId = value.recruitmentSourceId;\r\n this.requisition.interviewObservations = value.interviewObservations;\r\n this.requisition.hireDate = value.hireDate;\r\n this.requisition.admissionDate = value.admissionDate;\r\n this.requisition.statusRequestId = 2;\r\n this.requisition.finalRecruitmentObservation = value.finalRecruitmentObservation;\r\n if (this.requisition.requisitionId > 0) {\r\n this.updateRequisition();\r\n } else {\r\n this.addRequisition();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(form);\r\n }\r\n }\r\n private addRequisitionTracking() {\r\n if (this.formCandidate.valid) {\r\n const values = this.formCandidate.value as IDtoRequisitionTracking;\r\n var exist = this.requisitionTrackings.some(item => item.jobCandidateId == values.jobCandidateId);\r\n if (exist) {\r\n this.configGeneral.newToast('Validación', 'El candidato seleccionado ya tiene un seguimiento asociado a esta requisición', 'error');\r\n return;\r\n }\r\n values.jobCandidate = this.catalogCandidates.filter(c => c.id == values.jobCandidateId)[0].name;\r\n values.requisitionId = this.requisition.requisitionId;\r\n values.trackingStatusId = '1';\r\n values.trackingStatus = 'Sin proceso';\r\n this.openingService.addRequisitionTracking(values).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', 'Registro guardado correctamente', 'success');\r\n let res = x.data as IDtoRequisitionTracking;\r\n values.id = res.id;\r\n this.requisitionTrackings.push(values);\r\n this.requisitionTrackings = [...this.requisitionTrackings];\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n }\r\n private deleteRequisitionTracking(dto:IDtoRequisitionTracking): void {\r\n this.openingService.deleteRequisitionTracking(dto.id).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro eliminado correctamente'\r\n , 'Éxito', this.configToast);\r\n let index = this.requisitionTrackings.indexOf(dto)\r\n if (index > -1) {\r\n this.requisitionTrackings.splice(index, 1);\r\n this.requisitionTrackings = [...this.requisitionTrackings];\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private getRequisitionTrackingsByRequisitionId(): void {\r\n if (this.requisition.requisitionId == undefined) {\r\n return;\r\n }\r\n this.openingService.getRequisitionTrackingsByRequisitionId(this.requisition.requisitionId).subscribe(\r\n (x) => {\r\n this.requisitionTrackings = x;\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private openModalRequisitionTracking(dto:IDtoRequisitionTracking) {\r\n const initialState = {\r\n requisitionTracking: dto,\r\n title: 'Seguimiento requisición para el candidato ' + dto.jobCandidate,\r\n profile: this.profile\r\n };\r\n this.modalRef = this.modalService.show(ModalRequisitionTrackingComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n let index = this.requisitionTrackings.indexOf(dto)\r\n if (index > -1) {\r\n this.requisitionTrackings.splice(index, 1);\r\n this.requisitionTrackings.push(result);\r\n this.requisitionTrackings = [...this.requisitionTrackings];\r\n }\r\n }\r\n });\r\n }\r\n private addRequisition(): void {\r\n this.openingService.addRequisition(this.requisition).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n this.requisition = x.data as IDtoRequisition\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private updateRequisition(): void {\r\n this.openingService.updateRequisition(this.requisition).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n this.requisition = x.data as IDtoRequisition\r\n this.addModuleLog();\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private patchValueGeneralData(): void {\r\n this.formGeneralData.patchValue(this.requisition);\r\n }\r\n private addModuleLog(): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Requisitions';\r\n dto.module = 'requisitionReviews';\r\n dto.action = 'tracking';\r\n dto.registryAffectedId = this.requisition.id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n private navigateToRequest(row: IDtoRequisitionTracking): void {\r\n this.router.navigate(['/recruitments/profile',\r\n { id: row.jobCandidateId, module: 'requisition'}], { relativeTo: this.route });\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private handleFileInput(files: FileList, dto:IDtoRequisitionTracking) {\r\n //this.fileName = files.item(0).name;\r\n this.upload(files, dto);\r\n }\r\n private upload(files: FileList, dto:IDtoRequisitionTracking): void {\r\n if (files != undefined) {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = files.item(0).name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${dto.jobCandidateId}_SeguimientoRequisición_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileName = fileNameNew;\r\n document.referenceId = dto.id;\r\n document.folder = 'Requisition';\r\n document.module = 'RequisitionTrackings';\r\n document.name = \"SeguimientoRequisición\";\r\n document.acceptDuplicate = true;\r\n const file = files.item(0);\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n this.document = res.data as IDtoDocument;\r\n this.fileName = this.document.fileName;\r\n //this.addModuleLog(this.customer.id, 'addRequisitionTracking');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n }\r\n\r\n private downloadFile(id:number): void {\r\n this.documentService.downloadFile(id).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n this.spinner.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private downloadProcess(dto:IDtoRequisitionTracking): void {\r\n this.documentService.getLatesDocumentVersion(dto.id, 'SeguimientoRequisición').subscribe(res => {\r\n this.document = res.data as IDtoDocument;\r\n if (this.document == undefined)\r\n {\r\n this.configGeneral.newToast('Validación', 'No tiene documento para descargar', 'error');\r\n return;\r\n };\r\n this.downloadFile(this.document.id);\r\n })\r\n}\r\n}\r\n","module.exports = \".ng-select.custom2 .ng-select-container {\\n height: 30px;\\n}\\n\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n\\n.box-align {\\n float: left;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3Mvb3BlbmluZy9yZXF1aXNpdGlvbi1kZXRhaWwvcmVxdWlzaXRpb24tdHJhY2tpbmcvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxvcGVuaW5nXFxyZXF1aXNpdGlvbi1kZXRhaWxcXHJlcXVpc2l0aW9uLXRyYWNraW5nXFxyZXF1aXNpdGlvbi10cmFja2luZy5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9vcGVuaW5nL3JlcXVpc2l0aW9uLWRldGFpbC9yZXF1aXNpdGlvbi10cmFja2luZy9yZXF1aXNpdGlvbi10cmFja2luZy5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBR0ksWUFBQTtBQ0RKOztBREdFO0VBQ0Usa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0FDQUo7O0FER0U7RUFDRSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSwwQkFBQTtFQUNBLGVBQUE7RUFDQSxzQkFBQTtFQUNBLDZCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0FDQUo7O0FER0U7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0FDQUo7O0FER0U7RUFDRSxXQUFBO0FDQUoiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9vcGVuaW5nL3JlcXVpc2l0aW9uLWRldGFpbC9yZXF1aXNpdGlvbi10cmFja2luZy9yZXF1aXNpdGlvbi10cmFja2luZy5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm5nLXNlbGVjdC5jdXN0b20yIC5uZy1zZWxlY3QtY29udGFpbmVyICB7XHJcbiAgICAvLyBtaW4taGVpZ2h0OiAwcHg7XHJcbiAgICAvLyBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgaGVpZ2h0OjMwcHhcclxuICB9XHJcbiAgLnVwbG9hZC1idG51cC13cmFwcGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG5cclxuICAuYnRudXAge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgcGFkZGluZzogNnB4IDEycHg7XHJcbiAgICBmb250LXNpemU6IDlweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICB9XHJcblxyXG4gIC51cGxvYWQtYnRudXAtd3JhcHBlciBpbnB1dFt0eXBlPWZpbGVdIHtcclxuICAgIGZvbnQtc2l6ZTogMTAwcHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcblxyXG4gIC5ib3gtYWxpZ257XHJcbiAgICBmbG9hdDpsZWZ0O1xyXG4gIH1cclxuIiwiLm5nLXNlbGVjdC5jdXN0b20yIC5uZy1zZWxlY3QtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmJ0bnVwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi51cGxvYWQtYnRudXAtd3JhcHBlciBpbnB1dFt0eXBlPWZpbGVdIHtcbiAgZm9udC1zaXplOiAxMDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5ib3gtYWxpZ24ge1xuICBmbG9hdDogbGVmdDtcbn0iXX0= */\"","import { Component, OnDestroy, OnInit, ViewChild, EventEmitter } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { OpeningService } from '../opening.service';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { RecruitmentService } from '../../recruitment/recruitment.service';\r\nimport { ISlimScrollOptions, SlimScrollEvent } from 'ngx-slimscroll';\r\nimport { IDtoRequisitionFilter } from 'app/shared/models/opening/dto-requisition-filter.model';\r\nimport { Observable } from 'rxjs';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { ModalReasonComponent } from 'app/views/modales/common/modal-reason.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { IDtoPosition } from 'app/shared/models/opening/dto-position.model';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { CustomerService } from '../../quote/customer.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { StorageService } from 'app/shared/services/storage.service';\r\nimport { PositionService } from '../../quote/position.service';\r\nimport { BudgetService } from '../../quote/budget.service';\r\n\r\n@Component({\r\n selector: 'app-requisition-review',\r\n styleUrls: ['./requisition-review.style.scss'],\r\n templateUrl: 'requisition-review.template.html'\r\n})\r\nexport class RequisitionReviewComponent implements OnDestroy, OnInit {\r\n /**Formularios */\r\n private formFilter: FormGroup;\r\n /**Catalogos */\r\n private catalogStatusRequests: Observable;\r\n private catalogFulfillments: Observable;\r\n private catalogMotiveVacancys: Observable;\r\n private catalogTrademarks: Observable;\r\n private catalogJobs: Observable\r\n private catalogProjects: Observable;\r\n private catalogPlans: Observable;\r\n private catalogZones: Observable;\r\n private catalogStates: Observable;\r\n private catalogTowns: Observable;\r\n /**Variables */\r\n private now: number;\r\n /**Listas */\r\n private requisitions: IDtoRequisition[];\r\n private requisitionsTemp: IDtoRequisition[];\r\n private town: string;\r\n private state: string;\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableRequisitions: DatatableComponent;\r\n /**Slim-control */\r\n optsSlim: ISlimScrollOptions;\r\n scrollEvents: EventEmitter;\r\n private profile: string;\r\n private modalRef: BsModalRef;\r\n private requisition: IDtoRequisition;\r\n private errorMessages: any;\r\n private pos: IDtoPosition;\r\n private search: string;\r\n @ViewChild('swalCancelPosition', { static: false }) private swalCancelPosition: SwalComponent;\r\n @ViewChild('swalPausedPosition', { static: false }) private swalPausedPosition: SwalComponent;\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private openingService: OpeningService\r\n , private recruitmentService: RecruitmentService\r\n , private customerService: CustomerService\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private modalService: BsModalService\r\n , private storageService: StorageService\r\n , private identityService: IdentityService\r\n , private positionService: PositionService\r\n , private budgetService: BudgetService) {\r\n this.optsSlim = configGeneral.getConfigSlimScroll();\r\n this.initializeFormFilter();\r\n this.getProfile();\r\n }\r\n ngOnInit(): void {\r\n this.scrollEvents = new EventEmitter();\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n this.getCatalogs();\r\n this.initFilters();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getCatalogs();\r\n this.initFilters();\r\n });\r\n } \r\n }\r\n ngOnDestroy(): void {\r\n }\r\n private initFilters(): void {\r\n const values = this.storageService.retrieve('requisitions.filters');\r\n if (values != null) {\r\n if (values.trademarkId != null) {\r\n let dto = { id: values.trademarkId } as IDtoCatalog;\r\n this.getCatalogJobsAndProjects(dto);\r\n }\r\n this.formFilter.patchValue(values);\r\n }\r\n const search = this.storageService.retrieve('requisitions.search');\r\n if (search != undefined) {\r\n this.search = search;\r\n }\r\n if (values != null) {\r\n this.getRequisitionsFilters();\r\n }\r\n }\r\n private initializeFormFilter() {\r\n this.formFilter = this.formBuilder.group({\r\n statusRequestId: [null],\r\n requisitionDate: [null],\r\n startDate: [null],\r\n lowDate: [null],\r\n closeDate: [null],\r\n fulfillmentId: [null],\r\n recruiter: [null],\r\n operator: [null],\r\n motiveVacancyId: [null],\r\n trademarkId: [null],\r\n codeNomJob: [null],\r\n positionNum: [null],\r\n job: [null],\r\n zone: [null],\r\n state: [null],\r\n town: [null],\r\n projectId: [null],\r\n plan: [null]\r\n });\r\n }\r\n private getRequisitionsFilters(): void {\r\n this.spinner.show();\r\n const data = this.formFilter.value as IDtoRequisitionFilter;\r\n data.profile = this.profile;\r\n this.openingService.getRequisitionByFilter(data).subscribe((res) => {\r\n if (res.isCorrect) {\r\n this.requisitions = res.data as IDtoRequisition[];\r\n this.requisitionsTemp = this.requisitions;\r\n if (this.search != undefined) {\r\n this.updateFilter();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n private navigateTo(row: IDtoRequisition): void {\r\n const values = this.formFilter.value as IDtoRequisitionFilter;\r\n this.storageService.store('requisitions.filters', values);\r\n this.storageService.store('requisitions.search', this.search);\r\n this.router.navigate(['/openings/requisition-detail',\r\n { id: row.positionId, action: 'detail' }], { relativeTo: this.route });\r\n }\r\n private getCatalogs(): void {\r\n this.catalogZones = this.recruitmentService.getCatalogZones();\r\n this.catalogStatusRequests = this.openingService.getCatalogStatusRequests();\r\n this.catalogFulfillments = this.openingService.getcatalogFulfillments();\r\n this.catalogStates = this.recruitmentService.getCatalogStates();\r\n this.catalogTrademarks = this.customerService.getCatalogCustomers();\r\n this.catalogMotiveVacancys = this.openingService.getCatalogMotiveVacancys();\r\n }\r\n private getCatalogTowns(state: ISelect): void {\r\n this.catalogTowns = this.recruitmentService.getCatalogTowns(state.id);\r\n }\r\n private getCatalogJobsAndProjects(item: IDtoCatalog): void {\r\n this.formFilter.get('projectId').setValue(null);\r\n this.formFilter.get('job').setValue(null);\r\n this.catalogJobs = null;\r\n this.catalogProjects = null;\r\n if (item == null) {\r\n return;\r\n }\r\n this.catalogJobs = this.positionService.getCatalogPositionsByCustomerId(item.id);\r\n this.catalogProjects = this.budgetService.getCatalogProjectCustomersByCustomerId(item.id);\r\n }\r\n private getCatalogPlans(item: IDtoCatalog): void {\r\n this.formFilter.get('plan').setValue(null);\r\n this.catalogPlans = null;\r\n if (item == null) {\r\n return;\r\n }\r\n var plans = item.additional.split(',');\r\n var catalog = new Array() as IDtoCatalog[];\r\n plans.forEach(element => {\r\n let v = {} as IDtoCatalog;\r\n v.name = element\r\n catalog.push(v);\r\n });\r\n this.catalogPlans = Observable.of(catalog)\r\n }\r\n private getProfile(): void {\r\n this.profile = this.securityService.getProfileStorage('RequisitionReviews');\r\n }\r\n private isRecruitments(): boolean {\r\n return this.profile === 'Reclutamiento'\r\n }\r\n private isOperations(): boolean {\r\n return this.profile === 'Operaciones'\r\n }\r\n private isEdit(status: number): boolean {\r\n if(this.isRecruitments()) {\r\n return status === 2;\r\n }\r\n if(this.isOperations()) {\r\n return status === 1 || status === 6;\r\n }\r\n }\r\n private isRead(status: number): boolean {\r\n if(this.isRecruitments()) {\r\n return status !== 2;\r\n }\r\n if(this.isOperations()) {\r\n let visible = true;\r\n if (status === 1 || status === 6) {\r\n visible = false;\r\n }\r\n return visible;\r\n }\r\n }\r\n private openModalCancelationReason(req: IDtoRequisition): void {\r\n this.requisition = req;\r\n const initialState = {\r\n title: 'Motivos',\r\n reason: null\r\n };\r\n this.modalRef = this.modalService.show(ModalReasonComponent\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.submitCancelPosition(result);\r\n }\r\n });\r\n }\r\n private openModalPausedReason(req: IDtoRequisition): void {\r\n this.requisition = req;\r\n const initialState = {\r\n title: 'Motivos',\r\n reason: null\r\n };\r\n this.modalRef = this.modalService.show(ModalReasonComponent\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.submitPausedPosition(result);\r\n }\r\n });\r\n }\r\n private cancelPosition(reason: string): void {\r\n this.openingService.cancelPosition(this.pos).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.requisition.statusRequestId = 5;\r\n this.requisition.statusRequestDesc = 'CANCELADA';\r\n this.configGeneral.newToast('Éxito', 'Posición cancelada correctamente', 'success');\r\n this.addModuleLog('cancel');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private pausedPosition(reason: string): void {\r\n this.openingService.pausedPosition(this.pos).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.requisition.statusRequestId = 6;\r\n this.requisition.statusRequestDesc = 'PAUSADA';\r\n this.configGeneral.newToast('Éxito', 'Posición pausada correctamente', 'success');\r\n this.addModuleLog('paused');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private submitCancelPosition(reason: string): void {\r\n this.pos = {} as IDtoPosition;\r\n this.pos.id = this.requisition.positionId;\r\n this.pos.cancellationReason = reason;\r\n this.swalCancelPosition.title = '¿Seguro que desea cancelar la posición seleccionada?';\r\n this.swalCancelPosition.show();\r\n }\r\n private submitPausedPosition(reason: string): void {\r\n this.pos = {} as IDtoPosition;\r\n this.pos.id = this.requisition.positionId;\r\n this.pos.pausedReason = reason;\r\n this.swalPausedPosition.title = '¿Seguro que desea pausar la posición seleccionada?';\r\n this.swalPausedPosition.show();\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n\r\n const val = this.search.toLowerCase();\r\n const temp = this.requisitionsTemp.filter((x: any) => x.trademarkDesc.toLowerCase().startsWith(val)\r\n || x.codeNomJob.toLowerCase().startsWith(val)\r\n || x.statusRequestDesc.toLowerCase().startsWith(val) \r\n || x.codeNomPosition.toLowerCase().startsWith(val)\r\n || x.positionDesc.toLowerCase().startsWith(val)\r\n || x.zoneDesc.toLowerCase().startsWith(val)\r\n || x.stateDesc.toLowerCase().startsWith(val)\r\n || x.townDesc.toLowerCase().startsWith(val)\r\n || x.employeeName.toLowerCase().startsWith(val)\r\n || x.requisitionId.toString().startsWith(val) );\r\n \r\n this.requisitions = temp;\r\n this.tableRequisitions.offset = 0;\r\n }\r\n private addModuleLog(action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = \"Positions\";\r\n dto.module = 'requisitionReviews';\r\n dto.action = action;\r\n dto.registryAffectedId = this.requisition.positionId;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) =>{});\r\n }\r\n}\r\n","module.exports = \".scroll-window {\\n width: 100%;\\n height: 500px;\\n font-size: 13px;\\n padding: 10px 20px 10px 0;\\n font-size: 15px;\\n line-height: 20px;\\n color: #000;\\n}\\n\\n.form-group {\\n font-weight: 500;\\n font-size: 12px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3Mvb3BlbmluZy9yZXF1aXNpdGlvbi1yZXZpZXcvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxvcGVuaW5nXFxyZXF1aXNpdGlvbi1yZXZpZXdcXHJlcXVpc2l0aW9uLXJldmlldy5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9vcGVuaW5nL3JlcXVpc2l0aW9uLXJldmlldy9yZXF1aXNpdGlvbi1yZXZpZXcuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFdBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsV0FBQTtBQ0NKOztBRENFO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0FDRUoiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9vcGVuaW5nL3JlcXVpc2l0aW9uLXJldmlldy9yZXF1aXNpdGlvbi1yZXZpZXcuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5zY3JvbGwtd2luZG93IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA1MDBweDtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDA7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMjBweDtcclxuICAgIGNvbG9yOiAjMDAwO1xyXG4gIH1cclxuICAuZm9ybS1ncm91cCB7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gIH0iLCIuc2Nyb2xsLXdpbmRvdyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDUwMHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDA7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4uZm9ybS1ncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn0iXX0= */\"","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { OrganizationService } from '../organization.service';\r\nimport { IDtoCompany } from 'app/shared/models/organization/dto-company.model';\r\nimport { ModalRiskPremiumComponet } from 'app/views/modales/organization/risk-premium/modal-risk-premium.component';\r\nimport { ModalCompanyComponet } from 'app/views/modales/organization/company/modal-company.component';\r\nimport { ModalEmployerRegisterComponet } from 'app/views/modales/organization/employer-register/modal-employer-register.component';\r\n\r\n@Component({\r\n selector: 'app-companies',\r\n styleUrls: ['./companies.style.scss'],\r\n templateUrl: 'companies.template.html'\r\n})\r\nexport class CompaniesComponent implements OnInit {\r\n private search: string;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Validadores */\r\n private errorMessages: any;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Variables */\r\n private now: number;\r\n /**Listas */\r\n private companies = new Array() as IDtoCompany[];\r\n private companiesTemp = new Array() as IDtoCompany[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableCompany: DatatableComponent;\r\n public constructor(private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private modalService: BsModalService\r\n , public snotifyService: SnotifyService\r\n , private serviceSecurity: SecurityService\r\n , private organizationService: OrganizationService\r\n , private configGeneral: AppConfig) {\r\n this.configToast = this.configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getCompanies()\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getCompanies()\r\n });\r\n }\r\n }\r\n private getCompanies(): void {\r\n this.organizationService.getCompanies()\r\n .subscribe(\r\n (x) => {\r\n this.companies = x.data as IDtoCompany[];\r\n this.companiesTemp = x.data as IDtoCompany[];\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n // private deleteUser(item: IDtoUser): void {\r\n // this.identityService.deleteUser(item.id)\r\n // .subscribe(\r\n // (x) => {\r\n // if (this.configGeneral.notificationSuccessError(x)) {\r\n // this.getUsers();\r\n // }\r\n // },\r\n // (errMessage) => this.errorMessages = errMessage.messages);\r\n // }\r\n private openModalRiskPremium(item: IDtoCompany, action: string) {\r\n const initialState = {\r\n riskPremiums: item.riskPremiums,\r\n companyId: item.id\r\n };\r\n this.modalRef = this.modalService.show(ModalRiskPremiumComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n item.riskPremiums = [...result];\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private openModalCompany(item: IDtoCompany, action: string) {\r\n const initialState = {\r\n company: item,\r\n title: action == 'edit' ? `Edición de compañia ${item.shortName}` : `Nueva compañia`,\r\n action: action\r\n };\r\n this.modalRef = this.modalService.show(ModalCompanyComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.getCompanies();\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n const val = this.search.toLowerCase();\r\n const temp = this.companiesTemp.filter((x: any) => x.name.toLowerCase().startsWith(val)\r\n || x.shortName.toLowerCase().startsWith(val)\r\n || x.codeNom.toLowerCase().startsWith(val));\r\n\r\n this.companies = temp;\r\n this.tableCompany.offset = 0;\r\n }\r\n private openModalEmployerRegister(item: IDtoCompany, action: string) {\r\n const initialState = {\r\n companyId: item.id\r\n };\r\n this.modalService.show(ModalEmployerRegisterComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL29yZ2FuaXphdGlvbi9jb21wYW5pZXMvY29tcGFuaWVzLnN0eWxlLnNjc3MifQ== */\"","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoRiskPremium } from 'app/shared/models/organization/dto-risk-premium.model';\r\nimport { IDtoCompany } from 'app/shared/models/organization/dto-company.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IDtoEmployerRegister } from 'app/shared/models/organization/dto-employer-register.model';\r\nimport { IDtoEmployerRegisterOffice } from 'app/shared/models/organization/dto-employer-register-office.model';\r\n\r\n@Injectable()\r\nexport class OrganizationService {\r\n private quoteUrl = '';\r\n private recruitmentUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n });\r\n }\r\n }\r\n public getCompanies(): Observable {\r\n const url = `${this.quoteUrl}api/Companies/getCompanies`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogCompanies(): Observable {\r\n const url = `${this.quoteUrl}api/Companies/getCatalogCompanies`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogCustomerTypes(): Observable {\r\n const url = `${this.quoteUrl}api/CustomerTypes/getCatalogCustomerTypes`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPaymentTerms(): Observable {\r\n const url = `${this.quoteUrl}api/PaymentTerms/getCatalogPaymentTerms`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateRiskPremium(dto: IDtoRiskPremium): Observable {\r\n const url = `${this.quoteUrl}api/RiskPremiums/updateRiskPremium`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addRiskPremium(dto: IDtoRiskPremium): Observable {\r\n const url =`${this.quoteUrl}api/RiskPremiums/addRiskPremium`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getRiskPremiumByCompanyId(companyId: number): Observable {\r\n const url = `${this.quoteUrl}api/RiskPremiums/getRiskPremiumByCompanyId?companyId=${companyId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateCompany(dto: IDtoCompany): Observable {\r\n const url = `${this.quoteUrl}api/Companies/updateCompany`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addCompany(dto: IDtoCompany): Observable {\r\n const url =`${this.quoteUrl}api/Companies/addCompany`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCompanyById(id: number): Observable {\r\n const url = `${this.quoteUrl}api/Companies/getCompanyById?id=${id}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogZones(): Observable {\r\n const url = this.recruitmentUrl + 'api/zones/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getEmployerRegistersByCustomerId(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/EmployerRegisters/getEmployerRegistersByCustomerId?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateEmployerRegister(dto: IDtoEmployerRegister): Observable {\r\n const url = `${this.quoteUrl}api/EmployerRegisters/updateEmployerRegister`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addEmployerRegister(dto: IDtoEmployerRegister): Observable {\r\n const url =`${this.quoteUrl}api/EmployerRegisters/addEmployerRegister`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogEmployerRegistersByCustomerId(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/EmployerRegisters/getCatalogEmployerRegistersByCustomerId?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getEmployerRegisterOfficesByProjectCustomerId(projectCustomerId: number): Observable {\r\n const url = `${this.quoteUrl}api/EmployerRegisterOffices/getEmployerRegisterOfficesByProjectCustomerId?projectCustomerId=${projectCustomerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateEmployerRegisterOffice(dto: IDtoEmployerRegisterOffice): Observable {\r\n const url = `${this.quoteUrl}api/EmployerRegisterOffices/updateEmployerRegisterOffice`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addEmployerRegisterOffice(dto: IDtoEmployerRegisterOffice): Observable {\r\n const url =`${this.quoteUrl}api/EmployerRegisterOffices/addEmployerRegisterOffice`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogEmployerRegisterOfficesByProjectCustomerId(projectCustomerId: number): Observable {\r\n const url = `${this.quoteUrl}api/EmployerRegisterOffices/getCatalogEmployerRegisterOfficesByProjectCustomerId?projectCustomerId=${projectCustomerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoPeriod } from 'app/shared/models/payroll/dto-period.model';\r\nimport { IDtoMovementRestrictionCalendar } from 'app/shared/models/payroll/dto-movement-restriction-calendar.model';\r\nimport { IDtoEmployeeUpdatePayroll } from 'app/shared/models/employee/dto-employee-update-payroll.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoPayroll } from 'app/shared/models/payroll/dto-payroll.model';\r\nimport { IDtoPayrollFilter } from 'app/shared/models/payroll/dto-payroll-filter.model';\r\nimport { IDtoPayrollDetail } from 'app/shared/models/payroll/dto-payroll-detail.model';\r\nimport { IDtoRetention } from 'app/shared/models/payroll/dto-retention.model';\r\nimport { SecurityService } from '../../shared/services/security.service';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\n\r\n@Injectable()\r\nexport class PayrollService {\r\n private payrollUrl = '';\r\n private requestUrl = '';\r\n private roles: any;\r\n constructor(private service: DataService, private configurationService: ConfigurationService, private securityService: SecurityService) {\r\n if (this.configurationService.isReady) {\r\n this.payrollUrl = this.configurationService.serverSettings.payrollUrl;\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.payrollUrl = this.configurationService.serverSettings.payrollUrl;\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n });\r\n }\r\n let showRoles = this.securityService.getUserRolesStorage();\r\n if (showRoles == '' || showRoles == undefined) {\r\n\r\n } else {\r\n this.roles = showRoles.listRoles;\r\n }\r\n }\r\n public getStartDatePeriod(companyNum: string, payrollType: string, date: Date): Observable {\r\n const url = `${this.payrollUrl}api/Periods/getStartDatePeriod?companyNum=${companyNum}&payrollType=${payrollType}&date=${date}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getActivePeriod(dto: IDtoPeriod): Observable {\r\n const url = `${this.payrollUrl}api/Periods/getActivePeriod/`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public restrictionExistCalendar(dto: IDtoMovementRestrictionCalendar): Observable {\r\n const url = `${this.requestUrl}api/MovementRestrictionCalendars/restrictionExistCalendar/`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getIntegratedDailySalary(codeNomCompanyNum: string, codeNomEmployeeNum: string, codeNomPayroll: string): Observable {\r\n const url = `${this.payrollUrl}api/Employees/getIntegratedDailySalary?codeNomCompanyNum=${codeNomCompanyNum}&codeNomEmployeeNum=${codeNomEmployeeNum}&codeNomPayroll=${codeNomPayroll}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateEmployeePayroll(dto: IDtoEmployeeUpdatePayroll): Observable {\r\n const url = `${this.payrollUrl}api/Employees/updateEmployee/`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogPeriodsByCompanyPayrollType(codeNomCompanyNum: string, codeNomPayroll: string, year: number): Observable {\r\n const url = `${this.payrollUrl}api/Periods/getCatalogPeriodsByCompanyPayrollType?companyNum=${codeNomCompanyNum}&payrollType=${codeNomPayroll}&year=${year}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n /** Del lado rednovation*/\r\n public addPayroll(dto: IDtoPayroll): Observable {\r\n dto.userId = this.roles[0].userId;\r\n const url = `${this.requestUrl}api/Payrolls/addPayroll`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getPayrollsByFilter(dto: IDtoPayrollFilter): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/getPayrollsByFilter`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getPayrollDetailsByPayrollId(payrollId: string, userId: number, profile: string, module: string, routeType: string): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/getPayrollDetailsByPayrollId?payrollId=${payrollId}&userId=${userId}&profile=${profile}&module=${module}&routeType=${routeType}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updatePayrollDetails(list: IDtoPayrollDetail[]): Observable {\r\n list[0].userId = this.roles[0].userId;\r\n const url = `${this.requestUrl}api/PayrollDetails/updatePayrollDetails`;\r\n return this.service.putWithId(url, list).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n async actualizarLista(listaCompleta: any[], tamanoBloque: number): Promise<{ exito: boolean, mensaje: string }[]> {\r\n const resultados: { exito: boolean, mensaje: string }[] = [];\r\n\r\n for (let i = 0; i < listaCompleta.length; i += tamanoBloque) {\r\n const bloque = listaCompleta.slice(i, i + tamanoBloque);\r\n\r\n try {\r\n await this.service.putWithId(`${this.requestUrl}api/PayrollDetails/updatePayrollDetails`, bloque).toPromise();\r\n resultados.push({ exito: true, mensaje: `Bloque ${i / tamanoBloque + 1} actualizado correctamente.` });\r\n } catch (error) {\r\n resultados.push({ exito: false, mensaje: `Error al actualizar bloque ${i / tamanoBloque + 1}: ${error.message}` });\r\n }\r\n }\r\n\r\n return resultados;\r\n }\r\n public removeRetentions(list: any[]): Observable {\r\n const url = `${this.requestUrl}api/PayrollDetails/removeRetentions`;\r\n return this.service.putWithId(url, list).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getPayrollDetailsByPayrollIdAndSupervisorId(payrollId: number, supervisorId: number, userId: number, profile: string, module: string): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/getPayrollDetailsByPayrollIdAndSupervisorId?payrollId=${payrollId}&supervisorId=${supervisorId}&userId=${userId}&profile=${profile}&module=${module}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public sendPayrollNom(payrollId: number): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/sendPayrollNom?payrollId=${payrollId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public validateEmployessPayroll(payrollId: number): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/validateEmployessPayroll?payrollId=${payrollId}&userId=${this.roles[0].userId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getRetentionsByPayrollId(payrollId: number): Observable {\r\n const url = `${this.requestUrl}api/PayrollDetails/getRetentionsByPayrollId?payrollId=${payrollId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public removeRetention(dto: IDtoRetention): Observable {\r\n const url = `${this.requestUrl}api/PayrollDetails/removeRetention/`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public sendPayrollToCustomer(payrollId: number, approverUserId: string): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/sendPayrollToCustomer?payrollId=${payrollId}&approverUserId=${approverUserId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPayrolls(companyPayId: number, payrollTypeId: number, profile: string): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/getCatalogPayrolls?companyPayId=${companyPayId}&payrollTypeId=${payrollTypeId}&profile=${profile}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getEmployeeIds(payrollId: number, bossId: number): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/getEmployeeIds?payrollId=${payrollId}&bossId=${bossId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updatePayrollLocked(dto: IDtoPayroll): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/updatePayrollLocked`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public validatePayrolldLock(payrollId: number, profile: string): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/validatePayrollLock?payrollId=${payrollId}&profile=${profile}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public validatePayrollContractByEmployee(requisitionId: number, datehire: Date, employeeId: number): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/validatePayrollContractByEmployee?requisitionId=${requisitionId}&datehire=${datehire}&employeeId=${employeeId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n public getPayrollByStructure(date: Date, clientId: number, projectId: number, payrollTypeId: number, codeNomcompanyPay: string): Observable {\r\n const formattedDate = date.toISOString();\r\n const url = `${this.requestUrl}api/Payrolls/getPayrollByStructure?date=${formattedDate}&clientId=${clientId}&projectId=${projectId}&payrollTypeId=${payrollTypeId}&codeNomcompanyPay=${codeNomcompanyPay}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n public getCatalogRetention(): Observable < IDtoCatalog[] > {\r\n const url = `${this.requestUrl}api/Retentions/getCatalogRetention`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getLastActivePeriod(companyNum: string, payrollType: string): Observable {\r\n const url = `${this.payrollUrl}api/Periods/getLastActivePeriod?companyNum=${companyNum}&payrollType=${payrollType}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getEmployeesFromPayroll(payrollId: number, bossId: number): Observable {\r\n const url = `${this.requestUrl}api/Payrolls/getEmployeesFromPayroll?payrollId=${payrollId}&bossId=${bossId}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n}\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoCalculateSalary } from 'app/shared/models/position/dto-calculate-salary.model';\r\nimport { IDtoWorkingDay } from 'app/shared/models/position/dto-working-day.model';\r\nimport { CommissionService } from '../../commission.service';\r\nimport { IDtoDetailColumnTable } from 'app/shared/models/commission/dto-detail-column-table.model';\r\nimport Handsontable from 'handsontable';\r\nimport { HotTableComponent, HotTableRegisterer } from '@handsontable/angular';\r\nimport { IDtoCommissionPeriodDetail } from 'app/shared/models/commission/dto-commission-period-detail.model';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { BudgetService } from '../../quote/budget.service';\r\nimport { IDtoBudget } from 'app/shared/models/quote/budget.model';\r\nimport { IDtoBonusDetail } from 'app/shared/models/quote/bonus-detail.model';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoBonusPeriod } from 'app/shared/models/bonus/dto-bonus-period.model';\r\nimport { IDtoBonusPeriodDetail } from 'app/shared/models/bonus/dto-bonus-period-detail.model';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { IDtoPayroll } from 'app/shared/models/payroll/dto-payroll.model';\r\nimport { saveAs } from 'file-saver';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { IDtoCommissionPeriod } from 'app/shared/models/commission/dto-commission-period.model';\r\nimport { EmployeeService } from '../../employee.service';\r\nimport { PayrollService } from '../../payroll.service';\r\n@Component({\r\n selector: 'app-commission-detail',\r\n styleUrls: ['./commission-detail.style.scss'],\r\n templateUrl: 'commission-detail.template.html'\r\n})\r\n\r\nexport class CommissionDetailComponent implements OnInit {\r\n private hotId: string = 'commissions';\r\n /**Securty */\r\n private showRoles: any;\r\n private employeeIniId: string;\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Variables */\r\n private now: number;\r\n private action = '';\r\n private commissionPeriodIdUrl: number;\r\n private routeType: string;\r\n //private customerId: number;\r\n /**Objetos*/\r\n private columns: IDtoDetailColumnTable[];\r\n private detail: any[];\r\n private tempListEmployees: IDtoEmployee[];\r\n private bonusPeriod: IDtoBonusPeriod;\r\n /**Bonos */\r\n private headerBonusDetail: IDtoDetailColumnTable[];\r\n private bonusDetail: IDtoDetailColumnTable[];\r\n /**Notificaciones */\r\n private configToast: any;\r\n private salary = {} as IDtoCalculateSalary;\r\n private workingDay = {} as IDtoWorkingDay;\r\n tableSettings: {};\r\n private headerDetail: any;\r\n private formCreateBonus: FormGroup;\r\n private profile: string;\r\n //@ViewChild(\"hot\", { static: false }) hot: HotTableComponent;\r\n @ViewChild(\"hot2\", { static: false }) hot2: HotTableComponent;\r\n @ViewChild('confirmSwal', { static: false }) private confirmSwal: SwalComponent;\r\n @ViewChild('concludedSwal', { static: false }) private concludedSwal: SwalComponent;\r\n @ViewChild('confirmSwalSynchronize', { static: false }) private confirmSwalSynchronize: SwalComponent;\r\n @ViewChild('concludedSwalSynchronize', { static: false }) private concludedSwalSynchronize: SwalComponent;\r\n private listBudgets: Array;\r\n private listBonus: Array;\r\n private listEmployees: Array;\r\n private usedAmountTotal: number;\r\n private usedQuantityTotal: number;\r\n private payroll: IDtoPayroll;\r\n private files: FileList;\r\n private fileName = '';\r\n private commissionPeriod = {} as IDtoCommissionPeriod;\r\n private commissionPeriodId: number;\r\n private deadLineCoordinator = '';\r\n private employeePayrollIds: number[];\r\n @ViewChild('tab2', { static: false }) private tab2;\r\n private detailModified = [] as IDtoCommissionPeriodDetail[];\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private commissionService: CommissionService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private budgetService: BudgetService\r\n , private employeeService: EmployeeService\r\n , private hotRegisterer: HotTableRegisterer\r\n , private identityService: IdentityService\r\n , private payrollService: PayrollService) {\r\n this.configToast = configGeneral.getConfigToast();\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n this.profile = this.securityService.getProfileStorage('Commission');\r\n if (this.showRoles !== '') {\r\n this.employeeIniId = this.showRoles.employeeId;\r\n }\r\n if (this.configurationService.isReady) {\r\n //this.getListEmployeeActive();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n //this.getListEmployeeActive();\r\n });\r\n }\r\n }\r\n ngOnInit(): void {\r\n const that = this;\r\n this.initializeFormCreateBonus();\r\n this.now = Date.now();\r\n this.route.params.subscribe((params) => {\r\n if (params['id']) {\r\n setTimeout(() => {\r\n this.spinner.show();\r\n if (this.configurationService.isReady) {\r\n this.commissionPeriodIdUrl = params['id'];\r\n this.routeType = params['routeType'];\r\n this.getCommissionPeriodDetails();\r\n this.getCommissionPeriod(this.commissionPeriodIdUrl, this.routeType);\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.routeType = params['routeType'];\r\n this.commissionPeriodIdUrl = params['id'];\r\n //this.customerId = Number(params['customerId']);\r\n this.getCommissionPeriodDetails();\r\n this.getCommissionPeriod(this.commissionPeriodIdUrl, this.routeType);\r\n });\r\n }\r\n }, 2);\r\n }\r\n });\r\n }\r\n private getListEmployeeActive(): void {\r\n this.spinner.show();\r\n this.payrollService.getEmployeesFromPayroll(this.payroll.id, Number(this.employeeIniId)).subscribe((res) => {\r\n this.tempListEmployees = res;\r\n });\r\n }\r\n private getListEmloyeePairollIds() {\r\n this.payrollService.getEmployeeIds(this.payroll.id, Number(this.employeeIniId)).subscribe((x) => {\r\n this.employeePayrollIds = x;\r\n });\r\n }\r\n private initializeFormCreateBonus() {\r\n this.formCreateBonus = this.formBuilder.group({\r\n budgetId: [null, Validators.required],\r\n bonusId: [null, Validators.required],\r\n employeeIds: [null, Validators.required],\r\n //employeeId: [null, Validators.required],\r\n value: [null, Validators.required]\r\n });\r\n }\r\n settings: Handsontable.GridSettings = {\r\n data: [/* some data */]\r\n }\r\n private updateCommissionPeriodDetails() {\r\n this.spinner.show();\r\n let numColumns = this.columns.length;\r\n let details = [] as IDtoCommissionPeriodDetail[];\r\n\r\n // let matchingElements = this.detail.filter(detailItem =>\r\n // this.detailModified.some(generatedItem => generatedItem.codeNomEmployee === detailItem.employeeNum)\r\n // );\r\n this.detailModified.forEach(element => {\r\n let e = this.detail.find(x => x.employeeNum == element.codeNomEmployee);\r\n element.employeeId = e.employeeId;\r\n element.commissionPeriodId = e.commissionPeriodId;\r\n });\r\n this.detail.forEach(element => {\r\n for (var v = 13; v < numColumns - 1; v++) {\r\n let d = {} as IDtoCommissionPeriodDetail;\r\n let c = this.columns[v];\r\n Object.entries(element).forEach(entry => {\r\n const [key, value] = entry;\r\n if (key == c.data) {\r\n d.customerCommissionId = +c.data;\r\n d.value = +value;\r\n d.employeeId = element.employeeId;\r\n }\r\n if (key == \"commissionPeriodId\") {\r\n d.commissionPeriodId = +value;\r\n }\r\n });\r\n details.push(d);\r\n }\r\n });\r\n this.detailModified = this.detailModified.filter(item => item.value !== null);\r\n this.actualizarListaEnBloques(this.detailModified, 50);\r\n }\r\n async actualizarListaEnBloques(list: IDtoCommissionPeriodDetail[], tamanoBloque: number) {\r\n try {\r\n const resultados = await this.commissionService.actualizarComisiones(list, tamanoBloque);\r\n let error = resultados.filter(r => r.exito == false);\r\n if (error.length > 0) {\r\n this.concludedSwal.title = '!El proceso no se completó correctamente!';\r\n this.concludedSwal.type = 'warning';\r\n } else {\r\n this.detailModified = [];\r\n this.concludedSwal.title = '!Proceso terminado con éxito!';\r\n this.concludedSwal.type = 'success';\r\n }\r\n this.concludedSwal.show();\r\n this.spinner.hide();\r\n this.settings.data = this.detail;\r\n } catch (error) {\r\n this.concludedSwal.title = '!El proceso no se completó correctamente!';\r\n this.concludedSwal.type = 'warning';\r\n this.concludedSwal.show();\r\n }\r\n }\r\n private getCommissionPeriodDetails(): void {\r\n const options = { style: 'currency', currency: 'MXN' };\r\n const format = new Intl.NumberFormat('es-MX', options);\r\n this.commissionService.getCommissionPeriodDetails(this.commissionPeriodIdUrl, +this.employeeIniId, this.routeType, this.profile).subscribe((res) => {\r\n if (!res.isCorrect) {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n return;\r\n }\r\n this.payroll = res.data[2];\r\n this.getListEmployeeActive();\r\n if (res.data[0].length < 1) {\r\n this.configGeneral.newToast('Error', \"No existen datos para mostrar\", 'error');\r\n this.spinner.hide();\r\n //this.getListEmloyeePairollIds();\r\n return;\r\n }\r\n this.detail = res.data[0];// as any[];\r\n this.headerDetail = this.detail[0];\r\n this.columns = res.data[1];// as IDtoCommissionDetailColumnTable[];\r\n\r\n this.deadLineCoordinator = new Date(this.payroll.deadLineCoordinator).toLocaleDateString('es-mx', { year: \"numeric\", month: \"long\", day: \"numeric\" })\r\n if (this.payroll.isLocked == true && this.payroll.statusName == 'Cerrada') {\r\n this.payroll.statusNameTitle = this.payroll.statusName + \"/\" + this.payroll.statusNameTitle + \"/Bloqueada\"\r\n }\r\n else if (this.payroll.isLocked == false && this.payroll.statusName == 'Cerrada') {\r\n this.payroll.statusNameTitle = this.payroll.statusName + \"/\" + this.payroll.statusNameTitle + \"/Desbloqueada\"\r\n }\r\n else if (this.payroll.isLocked == true && this.payroll.statusName == 'Abierta') {\r\n this.payroll.statusNameTitle = this.payroll.statusName + \"/\" + this.payroll.statusNameTitle\r\n }\r\n this.tableSettings = {\r\n data: this.detail,\r\n columns: this.columns,\r\n afterChange: (changes, src) => {\r\n let numColumns = this.columns.length;\r\n let resume = '';\r\n let employeesNum = this.detail.length;\r\n let id = document.getElementById('resume');\r\n resume = resume + `

TOTAL TRABAJADORES: ${employeesNum}

FECHA LIMITE: ${this.deadLineCoordinator}

`;\r\n for (var v = 13; v < numColumns - 1; v++) {\r\n let nameColum = this.columns[v];\r\n let values = this.hotRegisterer.getInstance(this.hotId).getDataAtCol(v);\r\n let sum: number = 0;\r\n values.forEach(a => sum += +a);\r\n resume = resume + `

${nameColum.title}: ${format.format(sum)}

`;\r\n }\r\n id.innerHTML = resume;\r\n if (changes != null) {\r\n for (let e = 0; e < changes.length; e++) {\r\n let currentVal = changes[e][3];\r\n let column = changes[e][1];\r\n\r\n if (column != 'total') {\r\n let i = changes[e][0];\r\n let data = this.hotRegisterer.getInstance(this.hotId).getDataAtRow(i) as any;\r\n let finalTotal = 0;\r\n\r\n if (!isNaN(currentVal)) {\r\n let chainMaxValues = data[12];\r\n let maxValues = chainMaxValues.split(',');\r\n let exist = false;\r\n let valMax = 0;\r\n let col = this.columns.filter(x => x.data == column)[0];\r\n let numColumnEdit = this.columns.indexOf(col);\r\n maxValues.forEach(element => {\r\n let max = element.split('|');\r\n if (max[0] == column) {\r\n exist = true;\r\n valMax = +max[1];\r\n }\r\n });\r\n if (exist) {\r\n if (currentVal == null){\r\n this.hotRegisterer.getInstance(this.hotId).setDataAtCell(i, numColumnEdit, 0);\r\n }\r\n if (currentVal > valMax) {\r\n this.hotRegisterer.getInstance(this.hotId).setDataAtCell(i, numColumnEdit, 'Máximo-excedido');\r\n } else {\r\n let any = this.detailModified.find(x => x.codeNomEmployee == data[0] && x.customerCommissionId == column);\r\n if (any) {\r\n any.value = currentVal;\r\n } else {\r\n let temp = {} as IDtoCommissionPeriodDetail;\r\n temp.codeNomEmployee = data[0];\r\n temp.customerCommissionId = column;\r\n temp.value = currentVal;\r\n this.detailModified.push(temp);\r\n }\r\n for (var v = 13; v < numColumns - 1; v++) {\r\n if (data[v] != 'No-comisión') {\r\n finalTotal = data[v] + finalTotal;\r\n }\r\n }\r\n this.hotRegisterer.getInstance(this.hotId).setDataAtCell(i, numColumns - 1, finalTotal);\r\n }\r\n } else {\r\n this.hotRegisterer.getInstance(this.hotId).setDataAtCell(i, numColumnEdit, 'No-comisión');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n // beforeKeyDown: (event) => {\r\n // var reg = /^\\d+$/;\r\n // if (!reg.test(event.key)) {\r\n // event.preventDefault()\r\n // }\r\n // },\r\n startRows: 5,\r\n startCols: 5,\r\n rowHeaders: true,\r\n colHeaders: true,\r\n stretchH: 'all',\r\n width: '100%',\r\n height: 320,\r\n filters: true,\r\n manualColumnResize: true,\r\n fixedColumnsLeft: 2,\r\n //contextMenu: true,\r\n dropdownMenu: [\r\n 'filter_by_condition',\r\n '---------',\r\n 'filter_operators',\r\n '---------',\r\n 'filter_by_condition2',\r\n '---------',\r\n 'filter_by_value',\r\n '---------',\r\n 'filter_action_bar'\r\n ],\r\n hiddenColumns: {\r\n columns: [11, 12]\r\n },\r\n afterFilter: function () {\r\n let colums = this.getColHeader();\r\n let numColumns = colums.length;\r\n let resume = '';\r\n let employeesNum = this.getDataAtCol(13);\r\n let id = document.getElementById('resume');\r\n if (arguments[0][0]) {\r\n\r\n resume = resume + `

TRABAJADORES FILTRADOS: ${employeesNum.length}

`;\r\n for (var v = 13; v < numColumns - 1; v++) {\r\n let nameColum = colums[v];\r\n let values = this.getDataAtCol(v);\r\n let sum: number = 0;\r\n values.forEach(a => sum += +a);\r\n resume = resume + `

${nameColum}: ${format.format(sum)}

`;\r\n }\r\n } else {\r\n resume = resume + `

TOTAL TRABAJADORES: ${employeesNum.length}

FECHA LIMITE: ${this.deadLineCoordinator}

`;\r\n for (var v = 13; v < numColumns - 1; v++) {\r\n let nameColum = colums[v];\r\n let values = this.getDataAtCol(v);\r\n let sum: number = 0;\r\n values.forEach(a => sum += +a);\r\n resume = resume + `

${nameColum}: ${format.format(sum)}

`;\r\n }\r\n //no filter is attached\r\n }\r\n id.innerHTML = resume;\r\n }\r\n }\r\n this.hot2.updateHotTable(this.tableSettings);\r\n //this.getListEmloyeePairollIds();\r\n //this.getListEmployeeActive();\r\n this.spinner.hide();\r\n\r\n console.log(this.payroll);\r\n });\r\n }\r\n private getBonusPeriodDetails(commissionPeriodId: number): void {\r\n this.spinner.show();\r\n this.commissionService.getBonusPeriodDetailsByCommissionPeriodIdAndBossId(commissionPeriodId, Number(this.employeeIniId)).subscribe((res) => {\r\n if (res != null) {\r\n this.headerBonusDetail = res.data[0];\r\n this.bonusDetail = res.data[1];\r\n this.bonusDetail.reverse();\r\n this.spinner.hide();\r\n }\r\n });\r\n }\r\n private getBonusPeriodByCommissionPeriodId(commissionPeriodId: number): void {\r\n this.spinner.show();\r\n this.commissionService.getBonusPeriodByCommissionPeriodId(commissionPeriodId).subscribe((res) => {\r\n this.bonusPeriod = res.data as IDtoBonusPeriod;\r\n this.spinner.hide();\r\n });\r\n }\r\n private getCommissionPeriod(id: any, routeType: string): void {\r\n this.commissionService.getCommissionPeriodById(id, routeType).subscribe((res) => {\r\n this.commissionPeriod = res;\r\n this.commissionPeriodId = this.commissionPeriod.id;\r\n this.getBudgets(this.commissionPeriod.customerId);\r\n this.getBonusPeriodDetails(this.commissionPeriodId);\r\n this.getBonusPeriodByCommissionPeriodId(this.commissionPeriodId);\r\n });\r\n }\r\n private getBudgets(customerId: number): void {\r\n this.budgetService.getBudgetWithBonusByCustomerId(customerId).subscribe((res) => {\r\n this.listBudgets = res.data as Array;\r\n });\r\n }\r\n private changeBudget(dto: IDtoBudget): void {\r\n this.formCreateBonus.get('bonusId').setValue(null);\r\n this.formCreateBonus.get('employeeIds').setValue(null);\r\n if (dto === undefined) {\r\n return;\r\n }\r\n this.listBonus = dto.bonusDetails;\r\n }\r\n private changeBonus(dto: IDtoBonusDetail): void {\r\n this.formCreateBonus.get('employeeIds').setValue(null);\r\n if (dto === undefined) {\r\n return;\r\n }\r\n this.listEmployees = [];\r\n //this.listEmployees = this.getEmployeeTem(dto);\r\n this.listEmployees = this.tempListEmployees.filter(x => x.jobId == dto.positionId);\r\n this.refresCalculateTotalByBonus(dto);\r\n }\r\n private getEmployeeTem(dto: IDtoBonusDetail): IDtoEmployee[] {\r\n const employees = new Array() as IDtoEmployee[];\r\n this.employeePayrollIds.forEach(element => {\r\n const z = this.tempListEmployees.filter(x => x.id == element && x.jobId == dto.positionId)[0];\r\n if (z != undefined)\r\n employees.push(z);\r\n });\r\n return employees;\r\n }\r\n private addBonusProcess(): void {\r\n if (!this.formCreateBonus.valid) {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.touchedControls(this.formCreateBonus);\r\n return;\r\n }\r\n if (this.payroll.isLocked == true){\r\n if (this.payroll.statusName == 'Cerrada'){\r\n this.configGeneral.newToast('Validación', 'Prenomina cerrada, no se permite ingresar mas bonos', 'warning');\r\n this.touchedControls(this.formCreateBonus);\r\n return;\r\n }\r\n }\r\n\r\n let item = this.formCreateBonus.value as IDtoBonusPeriodDetail;\r\n item.bossId = Number(this.employeeIniId);\r\n let bonus = this.listBonus.filter(b => b.id == item.bonusId)[0];\r\n this.formCreateBonus.get('employeeIds').setValue(item.employeeIds);\r\n this.calculateTotalByBonus(bonus, item);\r\n }\r\n private addBonus(item: IDtoBonusPeriodDetail, bonus: IDtoBonusDetail): void {\r\n let detail: IDtoBonusDetail;\r\n let contador: number = 0;\r\n\r\n let employee = this.listEmployees.filter(b => b.id == item.employeeIds[0])[0];\r\n\r\n for (let employeeId of item.employeeIds) {\r\n let detail = this.bonusPeriod.bonusPeriodDetails.filter(p => p.employeeId == employeeId && p.customerCommissionId == bonus.customerCommissionId);\r\n if (detail.length > 0) {\r\n contador = 1;\r\n }\r\n }\r\n if (contador >= 1) {\r\n this.configGeneral.newToast('Validación', 'Ya existe un registro con los datos seleccionados. Puede eliminarlo para poder continuar', 'error');\r\n return;\r\n }\r\n else {\r\n item.customerCommissionId = bonus.customerCommissionId;\r\n item.customerCommissionName = bonus.customerCommissionName;\r\n item.jobId = employee.jobId;\r\n item.payrollId = this.payroll.id;\r\n item.status = 'add';\r\n item.bossId = Number(this.employeeIniId);\r\n this.bonusPeriod.bonusPeriodDetails.unshift(item);\r\n if (this.bonusPeriod.id > 0) {\r\n item.bonusPeriodId = this.bonusPeriod.id;\r\n item.integrate = bonus.integrate;\r\n this.addBonusPeriodDetail(item);\r\n } else {\r\n this.addBonusPeriod();\r\n }\r\n this.formCreateBonus.reset();\r\n }\r\n }\r\n private refresCalculateTotalByBonus(bonus: IDtoBonusDetail): void {\r\n this.usedAmountTotal = 0;\r\n this.usedQuantityTotal = 0;\r\n let detail = this.bonusPeriod.bonusPeriodDetails.filter(b => b.customerCommissionId == bonus.customerCommissionId && b.jobId == bonus.positionId && b.budgetId == bonus.budgetId);\r\n detail.filter(x => x.status != 'delete').forEach(a => this.usedAmountTotal += +a.value);\r\n this.usedAmountTotal = this.usedAmountTotal;\r\n\r\n this.usedQuantityTotal = detail.length;\r\n }\r\n private calculateTotalByBonus(bonus: IDtoBonusDetail, item: IDtoBonusPeriodDetail): void {\r\n this.usedAmountTotal = 0;\r\n this.usedQuantityTotal = 0;\r\n let detail = this.bonusPeriod.bonusPeriodDetails.filter(b => b.customerCommissionId == bonus.customerCommissionId && b.jobId == bonus.positionId && b.budgetId == bonus.budgetId);\r\n detail.filter(x => x.status != 'delete').forEach(a => this.usedAmountTotal += +a.value);\r\n this.usedAmountTotal = this.usedAmountTotal;\r\n\r\n this.usedQuantityTotal = detail.length + item.employeeIds.length;\r\n if (this.usedQuantityTotal > bonus.quantity) {\r\n this.configGeneral.newToast('Validación', 'Las cantidades disponibles para el bono seleccionado ya han sido agotadas', 'error');\r\n return;\r\n }\r\n let cal = (+item.value * item.employeeIds.length + this.usedAmountTotal);\r\n if (this.usedAmountTotal > bonus.subTotal || cal > bonus.subTotal) {\r\n this.configGeneral.newToast('Validación', 'Los montos disponibles para el bono seleccionado han sido agotado', 'error');\r\n return;\r\n }\r\n this.addBonus(item, bonus);\r\n }\r\n private touchedControls(form: FormGroup): void {\r\n Object.keys(form.controls).forEach(field => {\r\n const control = form.get(field);\r\n control.markAsTouched({ onlySelf: true });\r\n });\r\n }\r\n // private submitBonusPeriod(): void {\r\n // if (this.bonusPeriod.id > 0) {\r\n // this.updateBonusPeriod();\r\n // } else {\r\n // this.addBonusPeriod();\r\n // }\r\n // }\r\n private updateBonusPeriod(): void {\r\n this.spinner.show();\r\n this.commissionService.updateBonusPeriodDetails(this.bonusPeriod)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.getBonusPeriodDetails(this.commissionPeriodId);\r\n this.getBonusPeriodByCommissionPeriodId(this.commissionPeriodId);\r\n //this.addModuleLog(this.budget.id, 'update');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private deleteBonusPeriodDetaisEmployee(item: any): void {\r\n this.confirmSwal.title = '¿Seguro que desea eliminar el registro seleccionado? Esta acción eliminará todas las comisiones asociadas a este empleado';\r\n this.confirmSwal.show().then((result) => {\r\n if (result.value) {\r\n this.spinner.show();\r\n let employeeId = item.items[0].data;\r\n this.commissionService.deleteBonusPeriodDetailsEmployee(this.bonusPeriod.id, employeeId, this.payroll.id)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.getBonusPeriodDetails(this.commissionPeriodId);\r\n this.getBonusPeriodByCommissionPeriodId(this.commissionPeriodId);\r\n //this.addModuleLog(this.budget.id, 'update');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n });\r\n }\r\n private addBonusPeriod(): void {\r\n this.spinner.show();\r\n this.commissionService.addBonusPeriod(this.bonusPeriod)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.getBonusPeriodDetails(this.commissionPeriodId);\r\n this.getBonusPeriodByCommissionPeriodId(this.commissionPeriodId);\r\n //this.addModuleLog(this.budget.id, 'update');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private addBonusPeriodDetail(item: IDtoBonusPeriodDetail): void {\r\n this.spinner.show();\r\n this.commissionService.addBonusPeriodDetail(item)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.getBonusPeriodDetails(this.commissionPeriodId);\r\n this.getBonusPeriodByCommissionPeriodId(this.commissionPeriodId);\r\n //this.addModuleLog(this.budget.id, 'update');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private downloadFileCommissions(): void {\r\n this.spinner.show();\r\n this.commissionService.downloadFileCommissions(this.headerDetail.commissionPeriodId).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, `Comisiones periodo: ${this.headerDetail.periodNom} del proyecto ${this.headerDetail.project}`);\r\n this.spinner.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private handleFileInput(files: FileList) {\r\n this.uploadFileCommissions(files);\r\n }\r\n private uploadFileCommissions(files: FileList): void {\r\n if (files != undefined) {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = files.item(0).name;\r\n let ticks = ((new Date().getTime() * 10000) + 621355968000000000);\r\n let fileNameNew = `$${ticks}-${fileName}`;\r\n document.fileName = fileNameNew;\r\n this.fileName = fileNameNew;\r\n const file = files.item(0);\r\n this.commissionService.addFileCommissions(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n this.addModuleLog(this.headerDetail.commissionPeriodId);\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n }\r\n\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'CommissionPeriods';\r\n dto.module = 'Commission';\r\n dto.action = 'upload';\r\n dto.registryAffectedId = id;\r\n dto.userId = this.employeeIniId;\r\n dto.employeeId = 0;\r\n dto.role = 'Cliente';\r\n this.identityService.addModuleLogComplete(dto).subscribe(\r\n (x) => { });\r\n }\r\n updatePayroll() {\r\n\r\n this.detailModified.forEach(element => {\r\n let e = this.detail.find(x => x.employeeNum == element.codeNomEmployee);\r\n element.employeeId = e.employeeId;\r\n element.commissionPeriodId = e.commissionPeriodId;\r\n });\r\n\r\n this.commissionService.getCommissionPeriodDetailSummaryAmount(this.headerDetail.commissionPeriodId, +this.employeeIniId, this.detailModified)\r\n .subscribe((res) => {\r\n if (!res.isCorrect) {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n return;\r\n } else {\r\n const resultData = res.data.toString();\r\n this.confirmSwalSynchronize.title = `La información será actualizada; ${resultData}. ¿Seguro que desea continuar?`;\r\n this.confirmSwalSynchronize.show().then((result) => {\r\n if (result.value) {\r\n this.spinner.show();\r\n this.commissionService.UpdateCommissionInPayroll(this.headerDetail.commissionPeriodId, +this.employeeIniId)\r\n .subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.concludedSwalSynchronize.title = `!El proceso se completó correctamente! se sincronizaron: ${resultData}`;\r\n this.concludedSwalSynchronize.type = 'success';\r\n this.concludedSwalSynchronize.show();\r\n //this.configGeneral.newToast('Éxito', res.message, 'success');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","module.exports = \".header-01 {\\n height: 50px;\\n border: 1px solid #dddddd;\\n text-align: left;\\n padding: 10px 0;\\n padding-left: 10px;\\n}\\n\\n.header-02 {\\n background-color: #F8AC5A;\\n height: 50px;\\n border: 1px solid #dddddd;\\n text-align: center;\\n padding: 15px 0;\\n}\\n\\n.mt-8 {\\n margin-top: -8px;\\n}\\n\\n.mt-15 {\\n margin-top: -15px;\\n}\\n\\n.m-header {\\n margin: 0 -14px;\\n}\\n\\n.m-footer {\\n margin: 20px -14px 0 -14px;\\n}\\n\\n#th:nth-child(even) {\\n background: #FFF;\\n width: 20%;\\n}\\n\\n#th:nth-child(odd) {\\n background: #E6E6E6;\\n width: 15%;\\n}\\n\\nul, li {\\n display: inline;\\n}\\n\\n/* stylelint-disable order/properties-alphabetical-order */\\n\\n/* stylelint-enable */\\n\\n@-webkit-keyframes fake {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes fake {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\nbody {\\n -webkit-animation: fake 1s infinite;\\n animation: fake 1s infinite;\\n}\\n\\n.worko-tabs {\\n margin: 0 15px -30px 0;\\n width: 98%;\\n}\\n\\n.worko-tabs .state {\\n position: absolute;\\n left: -10000px;\\n}\\n\\n.worko-tabs .flex-tabs {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n flex-wrap: wrap;\\n padding-left: 15px;\\n}\\n\\n.worko-tabs .flex-tabs .tab {\\n -webkit-box-flex: 1;\\n flex-grow: 1;\\n max-height: 40px;\\n}\\n\\n.worko-tabs .flex-tabs .panel {\\n background-color: #fff;\\n padding-left: 30px;\\n display: none;\\n width: 100%;\\n flex-basis: auto;\\n}\\n\\n.worko-tabs .tab {\\n display: inline-block;\\n padding: 10px;\\n vertical-align: top;\\n background-color: #eee;\\n cursor: hand;\\n cursor: pointer;\\n border-left: 10px solid #ccc;\\n}\\n\\n.worko-tabs .tab:hover {\\n background-color: #fff;\\n}\\n\\n#tab-one:checked ~ .tabs #tab-one-label,\\n#tab-two:checked ~ .tabs #tab-two-label {\\n background-color: #fff;\\n cursor: default;\\n border-left-color: #1ab394;\\n}\\n\\n#tab-one:checked ~ .tabs #tab-one-panel,\\n#tab-two:checked ~ .tabs #tab-two-panel {\\n display: block;\\n}\\n\\n@media (max-width: 600px) {\\n .flex-tabs {\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n }\\n .flex-tabs .tab {\\n background: #fff;\\n border-bottom: 1px solid #ccc;\\n }\\n .flex-tabs .tab:last-of-type {\\n border-bottom: none;\\n }\\n .flex-tabs #tab-one-label {\\n -webkit-box-ordinal-group: 2;\\n order: 1;\\n }\\n .flex-tabs #tab-two-label {\\n -webkit-box-ordinal-group: 4;\\n order: 3;\\n }\\n .flex-tabs #tab-one-panel {\\n -webkit-box-ordinal-group: 3;\\n order: 2;\\n }\\n .flex-tabs #tab-two-panel {\\n -webkit-box-ordinal-group: 5;\\n order: 4;\\n }\\n\\n #tab-one:checked ~ .tabs #tab-one-label,\\n#tab-two:checked ~ .tabs #tab-two-label {\\n border-bottom: none;\\n }\\n\\n #tab-one:checked ~ .tabs #tab-one-panel,\\n#tab-two:checked ~ .tabs #tab-two-panel {\\n border-bottom: 1px solid #ccc;\\n }\\n}\\n\\n.table-header-rotated th {\\n width: auto;\\n border-top: 1px solid #dddddd;\\n border-left: 1px solid #dddddd;\\n border-right: 1px solid #dddddd;\\n vertical-align: left;\\n text-align: left;\\n}\\n\\n.table-header-rotated td {\\n width: 40px;\\n border-top: 1px solid #dddddd;\\n border-left: 1px solid #dddddd;\\n border-right: 1px solid #dddddd;\\n vertical-align: left;\\n text-align: left;\\n}\\n\\n.scrollH {\\n width: 100%;\\n overflow-x: auto;\\n white-space: nowrap;\\n}\\n\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcGF5cm9sbC9jb21taXNzaW9ucy9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHBheXJvbGxcXGNvbW1pc3Npb25zXFxjb21taXNzaW9uLWRldGFpbC5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9wYXlyb2xsL2NvbW1pc3Npb25zL2NvbW1pc3Npb24tZGV0YWlsLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3BheXJvbGwvY29tbWlzc2lvbnMvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9ub2RlX21vZHVsZXNcXGJvdXJib25cXGNvcmVcXGJvdXJib25cXGxpYnJhcnlcXF9vdmVyZmxvdy13cmFwLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDSSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtBQ0FKOztBREVBO0VBQ0kseUJBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7QUNDSjs7QURDQTtFQUNJLGdCQUFBO0FDRUo7O0FEQUE7RUFDSSxpQkFBQTtBQ0dKOztBRERBO0VBQ0ksZUFBQTtBQ0lKOztBREZBO0VBQ0ksMEJBQUE7QUNLSjs7QURGQTtFQUNJLGdCQUFBO0VBQ0EsVUFBQTtBQ0tKOztBREhBO0VBQ0ksbUJBQUE7RUFDQSxVQUFBO0FDTUo7O0FESkE7RUFDSSxlQUFBO0FDT0o7O0FDeEJBLDBEQUFBOztBQU9BLHFCQUFBOztBRmdCQTtFQUNFO0lBQ0UsVUFBQTtFQ01GO0VESEE7SUFDRSxVQUFBO0VDS0Y7QUFDRjs7QURaQTtFQUNFO0lBQ0UsVUFBQTtFQ01GO0VESEE7SUFDRSxVQUFBO0VDS0Y7QUFDRjs7QURGQTtFQUNFLG1DQUFBO1VBQUEsMkJBQUE7QUNJRjs7QUREQTtFQUNFLHNCQUFBO0VBQ0EsVUFBQTtBQ0lGOztBREZFO0VBQ0Usa0JBQUE7RUFDQSxjQUFBO0FDSUo7O0FEREU7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0FDR0o7O0FERkk7RUFDRSxtQkFBQTtVQUFBLFlBQUE7RUFDQSxnQkFBQTtBQ0lOOztBRERJO0VBQ0Usc0JBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7QUNHTjs7QURDRTtFQUNFLHFCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLDRCQUFBO0FDQ0o7O0FEQ0k7RUFDRSxzQkFBQTtBQ0NOOztBRElBOztFQUVFLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLDBCQUFBO0FDREY7O0FESUE7O0VBRUUsY0FBQTtBQ0RGOztBRElBO0VBQ0U7SUFDRSw0QkFBQTtJQUFBLDZCQUFBO1lBQUEsc0JBQUE7RUNERjtFREdFO0lBQ0UsZ0JBQUE7SUFDQSw2QkFBQTtFQ0RKO0VER0k7SUFDRSxtQkFBQTtFQ0ROO0VES0U7SUFDRSw0QkFBQTtZQUFBLFFBQUE7RUNISjtFRE1FO0lBQ0UsNEJBQUE7WUFBQSxRQUFBO0VDSko7RURPRTtJQUNFLDRCQUFBO1lBQUEsUUFBQTtFQ0xKO0VEUUU7SUFDRSw0QkFBQTtZQUFBLFFBQUE7RUNOSjs7RURVQTs7SUFFRSxtQkFBQTtFQ1BGOztFRFVBOztJQUVFLDZCQUFBO0VDUEY7QUFDRjs7QURVQTtFQUNFLFdBQUE7RUFDQSw2QkFBQTtFQUNBLDhCQUFBO0VBQ0EsK0JBQUE7RUFDQSxvQkFBQTtFQUNBLGdCQUFBO0FDUkY7O0FEV0E7RUFDRSxXQUFBO0VBQ0EsNkJBQUE7RUFDQSw4QkFBQTtFQUNBLCtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxnQkFBQTtBQ1JGOztBRFdBO0VBQ0UsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7QUNSRjs7QURXQTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtBQ1JGOztBRFdBO0VBQ0UscUJBQUE7RUFDRSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsMEJBQUE7RUFDQSxlQUFBO0VBQ0Esc0JBQUE7RUFDQSw2QkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTtBQ1JKOztBRFdBO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtBQ1JGIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvcGF5cm9sbC9jb21taXNzaW9ucy9jb21taXNzaW9uLWRldGFpbC5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLyo9PT09PT09PT09IFRBQkxBIDAxID09PT09PT0qL1xyXG4uaGVhZGVyLTAxe1xyXG4gICAgaGVpZ2h0OjUwcHg7XHJcbiAgICBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7XHJcbiAgICB0ZXh0LWFsaWduOmxlZnQ7XHJcbiAgICBwYWRkaW5nOjEwcHggMDtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweFxyXG59XHJcbi5oZWFkZXItMDIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjojRjhBQzVBO1xyXG4gICAgaGVpZ2h0OjUwcHg7XHJcbiAgICBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7XHJcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuICAgIHBhZGRpbmc6MTVweCAwXHJcbn1cclxuLm10LTgge1xyXG4gICAgbWFyZ2luLXRvcDogLThweFxyXG59XHJcbi5tdC0xNSB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMTVweFxyXG59XHJcbi5tLWhlYWRlciB7XHJcbiAgICBtYXJnaW46IDAgLTE0cHhcclxufVxyXG4ubS1mb290ZXIge1xyXG4gICAgbWFyZ2luOiAyMHB4IC0xNHB4IDAgLTE0cHhcclxufVxyXG5cclxuI3RoOm50aC1jaGlsZChldmVuKSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRkZGO1xyXG4gICAgd2lkdGg6IDIwJTtcclxufVxyXG4jdGg6bnRoLWNoaWxkKG9kZCkge1xyXG4gICAgYmFja2dyb3VuZDogI0U2RTZFNjtcclxuICAgIHdpZHRoOiAxNSVcclxufVxyXG51bCwgbGkge1xyXG4gICAgZGlzcGxheTppbmxpbmVcclxufVxyXG5cclxuQGltcG9ydCBcIi4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2NvcmUvYm91cmJvblwiO1xyXG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9jb3JlL25lYXRcIjtcclxuXHJcbkBrZXlmcmFtZXMgZmFrZSB7XHJcbiAgZnJvbSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxuXHJcbiAgdG8ge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gIGFuaW1hdGlvbjogZmFrZSAxcyBpbmZpbml0ZTtcclxufVxyXG5cclxuLndvcmtvLXRhYnMge1xyXG4gIG1hcmdpbjogMCAxNXB4IC0zMHB4IDAgO1xyXG4gIHdpZHRoOiA5OCU7XHJcblxyXG4gIC5zdGF0ZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAtMTAwMDBweDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXRhYnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuICAgIC50YWIge1xyXG4gICAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDQwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhbmVsIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgZmxleC1iYXNpczogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50YWIge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xyXG4gICAgY3Vyc29yOiBoYW5kO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2NjYztcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiN0YWItb25lOmNoZWNrZWR+LnRhYnMgI3RhYi1vbmUtbGFiZWwsXHJcbiN0YWItdHdvOmNoZWNrZWR+LnRhYnMgI3RhYi10d28tbGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMWFiMzk0O1xyXG59XHJcblxyXG4jdGFiLW9uZTpjaGVja2Vkfi50YWJzICN0YWItb25lLXBhbmVsLFxyXG4jdGFiLXR3bzpjaGVja2Vkfi50YWJzICN0YWItdHdvLXBhbmVsIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgLmZsZXgtdGFicyB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAgIC50YWIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcclxuXHJcbiAgICAgICY6bGFzdC1vZi10eXBlIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI3RhYi1vbmUtbGFiZWwge1xyXG4gICAgICBvcmRlcjogMTtcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLXR3by1sYWJlbCB7XHJcbiAgICAgIG9yZGVyOiAzO1xyXG4gICAgfVxyXG5cclxuICAgICN0YWItb25lLXBhbmVsIHtcclxuICAgICAgb3JkZXI6IDI7XHJcbiAgICB9XHJcblxyXG4gICAgI3RhYi10d28tcGFuZWwge1xyXG4gICAgICBvcmRlcjogNDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICN0YWItb25lOmNoZWNrZWR+LnRhYnMgI3RhYi1vbmUtbGFiZWwsXHJcbiAgI3RhYi10d286Y2hlY2tlZH4udGFicyAjdGFiLXR3by1sYWJlbCB7XHJcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gIH1cclxuXHJcbiAgI3RhYi1vbmU6Y2hlY2tlZH4udGFicyAjdGFiLW9uZS1wYW5lbCxcclxuICAjdGFiLXR3bzpjaGVja2Vkfi50YWJzICN0YWItdHdvLXBhbmVsIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xyXG4gIH1cclxufVxyXG5cclxuLnRhYmxlLWhlYWRlci1yb3RhdGVkIHRoe1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkZGRkO1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZGRkZDtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkZGRkO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBsZWZ0O1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbi50YWJsZS1oZWFkZXItcm90YXRlZCB0ZHtcclxuICB3aWR0aDogNDBweDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZGRkZDtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZGRkZGQ7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZGRkZDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbGVmdDtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG4uc2Nyb2xsSCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgb3ZlcmZsb3cteDogYXV0bztcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmJ0bnVwIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBwYWRkaW5nOiA2cHggMTJweDtcclxuICAgIGZvbnQtc2l6ZTogOXB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG59XHJcblxyXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIgaW5wdXRbdHlwZT1maWxlXSB7XHJcbiAgZm9udC1zaXplOiAxMDBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgb3BhY2l0eTogMDtcclxufSIsIi5oZWFkZXItMDEge1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4uaGVhZGVyLTAyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y4QUM1QTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE1cHggMDtcbn1cblxuLm10LTgge1xuICBtYXJnaW4tdG9wOiAtOHB4O1xufVxuXG4ubXQtMTUge1xuICBtYXJnaW4tdG9wOiAtMTVweDtcbn1cblxuLm0taGVhZGVyIHtcbiAgbWFyZ2luOiAwIC0xNHB4O1xufVxuXG4ubS1mb290ZXIge1xuICBtYXJnaW46IDIwcHggLTE0cHggMCAtMTRweDtcbn1cblxuI3RoOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQ6ICNGRkY7XG4gIHdpZHRoOiAyMCU7XG59XG5cbiN0aDpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQ6ICNFNkU2RTY7XG4gIHdpZHRoOiAxNSU7XG59XG5cbnVsLCBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvcHJvcGVydGllcy1hbHBoYWJldGljYWwtb3JkZXIgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbkBrZXlmcmFtZXMgZmFrZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbmJvZHkge1xuICBhbmltYXRpb246IGZha2UgMXMgaW5maW5pdGU7XG59XG5cbi53b3Jrby10YWJzIHtcbiAgbWFyZ2luOiAwIDE1cHggLTMwcHggMDtcbiAgd2lkdGg6IDk4JTtcbn1cbi53b3Jrby10YWJzIC5zdGF0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwMDAwcHg7XG59XG4ud29ya28tdGFicyAuZmxleC10YWJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbn1cbi53b3Jrby10YWJzIC5mbGV4LXRhYnMgLnRhYiB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWF4LWhlaWdodDogNDBweDtcbn1cbi53b3Jrby10YWJzIC5mbGV4LXRhYnMgLnBhbmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC1iYXNpczogYXV0bztcbn1cbi53b3Jrby10YWJzIC50YWIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGN1cnNvcjogaGFuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjY2NjO1xufVxuLndvcmtvLXRhYnMgLnRhYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbiN0YWItb25lOmNoZWNrZWQgfiAudGFicyAjdGFiLW9uZS1sYWJlbCxcbiN0YWItdHdvOmNoZWNrZWQgfiAudGFicyAjdGFiLXR3by1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMxYWIzOTQ7XG59XG5cbiN0YWItb25lOmNoZWNrZWQgfiAudGFicyAjdGFiLW9uZS1wYW5lbCxcbiN0YWItdHdvOmNoZWNrZWQgfiAudGFicyAjdGFiLXR3by1wYW5lbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmZsZXgtdGFicyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuZmxleC10YWJzIC50YWIge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIH1cbiAgLmZsZXgtdGFicyAudGFiOmxhc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxuICAuZmxleC10YWJzICN0YWItb25lLWxhYmVsIHtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAuZmxleC10YWJzICN0YWItdHdvLWxhYmVsIHtcbiAgICBvcmRlcjogMztcbiAgfVxuICAuZmxleC10YWJzICN0YWItb25lLXBhbmVsIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAuZmxleC10YWJzICN0YWItdHdvLXBhbmVsIHtcbiAgICBvcmRlcjogNDtcbiAgfVxuXG4gICN0YWItb25lOmNoZWNrZWQgfiAudGFicyAjdGFiLW9uZS1sYWJlbCxcbiN0YWItdHdvOmNoZWNrZWQgfiAudGFicyAjdGFiLXR3by1sYWJlbCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxuXG4gICN0YWItb25lOmNoZWNrZWQgfiAudGFicyAjdGFiLW9uZS1wYW5lbCxcbiN0YWItdHdvOmNoZWNrZWQgfiAudGFicyAjdGFiLXR3by1wYW5lbCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIH1cbn1cbi50YWJsZS1oZWFkZXItcm90YXRlZCB0aCB7XG4gIHdpZHRoOiBhdXRvO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZGRkZDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkZGRkO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkZGRkO1xuICB2ZXJ0aWNhbC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnRhYmxlLWhlYWRlci1yb3RhdGVkIHRkIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkZGRkO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIHZlcnRpY2FsLWFsaWduOiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uc2Nyb2xsSCB7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmJ0bnVwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi51cGxvYWQtYnRudXAtd3JhcHBlciBpbnB1dFt0eXBlPWZpbGVdIHtcbiAgZm9udC1zaXplOiAxMDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG9wYWNpdHk6IDA7XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gT3V0cHV0cyB0aGUgYG92ZXJmbG93LXdyYXBgIHByb3BlcnR5IGFuZCBpdHMgbGVnYWN5IG5hbWUgYHdvcmQtd3JhcGAgdG9cbi8vLyBzdXBwb3J0IGJyb3dzZXJzIHRoYXQgZG8gbm90IHlldCB1c2UgYG92ZXJmbG93LXdyYXBgLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtzdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgQWNjZXB0ZWQgQ1NTIHZhbHVlcyBhcmUgYG5vcm1hbGAsIGBicmVhay13b3JkYCwgYGluaGVyaXRgLCBgaW5pdGlhbGAsXG4vLy8gICBvciBgdW5zZXRgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSBvdmVyZmxvdy13cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvcHJvcGVydGllcy1hbHBoYWJldGljYWwtb3JkZXIgKi9cblxuQG1peGluIG92ZXJmbG93LXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgd29yZC13cmFwOiAkd3JhcDtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoUrl } from 'app/shared/models/security/dto-url.model';\r\nimport { IUser } from 'app/shared/models/user.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-external-customer-commission',\r\n templateUrl: 'external-customer-commission.template.html'\r\n})\r\nexport class ExternalCustomerCommissionComponent implements OnInit {\r\n public nav: any;\r\n private authenticated = false;\r\n private errorMessages: any;\r\n private objUrl = {} as IDtoUrl;\r\n constructor(private serviceSecurity: SecurityService\r\n , private configurationService: ConfigurationService\r\n , private route: ActivatedRoute\r\n , private config: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private serviceIdentity: IdentityService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe((params) => {\r\n if (params['url']) {\r\n if (this.configurationService.isReady) {\r\n let u = params['url'];\r\n this.getRouteByUrl(u);\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n let u = params['url'];\r\n this.getRouteByUrl(u);\r\n });\r\n }\r\n }\r\n });\r\n this.serviceSecurity.authenticationChallengeExternal$.subscribe((res) => {\r\n this.authenticated = res;\r\n if (this.authenticated) {\r\n this.serviceSecurity.GetRolesUser('external-customer-commission', this.objUrl.route);\r\n this.spinner.hide();\r\n } else {\r\n this.spinner.hide();\r\n this.config.newToast('Validación', 'Datos incorrectos', 'error');\r\n }\r\n });\r\n }\r\n private getRouteByUrl(url: string): void {\r\n this.spinner.show()\r\n this.serviceIdentity.getRouteByUrl(url)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.spinner.hide();\r\n this.objUrl = x.data as IDtoUrl;\r\n this.login();\r\n } else {\r\n this.config.newToast('Error', x.message, 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private login() {\r\n let user = {} as IUser;\r\n user.system = this.config.getConfig().name;\r\n user.username = this.objUrl.user;\r\n user.password = this.objUrl.password;\r\n this.serviceSecurity.GetAuthorizationExternalUser(user);\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild, EventEmitter } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { IDtoJobCandidate } from 'app/shared/models/recruitment/dto-job-candidate.model';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ISlimScrollOptions, SlimScrollEvent } from 'ngx-slimscroll';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { StorageService } from 'app/shared/services/storage.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { RecruitmentService } from '../../recruitment/recruitment.service';\r\nimport { CustomerService } from '../../quote/customer.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { OrganizationService } from '../../organization/organization.service';\r\nimport { IDtoEmployeeFilter } from 'app/shared/models/employee/dto-employee-filter.model';\r\nimport { EmployeeService } from '../../employee.service';\r\nimport { IDtoPayrollEmployee } from 'app/shared/models/employee/dto-payroll-employee.model';\r\nimport { BudgetService } from '../../quote/budget.service';\r\nimport { PayrollService } from '../../payroll.service';\r\nimport { PositionService } from '../../quote/position.service';\r\nimport { IDtoCommissionFilter } from 'app/shared/models/commission/dto-commission-filter.model';\r\nimport { IDtoCommissionPeriod } from 'app/shared/models/commission/dto-commission-period.model';\r\nimport { CommissionService } from '../../commission.service';\r\nimport { IDtoProject } from 'app/shared/models/customer/dto-project.model';\r\n//import { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalBudgetApproverComponent } from 'app/views/modales/customer/budget-approver/modal-budget-approver.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { map } from 'rxjs/operators';\r\n@Component({\r\n selector: 'app-list-commissions',\r\n styleUrls: ['./list-commissions.style.scss'],\r\n templateUrl: 'list-commissions.template.html'\r\n})\r\nexport class ListCommissionsComponent implements OnDestroy, OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formFilter: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Listas */\r\n private commissions: IDtoCommissionPeriod[];\r\n /**Catalogos */\r\n\r\n private catalogCustomers: IDtoCatalog[];\r\n private catalogCustomers2: IDtoCatalog[];\r\n private catalogProjects: IDtoCatalog[];\r\n //private catalogPlans: Observable;\r\n private catalogPayrollTypes: IDtoCatalog[];\r\n private catalogYears: Observable;\r\n private catalogPeriods: IDtoCatalog[];\r\n /** */\r\n private statusLabelsMap = {\r\n 'Baja': '

Baja

',\r\n 'Laborando en Red': '

Laborando en Red

'\r\n };\r\n /**Variables */\r\n public nav: any;\r\n private now: number;\r\n private clients: any;\r\n /**Slim-control */\r\n optsSlim: ISlimScrollOptions;\r\n scrollEvents: EventEmitter;\r\n\r\n private profile: string;\r\n //private customer: string;\r\n private search: string;\r\n private projects = new Array() as IDtoProject[];\r\n private userId: number;\r\n private modalRef: BsModalRef;\r\n public constructor(private recruitmentService: RecruitmentService\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private storageService: StorageService\r\n , private identityService: IdentityService\r\n , private customerService: CustomerService\r\n , private commissionService: CommissionService\r\n , private employeeService: EmployeeService\r\n , private budgetService: BudgetService\r\n , private payrollService: PayrollService\r\n , private positionService: PositionService\r\n , private modalService: BsModalService) {\r\n this.nav = document.querySelector('nav.navbar');\r\n this.configToast = configGeneral.getConfigToast();\r\n this.optsSlim = configGeneral.getConfigSlimScroll();\r\n this.initializeFormFilter();\r\n const showRoles = this.securityService.getUserRolesStorage();\r\n if (showRoles !== '') {\r\n this.clients = showRoles.listClients;\r\n }\r\n this.profile = this.securityService.getProfileStorage('CommissionRecords');\r\n // this.userId = showRoles.employeeId;\r\n }\r\n\r\n public ngOnInit(): any {\r\n this.scrollEvents = new EventEmitter();\r\n this.now = Date.now();\r\n this.nav.className += ' white-bg';\r\n if (this.configurationService.isReady) {\r\n //this.spinner.show();\r\n this.obetenerCatalogos();\r\n //this.initFilters();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n //this.spinner.show();\r\n this.obetenerCatalogos();\r\n //this.initFilters();\r\n });\r\n }\r\n }\r\n private initFilters(): void {\r\n const values = this.storageService.retrieve('commissions.filters');\r\n if (values != null) {\r\n this.formFilter.get('customerId').setValue(values.customerId);\r\n this.formFilter.get('projectId').setValue(values.projectId);\r\n if (values.customerId != null) {\r\n let customer = this.catalogCustomers.filter(c => c.id == values.customerId)[0];\r\n if (customer != null)\r\n this.changeCustomer(customer, true);\r\n }\r\n }\r\n let getJobCandidates = false;\r\n Object.keys(this.formFilter.controls).forEach(field => {\r\n const control = this.formFilter.get(field);\r\n if (control.value != null) {\r\n getJobCandidates = true;\r\n return;\r\n }\r\n });\r\n if (getJobCandidates) {\r\n this.getCommissions();\r\n }\r\n else {\r\n this.getCommissions();\r\n }\r\n }\r\n private obetenerCatalogos(): void {\r\n this.configureCatalogsTrademarks().subscribe(customers => {\r\n this.catalogCustomers = customers; this.initFilters();\r\n });\r\n this.positionService.getCatalogPayrollTypes().subscribe(res => {\r\n this.catalogPayrollTypes = res;\r\n });\r\n this.catalogYears = this.commissionService.getCatalogYears();\r\n }\r\n private configureCatalogsTrademarks(): Observable {\r\n const clients = new Array as IDtoCatalog[];\r\n const t = this.customerService.getCatalogCustomersWithCodeNomPayCompany().pipe(\r\n map((res: any) => {\r\n this.clients.forEach(element => {\r\n const z = res.filter(x => x.id == element.clientId)[0];\r\n if (z != null) {\r\n clients.push(z);\r\n }\r\n });\r\n return clients;\r\n })\r\n );\r\n return t;\r\n }\r\n private changeCustomer(item: IDtoCatalog, init: boolean): void {\r\n this.getCatalogProjects(item, init);\r\n this.getCatalogPeriodsByCompanyPayrollType();\r\n this.getProjects(item);\r\n //this.customer = item.name;\r\n }\r\n private getCatalogProjects(item: IDtoCatalog, init: boolean): void {\r\n if (!init) {\r\n this.formFilter.get('projectId').setValue(null);\r\n }\r\n this.catalogProjects = null;\r\n if (item == null) {\r\n return;\r\n }\r\n this.budgetService.getCatalogProjectCustomersByCustomerIdActive(item.id).subscribe(res => {\r\n this.catalogProjects = res;\r\n });\r\n }\r\n // private getCatalogPlans(item: IDtoCatalog): void {\r\n // this.formFilter.get('planId').setValue(null);\r\n // this.catalogPlans = null;\r\n // if (item == null) {\r\n // return;\r\n // }\r\n // this.catalogPlans = this.budgetService.getCatalogPlanTrademarksByProjectCustomerId(item.id);\r\n // }\r\n private getCatalogPeriodsByCompanyPayrollType(): void {\r\n this.formFilter.get('periodNom').setValue(null);\r\n this.catalogPeriods = null;\r\n let customerId = this.formFilter.value.customerId;\r\n let payrollTypeId = this.formFilter.value.payrollTypeId;\r\n let year = this.formFilter.value.year;\r\n if (customerId == null || payrollTypeId == null|| year == null) {\r\n return;\r\n }\r\n let additional = this.catalogCustomers.filter(x => x.id == customerId)[0].additional;\r\n let sp = additional.split('|');\r\n let codeNomCompanyPay = sp[1];\r\n let codeNomPayrollType = ('00000' + this.formFilter.value.payrollTypeId).slice(-'00000'.length);\r\n this.payrollService.getCatalogPeriodsByCompanyPayrollType(codeNomCompanyPay, codeNomPayrollType, year).subscribe(x => {\r\n this.catalogPeriods = x;\r\n this.catalogPeriods.forEach(item => {\r\n item.name = item.name.replace(' Cerrado', ' ');\r\n item.name = item.name.replace(' Abierto', ' ');\r\n });\r\n });\r\n }\r\n private initializeFormFilter() {\r\n this.formFilter = this.formBuilder.group({\r\n customerId: [null],\r\n //planId: [null],\r\n projectId: [null],\r\n payrollTypeId: [null],\r\n periodNom: [null],\r\n year: [null]\r\n });\r\n }\r\n private navigateTo(row: IDtoPayrollEmployee): void {\r\n const values = this.formFilter.value;\r\n // this.storageService.store('recruitments.filters', values);\r\n // this.storageService.store('recruitments.search', this.search);\r\n this.storageService.store('commissions.filters', values);\r\n this.router.navigate(['/payroll/commission-detail',\r\n { id: row.id }], { relativeTo: this.route });\r\n }\r\n private getCommissions(): void {\r\n this.spinner.show();\r\n let values = this.formFilter.value as IDtoCommissionFilter;\r\n values.profile = this.profile;\r\n this.commissionService.getCommissionPeriodsByFilter(values).subscribe((res) => {\r\n this.commissions = res.data as IDtoCommissionPeriod[];\r\n if (this.commissions.length > 0) {\r\n this.commissions.forEach(element => {\r\n element.periodNom = element.periodNom.replace('Abierto', ' ');\r\n if (element.isLocked == false && element.statusName == 'Cerrada')\r\n {\r\n element.statusNameTitle = element.statusName + \"/\" + element.statusNameTitle + \"/Desbloqueada\";\r\n }\r\n else if (element.isLocked == true && element.statusName == 'Cerrada')\r\n {\r\n element.statusNameTitle = element.statusName + \"/\" + element.statusNameTitle + \"/Bloqueada\";\r\n }\r\n else if (element.isLocked == true && element.statusName == 'Abierta')\r\n {\r\n element.statusNameTitle = element.statusName + \"/\" + element.statusNameTitle\r\n };\r\n\r\n let customer = this.catalogCustomers.filter(x => x.id == element.customerId)[0];\r\n if (customer != undefined) {\r\n element.customer = customer.name;\r\n }\r\n if (this.catalogProjects != undefined) {\r\n let project = this.projects.filter(x => x.id == element.projectId)[0];\r\n element.project = project.name;\r\n }\r\n let payrollType = this.catalogPayrollTypes.filter(x => x.id == element.payrollTypeId)[0];\r\n element.payrollType = payrollType.name;\r\n //element.plan = project.planTrademarks.filter(x => x.id == element.planId)[0].name;\r\n });\r\n }\r\n this.spinner.hide();\r\n }, (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n public ngOnDestroy(): any {\r\n this.nav.classList.remove('white-bg');\r\n }\r\n private createComissionPeriod(): void {\r\n let nullExists = false;\r\n let values = this.formFilter.value as IDtoCommissionFilter;\r\n Object.keys(this.formFilter.controls).forEach(val => {\r\n let v = this.formFilter.get(val).value;\r\n if (v == null) {\r\n nullExists = true;\r\n }\r\n });\r\n if (nullExists) {\r\n this.configGeneral.newToast('Validación', 'Seleccione todos los elementos del filtro para poder crear un registro', 'warning');\r\n return;\r\n }\r\n let dto = {} as IDtoCommissionPeriod;\r\n let additionalCustomer = this.catalogCustomers.filter(x => x.id == values.customerId)[0].additional;\r\n let sp = additionalCustomer.split('|');\r\n dto.companyPayId = +sp[0];\r\n dto.creationDate = this.configGeneral.getLocalISOTime(new Date());\r\n dto.customerId = values.customerId;\r\n dto.projectId = values.projectId;\r\n //dto.planId = values.planId;\r\n dto.payrollTypeId = values.payrollTypeId;\r\n dto.year = values.year;\r\n dto.periodNom = values.periodNom;\r\n let additionalPeriod = this.catalogPeriods.filter(x => x.name == values.periodNom)[0].additional;\r\n dto.periodKeyNom = new Date(additionalPeriod);\r\n dto.status = 1;\r\n dto.userId = this.userId;\r\n this.commissionService.addCommissionPeriod(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n //this.updateEmployeePayroll();\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getProjects(dto: IDtoCatalog): void {\r\n if (dto == null) {\r\n return;\r\n }\r\n this.customerService.getProyectsByCustomer(dto.id)\r\n .subscribe(\r\n (x) => {\r\n this.projects = x.data as IDtoProject[];\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private openModalApprovers(dto: IDtoCommissionPeriod): void {\r\n const initialState = {\r\n title: 'Aprobadores',\r\n projectCustomerId: dto.projectId,\r\n customerId: dto.customerId,\r\n staffTypeName: 'Campo',\r\n module: 'Commission'\r\n };\r\n this.modalRef = this.modalService.show(ModalBudgetApproverComponent\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.sendCommissionPeriodsToCustomer(dto.id, result);\r\n }\r\n });\r\n}\r\nprivate sendCommissionPeriodsToCustomer(customerCommissionId: number, approverUserId: string): void {\r\n this.spinner.show();\r\n this.commissionService.sendCommissionPeriodsToCustomer(customerCommissionId, approverUserId)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n //this.addModuleLog(this.budget.id, 'update');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n}\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'JobCandidates';\r\n dto.module = \"requestReviews\";\r\n dto.action = 'hiring';\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\n.scroll-window {\\n width: 100%;\\n height: 500px;\\n font-size: 13px;\\n padding: 10px 20px 10px 0;\\n font-size: 15px;\\n line-height: 20px;\\n color: #000;\\n}\\n\\n.form-group {\\n font-weight: 500;\\n font-size: 12px;\\n}\\n\\n.m-b-dowload-excel {\\n margin-bottom: -20px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcGF5cm9sbC9jb21taXNzaW9ucy9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHBheXJvbGxcXGNvbW1pc3Npb25zXFxsaXN0LWNvbW1pc3Npb25zLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3BheXJvbGwvY29tbWlzc2lvbnMvbGlzdC1jb21taXNzaW9ucy5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsaUJBQUE7QUNBRjs7QURFQTtFQUNFLFdBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsV0FBQTtBQ0NGOztBRENBO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0FDRUY7O0FEQUE7RUFDRSxvQkFBQTtBQ0dGIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvcGF5cm9sbC9jb21taXNzaW9ucy9saXN0LWNvbW1pc3Npb25zLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn1cclxuLnNjcm9sbC13aW5kb3cge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogNTAwcHg7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDA7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gIGNvbG9yOiAjMDAwO1xyXG59XHJcbi5mb3JtLWdyb3VwIHtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG4ubS1iLWRvd2xvYWQtZXhjZWwge1xyXG4gIG1hcmdpbi1ib3R0b206IC0yMHB4O1xyXG59IiwiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuXG4uc2Nyb2xsLXdpbmRvdyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDUwMHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDA7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4uZm9ybS1ncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm0tYi1kb3dsb2FkLWV4Y2VsIHtcbiAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoUrl } from 'app/shared/models/security/dto-url.model';\r\nimport { IUser } from 'app/shared/models/user.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-external-customer-payroll',\r\n templateUrl: 'external-customer-payroll.template.html'\r\n})\r\nexport class ExternalCustomerPayrollComponent implements OnInit {\r\n public nav: any;\r\n private authenticated = false;\r\n private errorMessages: any;\r\n private objUrl = {} as IDtoUrl;\r\n constructor(private serviceSecurity: SecurityService\r\n , private configurationService: ConfigurationService\r\n , private route: ActivatedRoute\r\n , private config: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private serviceIdentity: IdentityService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe((params) => {\r\n if (params['url']) {\r\n if (this.configurationService.isReady) {\r\n let u = params['url'];\r\n this.getRouteByUrl(u);\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n let u = params['url'];\r\n this.getRouteByUrl(u);\r\n });\r\n }\r\n }\r\n });\r\n this.serviceSecurity.authenticationChallengeExternal$.subscribe((res) => {\r\n this.authenticated = res;\r\n if (this.authenticated) {\r\n this.serviceSecurity.GetRolesUser('external-customer-payroll', this.objUrl.route);\r\n this.spinner.hide();\r\n } else {\r\n this.spinner.hide();\r\n this.config.newToast('Validación', 'Datos incorrectos', 'error');\r\n }\r\n });\r\n }\r\n private getRouteByUrl(url: string): void {\r\n this.spinner.show()\r\n this.serviceIdentity.getRouteByUrl(url)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.spinner.hide();\r\n this.objUrl = x.data as IDtoUrl;\r\n this.login();\r\n } else {\r\n this.config.newToast('Error', x.message, 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private login() {\r\n let user = {} as IUser;\r\n user.system = this.config.getConfig().name;\r\n user.username = this.objUrl.user;\r\n user.password = this.objUrl.password;\r\n this.serviceSecurity.GetAuthorizationExternalUser(user);\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, EventEmitter, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ISlimScrollOptions, SlimScrollEvent } from 'ngx-slimscroll';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { StorageService } from 'app/shared/services/storage.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { RecruitmentService } from '../../recruitment/recruitment.service';\r\nimport { CustomerService } from '../../quote/customer.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoPayrollEmployee } from 'app/shared/models/employee/dto-payroll-employee.model';\r\nimport { BudgetService } from '../../quote/budget.service';\r\nimport { PayrollService } from '../../payroll.service';\r\nimport { PositionService } from '../../quote/position.service';\r\nimport { CommissionService } from '../../commission.service';\r\nimport { IDtoProject } from 'app/shared/models/customer/dto-project.model';\r\nimport { IDtoPayroll } from 'app/shared/models/payroll/dto-payroll.model';\r\nimport { IDtoPayrollFilter } from 'app/shared/models/payroll/dto-payroll-filter.model';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalBudgetApproverComponent } from 'app/views/modales/customer/budget-approver/modal-budget-approver.component';\r\nimport { map } from 'rxjs/operators';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\n\r\n@Component({\r\n selector: 'app-list-payrolls',\r\n styleUrls: ['./list-payrolls.style.scss'],\r\n templateUrl: 'list-payrolls.template.html'\r\n})\r\nexport class ListPayrollsComponent implements OnDestroy, OnInit {\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formFilter: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Listas */\r\n private payrolls: IDtoPayroll[];\r\n private payrollsTem: IDtoPayroll[];\r\n /**Catalogos */\r\n @ViewChild('confirmSwal', { static: false }) private confirmSwal: SwalComponent;\r\n private catalogCustomers: IDtoCatalog[];\r\n private catalogProjects: IDtoCatalog[];\r\n private catalogPayrollTypes: IDtoCatalog[];\r\n private catalogYears: Observable;\r\n private catalogPeriods: IDtoCatalog[];\r\n catalogStatus: any;\r\n /** */\r\n private statusLabelsMap = {\r\n 'Baja': '

Baja

',\r\n 'Laborando en Red': '

Laborando en Red

'\r\n };\r\n /**Variables */\r\n public nav: any;\r\n private now: number;\r\n private clients: any;\r\n /**Slim-control */\r\n optsSlim: ISlimScrollOptions;\r\n scrollEvents: EventEmitter;\r\n\r\n private profile: string;\r\n //private customer: string;\r\n private search: string;\r\n private projects = new Array() as IDtoProject[];\r\n private userId: number;\r\n public constructor(private recruitmentService: RecruitmentService\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private storageService: StorageService\r\n , private identityService: IdentityService\r\n , private customerService: CustomerService\r\n , private commissionService: CommissionService\r\n , private budgetService: BudgetService\r\n , private payrollService: PayrollService\r\n , private positionService: PositionService\r\n , private modalService: BsModalService) {\r\n this.nav = document.querySelector('nav.navbar');\r\n this.configToast = configGeneral.getConfigToast();\r\n this.optsSlim = configGeneral.getConfigSlimScroll();\r\n this.initializeFormFilter();\r\n const showRoles = this.securityService.getUserRolesStorage();\r\n if (showRoles !== '') {\r\n this.clients = showRoles.listClients;\r\n }\r\n this.profile = this.securityService.getProfileStorage('PayrollRecords');\r\n this.userId = showRoles.employeeId;\r\n }\r\n\r\n public ngOnInit(): any {\r\n this.scrollEvents = new EventEmitter();\r\n this.now = Date.now();\r\n this.nav.className += ' white-bg';\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.obetenerCatalogos();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.obetenerCatalogos();\r\n });\r\n }\r\n }\r\n private initFilters(): void {\r\n const values = this.storageService.retrieve('payrolls.filters');\r\n if (values != null) {\r\n this.formFilter.get('customerId').setValue(values.customerId);\r\n this.formFilter.get('projectId').setValue(values.projectId);\r\n if (values.customerId != null) {\r\n let customer = this.catalogCustomers.filter(c => c.id == values.customerId)[0];\r\n if (customer != null)\r\n this.changeCustomer(customer, true);\r\n }\r\n }\r\n // const search = this.storageService.retrieve('recruitments.search');\r\n // if (search != undefined) {\r\n // this.search = search;\r\n // }\r\n this.getPayrolls();\r\n }\r\n private obetenerCatalogos(): void {\r\n this.configureCatalogsTrademarks().subscribe(customers => {\r\n this.catalogCustomers = customers; this.initFilters();\r\n });\r\n this.positionService.getCatalogPayrollTypes().subscribe(res => {\r\n this.catalogPayrollTypes = res;\r\n });\r\n this.catalogYears = this.commissionService.getCatalogYears();\r\n\r\n this.catalogStatus = [\r\n { name: 'Enviada' },\r\n { name: 'No Enviada' },\r\n ];\r\n }\r\n private configureCatalogsTrademarks(): Observable {\r\n const clients = new Array as IDtoCatalog[];\r\n const t = this.customerService.getCatalogCustomersWithCodeNomPayCompany().pipe(\r\n map((res: any) => {\r\n this.clients.forEach(element => {\r\n const z = res.filter(x => x.id == element.clientId)[0];\r\n if (z != null) {\r\n clients.push(z);\r\n }\r\n });\r\n return clients;\r\n })\r\n );\r\n return t;\r\n }\r\n private changeCustomer(item: IDtoCatalog, init: boolean): void {\r\n this.getCatalogProjects(item, init);\r\n this.getCatalogPeriodsByCompanyPayrollType();\r\n this.getProjects(item);\r\n //this.customer = item.name;\r\n }\r\n private getProjects(dto: IDtoCatalog): void {\r\n if (dto == null) {\r\n return;\r\n }\r\n this.customerService.getProyectsByCustomer(dto.id)\r\n .subscribe(\r\n (x) => {\r\n this.projects = x.data as IDtoProject[];\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private getCatalogProjects(item: IDtoCatalog, init: boolean): void {\r\n if (!init) {\r\n this.formFilter.get('projectId').setValue(null);\r\n }\r\n this.catalogProjects = null;\r\n if (item == null) {\r\n return;\r\n }\r\n this.budgetService.getCatalogProjectCustomersByCustomerIdActivePayrollRequest(item.id).subscribe(res => {\r\n this.catalogProjects = res;\r\n });\r\n }\r\n private getCatalogPeriodsByCompanyPayrollType(): void {\r\n this.formFilter.get('periodNom').setValue(null);\r\n this.catalogPeriods = null;\r\n let customerId = this.formFilter.value.customerId;\r\n let payrollTypeId = this.formFilter.value.payrollTypeId;\r\n let year = this.formFilter.value.year;\r\n if (customerId == null || payrollTypeId == null|| year == null) {\r\n return;\r\n }\r\n let additional = this.catalogCustomers.filter(x => x.id == customerId)[0].additional;\r\n let sp = additional.split('|');\r\n let codeNomCompanyPay = sp[1];\r\n let staffType = sp[2];\r\n if (staffType === 'Oficina') {\r\n let projectId = this.formFilter.value.projectId;\r\n let project = this.catalogProjects.filter(x => x.id === projectId)[0];\r\n codeNomCompanyPay = project.name.split('-')[2];\r\n }\r\n let codeNomPayrollType = ('00000' + this.formFilter.value.payrollTypeId).slice(-'00000'.length);\r\n this.spinner.show();\r\n this.payrollService.getCatalogPeriodsByCompanyPayrollType(codeNomCompanyPay, codeNomPayrollType, year).subscribe(x => {\r\n this.catalogPeriods = x;\r\n this.catalogPeriods.forEach(item => {\r\n item.name = item.name.replace(' Cerrado', ' ');\r\n item.name = item.name.replace(' Abierto', ' ');\r\n });\r\n this.spinner.hide();\r\n }),\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n };\r\n }\r\n private initializeFormFilter() {\r\n this.formFilter = this.formBuilder.group({\r\n customerId: [null],\r\n projectId: [null],\r\n payrollTypeId: [null],\r\n periodNom: [null],\r\n year: [null],\r\n status: [null],\r\n });\r\n }\r\n private navigateTo(row: IDtoPayrollEmployee, module: string): void {\r\n const values = this.formFilter.value;\r\n this.storageService.store('payrolls.filters', values);\r\n //this.storageService.store('payrolls.search', this.search);\r\n this.router.navigate(['/payroll/payroll-detail',\r\n { id: row.id, module: module }], { relativeTo: this.route });\r\n }\r\n private getPayrolls(): void {\r\n this.spinner.show();\r\n let values = this.formFilter.value as IDtoPayrollFilter;\r\n values.profile = this.profile;\r\n this.payrollService.getPayrollsByFilter(values).subscribe((res) => {\r\n if (res.isCorrect) {\r\n this.payrolls = res.data as IDtoPayroll[];\r\n this.payrollsTem = this.payrolls;\r\n if (this.payrolls.length > 0) {\r\n this.payrolls.forEach(element => {\r\n element.periodNom = element.periodNom.replace('Abierto', ' ');\r\n\r\n element.statusFilter = element.statusNameTitle;\r\n\r\n if (element.isLocked == false && element.statusName == 'Cerrada')\r\n {\r\n element.statusNameTitle = element.statusName + \"/\" + element.statusNameTitle + \"/Desbloqueada\";\r\n }\r\n else if (element.isLocked == true && element.statusName == 'Cerrada')\r\n {\r\n element.statusNameTitle = element.statusName + \"/\" + element.statusNameTitle + \"/Bloqueada\";\r\n }\r\n else if (element.statusName == 'Abierta')\r\n {\r\n element.statusNameTitle = element.statusName + \"/\" + element.statusNameTitle\r\n };\r\n let customer = this.catalogCustomers.filter(x => x.id == element.customerId)[0];\r\n if (customer != undefined) {\r\n element.customer = customer.name;\r\n }\r\n if (this.catalogProjects != undefined) {\r\n let project = this.catalogProjects.filter(x => x.id == element.projectId)[0];\r\n element.project = project.name;\r\n }\r\n let payrollType = this.catalogPayrollTypes.filter(x => x.id == element.payrollTypeId)[0];\r\n element.payrollType = payrollType.name;\r\n });\r\n }\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n public ngOnDestroy(): any {\r\n this.nav.classList.remove('white-bg');\r\n }\r\n private createPayroll(): void {\r\n this.spinner.show();\r\n let nullExists = false;\r\n let values = this.formFilter.value as IDtoPayrollFilter;\r\n Object.keys(this.formFilter.controls).forEach(val => {\r\n if (val !== 'status') {\r\n let v = this.formFilter.get(val).value;\r\n if (v == null) {\r\n nullExists = true;\r\n }\r\n }\r\n });\r\n if (nullExists) {\r\n this.configGeneral.newToast('Validación', 'Seleccione todos los elementos del filtro para poder crear un registro', 'warning');\r\n this.spinner.hide();\r\n return;\r\n }\r\n let dto = {} as IDtoPayroll;\r\n let additionalCustomer = this.catalogCustomers.filter(x => x.id == values.customerId)[0].additional;\r\n let sp = additionalCustomer.split('|');\r\n dto.companyPayId = +sp[0];\r\n dto.codeNomCompanyPay = sp[1];\r\n let staffType = sp[2];\r\n if (staffType === 'Oficina') {\r\n let projectId = this.formFilter.value.projectId;\r\n let project = this.catalogProjects.filter(x => x.id === projectId)[0];\r\n let projectSplit = project.name.split('-');\r\n dto.companyPayId = Number(projectSplit[1]);\r\n dto.codeNomCompanyPay = projectSplit[2];\r\n }\r\n\r\n dto.creationDate = this.configGeneral.getLocalISOTime(new Date());\r\n dto.customerId = values.customerId;\r\n dto.projectId = values.projectId;\r\n dto.payrollTypeId = values.payrollTypeId;\r\n dto.year = values.year;\r\n dto.periodNom = values.periodNom;\r\n let additionalPeriod = this.catalogPeriods.filter(x => x.name == values.periodNom)[0].additional;\r\n let period = additionalPeriod.split('|');\r\n dto.periodStartNom = new Date(period[0]);\r\n dto.periodKeyNom = new Date(period[1]);\r\n dto.status = 1;\r\n let totalDaysPayroll = this.catalogPayrollTypes.filter(x => x.id == values.payrollTypeId)[0].additional;\r\n dto.totalDays = Number(totalDaysPayroll);\r\n dto.employeeid = this.userId;\r\n this.payrollService.addPayroll(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n //this.updateEmployeePayroll();\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n // private getProjects(dto: IDtoCatalog): void {\r\n // if (dto == null) {\r\n // return;\r\n // }\r\n // this.customerService.getProyectsByCustomer(dto.id)\r\n // .subscribe(\r\n // (x) => {\r\n // this.projects = x.data as IDtoProject[];\r\n // },\r\n // (errMessage) => this.errorMessages = errMessage.messages);\r\n // }\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'JobCandidates';\r\n dto.module = \"requestReviews\";\r\n dto.action = 'hiring';\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n\r\n private openModalApprovers(dto: IDtoPayroll): void {\r\n const initialState = {\r\n title: 'Aprobadores',\r\n projectCustomerId: dto.projectId,\r\n customerId: dto.customerId,\r\n staffTypeName: 'Campo',\r\n module: 'Payroll'\r\n };\r\n this.modalRef = this.modalService.show(ModalBudgetApproverComponent\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.sendPayrollToCustomer(dto.id, result);\r\n }\r\n });\r\n }\r\n\r\n private sendPayrollToCustomer(payrollId: number, approverUserId: string): void {\r\n this.spinner.show();\r\n this.payrollService.sendPayrollToCustomer(payrollId, approverUserId)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n //this.addModuleLog(this.budget.id, 'update');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private updatePayrollLocked(row: IDtoPayroll): void {\r\n let dto = {} as IDtoPayroll;\r\n dto.id = Number(row.id);\r\n let text = row.isLocked == true ? 'Desbloqueara' : 'Bloqueara';\r\n this.confirmSwal.title = 'La prenomina se ' + text + ' ¿Seguro que desea continuar?';\r\n this.confirmSwal.show().then((result) => {\r\n if (result.value) {\r\n if (row.isLocked == true) {\r\n dto.isLocked = false;\r\n }\r\n else {\r\n dto.isLocked = true;\r\n };\r\n this.spinner.show();\r\n this.payrollService.updatePayrollLocked(dto).subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.formFilter.value.lockUser = text;\r\n\r\n let status = row.statusNameTitle.split('/');\r\n let statusName: string;\r\n if (status[2] == 'Desbloqueada'){\r\n statusName = '/Bloqueada';\r\n }\r\n else{\r\n statusName = '/Desbloqueada'\r\n }\r\n row.statusNameTitle = status[0] + \"/\" + status[1] + statusName;\r\n row.isLocked = !row.isLocked;\r\n this.payrolls = [...this.payrolls];\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n });\r\n }\r\n private ApplyStatusFilter(): void {\r\n this.payrolls = this.payrollsTem;\r\n this.payrolls = this.payrolls.filter(registro =>\r\n registro.statusFilter == this.formFilter.value.status\r\n);\r\n console.log(this.payrolls);\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\n.scroll-window {\\n width: 100%;\\n height: 500px;\\n font-size: 13px;\\n padding: 10px 20px 10px 0;\\n font-size: 15px;\\n line-height: 20px;\\n color: #000;\\n}\\n\\n.form-group {\\n font-weight: 500;\\n font-size: 12px;\\n}\\n\\n.m-b-dowload-excel {\\n margin-bottom: -20px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcGF5cm9sbC9wYXlyb2xscy9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHBheXJvbGxcXHBheXJvbGxzXFxsaXN0LXBheXJvbGxzLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3BheXJvbGwvcGF5cm9sbHMvbGlzdC1wYXlyb2xscy5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0UsaUJBQUE7QUNBRjs7QURFQTtFQUNFLFdBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsV0FBQTtBQ0NGOztBRENBO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0FDRUY7O0FEQUE7RUFDRSxvQkFBQTtBQ0dGIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvcGF5cm9sbC9wYXlyb2xscy9saXN0LXBheXJvbGxzLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn1cclxuLnNjcm9sbC13aW5kb3cge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogNTAwcHg7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDA7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gIGNvbG9yOiAjMDAwO1xyXG59XHJcbi5mb3JtLWdyb3VwIHtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG4ubS1iLWRvd2xvYWQtZXhjZWwge1xyXG4gIG1hcmdpbi1ib3R0b206IC0yMHB4O1xyXG59IiwiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuXG4uc2Nyb2xsLXdpbmRvdyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDUwMHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDA7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4uZm9ybS1ncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm0tYi1kb3dsb2FkLWV4Y2VsIHtcbiAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG59Il19 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoDetailColumnTable } from 'app/shared/models/commission/dto-detail-column-table.model';\r\nimport Handsontable from 'handsontable';\r\nimport { HotTableComponent, HotTableRegisterer } from '@handsontable/angular';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { PayrollService } from '../../payroll.service';\r\nimport { IDtoPayrollDetail } from 'app/shared/models/payroll/dto-payroll-detail.model';\r\nimport { IDtoPayrollDetailAttend } from 'app/shared/models/payroll/dto-payroll-detail-attend.model';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { OpeningService } from '../../opening/opening.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { registerLanguageDictionary, esMX } from 'handsontable/i18n';\r\nimport { IDtoPayroll } from 'app/shared/models/payroll/dto-payroll.model';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalRetentionsComponet } from 'app/views/modales/payroll/retentions/modal-retentions.component';\r\nimport { IDtoRetentionEmail } from 'app/shared/models/payroll/dto-retention-email.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoMovementRestrictionCalendar } from 'app/shared/models/payroll/dto-movement-restriction-calendar.model';\r\n@Component({\r\n selector: 'app-payroll-detail',\r\n styleUrls: ['./payroll-detail.style.scss'],\r\n templateUrl: 'payroll-detail.template.html'\r\n})\r\n\r\nexport class PayrollDetailComponent implements OnInit {\r\n private hotId: string = 'commissions';\r\n /**Securty */\r\n private showRoles: any;\r\n private employeeIniId: string;\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Variables */\r\n private now: number;\r\n private action = '';\r\n private payrollId: string;\r\n private module: string;\r\n private routeType: string;\r\n /**Objetos*/\r\n private columns: IDtoDetailColumnTable[];\r\n private detailTotal: any[] = [];\r\n /**Notificaciones */\r\n private configToast: any;\r\n tableSettings: {};\r\n private headerDetail: any;\r\n @ViewChild(\"hot2\", { static: false }) hot2: HotTableComponent;\r\n @ViewChild('confirmSwal', { static: false }) private confirmSwal: SwalComponent;\r\n @ViewChild('concludedSwal', { static: false }) private concludedSwal: SwalComponent;\r\n @ViewChild('conLockSwal', { static: false }) private conLockSwal: SwalComponent;\r\n private catalogSupervisors: ISelect[];\r\n private catalogRetentions: IDtoCatalog[];\r\n private payroll: IDtoPayroll;\r\n private isOpenPeriod: boolean;\r\n private profile: string;\r\n private symbology = ['A', 'F', 'I', 'B', 'V', 'D', 'E', 'DL', 'DT', 'DTD', 'FS', 'X'];\r\n private modalRef: BsModalRef;\r\n private restrictionRetentionExist\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private modified = [] as number[];\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private openingService: OpeningService\r\n , private payrollService: PayrollService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private hotRegisterer: HotTableRegisterer\r\n , private modalService: BsModalService) {\r\n Handsontable.renderers.registerRenderer('rendererCellByValue', rendererCellByValue);\r\n Handsontable.renderers.registerRenderer('firstRowRenderer', firstRowRenderer);\r\n registerLanguageDictionary(esMX);\r\n this.configToast = configGeneral.getConfigToast();\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n if (this.showRoles !== '') {\r\n this.employeeIniId = this.showRoles.employeeId;\r\n this.profile = this.securityService.getProfileStorage('Payroll');\r\n }\r\n }\r\n ngOnInit(): void {\r\n const that = this;\r\n this.now = Date.now();\r\n this.route.params.subscribe((params) => {\r\n if (params['id']) {\r\n setTimeout(() => {\r\n this.spinner.show();\r\n if (this.configurationService.isReady) {\r\n this.payrollId = params['id'];\r\n this.module = params['module'];\r\n this.routeType = params['routeType'];\r\n this.openingService.getCatalogSupervisors().subscribe(x => { this.catalogSupervisors = x; this.getPayrollDetails(); this.getCatalogRetention();});\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.payrollId = params['id'];\r\n this.module = params['module'];\r\n this.routeType = params['routeType'];\r\n this.openingService.getCatalogSupervisors().subscribe(x => { this.catalogSupervisors = x; this.getPayrollDetails();this.getCatalogRetention();});\r\n });\r\n }\r\n }, 2);\r\n }\r\n });\r\n }\r\n private getCatalogRetention(): void {\r\n this.payrollService.getCatalogRetention().subscribe(res => {\r\n this.catalogRetentions = res;\r\n });\r\n }\r\n settings: Handsontable.GridSettings = {\r\n data: [/* some data */]\r\n }\r\n private updatePayrollOverallStatus(): void {\r\n this.spinner.show();\r\n let dto = {} as IDtoPayroll;\r\n dto.id = Number(this.payrollId);\r\n dto.isLocked = false;\r\n\r\n this.payrollService.updatePayrollLocked(dto).subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n }\r\n window.location.reload();\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private updatePayrollDetails() {\r\n this.payrollService.validatePayrolldLock(this.headerDetail.payrollId, this.profile).subscribe(res => {\r\n let result = res.data.toString().split(',');\r\n if (result[0] == \"2\" && result[1] == 'True') {\r\n this.conLockSwal.title = '!Período bloqueado, no se permite actualizar.!';\r\n this.conLockSwal.show();\r\n this.isOpenPeriod = false;\r\n return;\r\n }\r\n else {\r\n this.confirmSwal.title = 'La información será actualizada. ¿Seguro que desea continuar?';\r\n this.confirmSwal.show().then((result) => {\r\n if (result.value) {\r\n this.spinner.show();\r\n let numColumns = this.columns.length;\r\n let details = [] as IDtoPayrollDetail[];\r\n let isSave = true;\r\n let validateComment = false as boolean;\r\n let validateRetention = false as boolean;\r\n let listErrorComments: string[] = [];\r\n const uniqueModifiedIndices = Array.from(new Set(this.modified));\r\n let detailModified = uniqueModifiedIndices.map(index => this.detailTotal[index]);\r\n detailModified.forEach(element => {\r\n let d = {} as IDtoPayrollDetail;\r\n d.payrollDetailAttends = [];\r\n let id = element.payrollDetailId;\r\n d.payrollId = element.payrollId;\r\n d.id = id;\r\n d.bonusValue = element.bonusValue;\r\n d.commissionValue = element.commissionValue;\r\n d.discountValue = element.discountValue;\r\n d.retroactiveValue = element.retroactiveValue;\r\n d.pendingDays = element.pendingDays;\r\n d.isRetention = element.isRetention;\r\n d.comment = element.comment;\r\n d.userEmployeeId = Number(this.employeeIniId);\r\n\r\n if (d.comment != undefined) {\r\n if (d.comment.length > 200) {\r\n isSave = false;\r\n validateComment = true;\r\n listErrorComments.push(element.employeeName);\r\n }\r\n }\r\n if (element.isRetention) {\r\n if (element.retentionName == null) {\r\n isSave = false;\r\n validateRetention = true;\r\n } else {\r\n let retencion = this.catalogRetentions.filter(c => c.name === element.retentionName)[0];\r\n if (retencion == null){\r\n isSave = false;\r\n validateRetention = true;\r\n }\r\n else{\r\n d.retentionName = element.retentionName;\r\n }\r\n }\r\n }\r\n for (var v = 9; v < numColumns - 9; v++) {\r\n let c = this.columns[v];\r\n Object.entries(element).forEach(entry => {\r\n const [key, value] = entry;\r\n if (key == c.data) {\r\n if (this.symbology.includes(value as string)) {\r\n let da = {} as IDtoPayrollDetailAttend;\r\n da.payrollDetailId = id\r\n da.order = +c.data;\r\n da.value = value as string;\r\n d.payrollDetailAttends.push(da)\r\n }\r\n }\r\n });\r\n }\r\n details.push(d);\r\n });\r\n if (isSave) {\r\n\r\n this.actualizarListaEnBloques(details, 50);\r\n } else {\r\n if (validateRetention) {\r\n this.configGeneral.newToast('Error', 'Seleccione un motivo de retención valido para los registros marcados como retenidos', 'error');\r\n this.spinner.hide();\r\n }\r\n\r\n if (validateComment) {\r\n console.log('validateComment entra',validateComment)\r\n listErrorComments.forEach(element => {\r\n this.configGeneral.newToast('Error', 'Comentarios exceden numero de caracteres del empleado:' + element, 'error');\r\n });\r\n this.spinner.hide();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n async actualizarListaEnBloques(list: IDtoPayrollDetail[], tamanoBloque: number) {\r\n try {\r\n const resultados = await this.payrollService.actualizarLista(list, tamanoBloque);\r\n let error = resultados.filter(r => r.exito == false);\r\n if (error.length > 0) {\r\n this.concludedSwal.title = '!El proceso no se completó correctamente!';\r\n this.concludedSwal.type = 'warning';\r\n } else {\r\n this.modified = [];\r\n this.concludedSwal.title = '!Proceso terminado con éxito!';\r\n this.concludedSwal.type = 'success';\r\n }\r\n this.concludedSwal.show();\r\n this.spinner.hide();\r\n this.settings.data = this.detailTotal;\r\n } catch (error) {\r\n this.concludedSwal.title = '!El proceso no se completó correctamente!';\r\n this.concludedSwal.type = 'warning';\r\n this.concludedSwal.show();\r\n }\r\n }\r\n private openModalRetentions(list: IDtoRetentionEmail[], details: IDtoPayrollDetail[]) {\r\n const initialState = {\r\n employees: list,\r\n };\r\n\r\n this.modalRef = this.modalService.show(ModalRetentionsComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n let employees = result as IDtoRetentionEmail[];\r\n let values = [];\r\n values.push(details);\r\n values.push(employees);\r\n this.payrollService.removeRetentions(values)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n //this.updateEmployeePayroll();\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n this.settings.data = this.detailTotal;\r\n }\r\n });\r\n }\r\n private removeRetentions() {\r\n this.confirmSwal.title = 'Las retenciones desmarcadas serán liberadas, este proceso es irreversible. ¿Seguro que desea continuar?';\r\n this.confirmSwal.show().then((result) => {\r\n if (result.value) {\r\n //this.spinner.show();\r\n let numColumns = this.columns.length;\r\n let details = [] as IDtoPayrollDetail[];\r\n let retentionEmails = [] as IDtoRetentionEmail[];\r\n let isSave = true;\r\n this.detailTotal.forEach(element => {\r\n if (element.isRetention == false) {\r\n let d = {} as IDtoPayrollDetail;\r\n let employee = {} as IDtoRetentionEmail;\r\n d.payrollDetailAttends = [];\r\n let id = element.payrollDetailId;\r\n d.payrollId = element.payrollId;\r\n d.id = id;\r\n d.bonusValue = element.bonusValue;\r\n d.commissionValue = element.commissionValue;\r\n d.discountValue = element.discountValue;\r\n d.retroactiveValue = element.retroactiveValue;\r\n d.pendingDays = element.pendingDays;\r\n d.isRetention = element.isRetention;\r\n d.totalDays = element.totalDays;\r\n d.comment = element.comment;\r\n for (var v = 9; v < numColumns - 9; v++) {\r\n let c = this.columns[v];\r\n Object.entries(element).forEach(entry => {\r\n const [key, value] = entry;\r\n if (key == c.data) {\r\n let da = {} as IDtoPayrollDetailAttend;\r\n da.payrollDetailId = id\r\n da.order = +c.data;\r\n da.value = value as string;\r\n d.payrollDetailAttends.push(da)\r\n }\r\n });\r\n }\r\n details.push(d);\r\n employee.employee = element.employeeName;\r\n employee.payrollDetailId = id;\r\n retentionEmails.push(employee);\r\n }\r\n });\r\n if (details.length < 1 || retentionEmails.length < 1) {\r\n this.configGeneral.newToast('Error', 'No existen datos modificados para procesar', 'error');\r\n this.spinner.hide();\r\n return;\r\n }\r\n this.openModalRetentions(retentionEmails, details);\r\n }\r\n });\r\n }\r\n private getPayrollDetails(): void {\r\n this.payrollService.getPayrollDetailsByPayrollId(this.payrollId, +this.employeeIniId, this.profile, this.module, this.routeType).subscribe((res) => {\r\n if (!res.isCorrect) {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n return;\r\n }\r\n this.processDetail(res);\r\n this.spinner.hide();\r\n });\r\n }\r\n private getPayrollDetailsBySupervisor(item: ISelect): void {\r\n if (item == null) {\r\n this.spinner.show();\r\n this.getPayrollDetails();\r\n return;\r\n }\r\n this.spinner.show();\r\n this.payrollService.getPayrollDetailsByPayrollIdAndSupervisorId(this.payroll.id, +item.id, +this.employeeIniId, this.profile, this.module).subscribe((res) => {\r\n if (!res.isCorrect) {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n return;\r\n }\r\n this.processDetail(res);\r\n this.spinner.hide();\r\n });\r\n }\r\n private processDetail(res: IResult): void {\r\n let listSupervisors = res.data[2];\r\n this.payroll = res.data[3];\r\n\r\n if (this.payroll.isLocked == true && this.payroll.statusName == 'Cerrada') {\r\n this.payroll.statusNameTitle = this.payroll.statusName + \"/\" + this.payroll.statusNameTitle + \"/Bloqueada\"\r\n }\r\n else if (this.payroll.isLocked == false && this.payroll.statusName == 'Cerrada') {\r\n this.payroll.statusNameTitle = this.payroll.statusName + \"/\" + this.payroll.statusNameTitle + \"/Desbloqueada\"\r\n }\r\n else if (this.payroll.statusName == 'Abierta') {\r\n this.payroll.statusNameTitle = this.payroll.statusName + \"/\" + this.payroll.statusNameTitle\r\n }\r\n\r\n this.catalogSupervisors = this.catalogSupervisors.filter(x => listSupervisors.includes(+x.id));\r\n this.detailTotal = res.data[0];// as any[];\r\n this.headerDetail = this.detailTotal[0];\r\n this.columns = res.data[1];// as IDtoCommissionDetailColumnTable[];\r\n let comments = res.data[4];\r\n //this.showItems(this.detailTotal);\r\n this.tableSettings = {\r\n data: this.detailTotal,\r\n columns: this.columns,\r\n rowHeaders: true,\r\n colHeaders: true,\r\n stretchH: 'all',\r\n width: '100%',\r\n height: 360,\r\n language: 'es-MX',\r\n filters: true,\r\n manualColumnResize: true,\r\n fixedColumnsLeft: 3,\r\n //contextMenu: true,\r\n dropdownMenu: [\r\n 'filter_by_condition',\r\n '---------',\r\n 'filter_operators',\r\n '---------',\r\n 'filter_by_condition2',\r\n '---------',\r\n 'filter_by_value',\r\n '---------',\r\n 'filter_action_bar'\r\n ],\r\n hiddenColumns: {\r\n columns: this.profile == 'Administrador' ? [0,] : [0, 5]\r\n\r\n },\r\n licenseKey: 'non-commercial-and-evaluation',\r\n afterChange: (changes, src) => {\r\n if (changes != null) {\r\n let column = changes[0][1];\r\n let affterVal = changes[0][2];\r\n let currentVal = changes[0][3];\r\n let i = changes[0][0];\r\n let col = this.columns.filter(x => x.data == column)[0];\r\n let numColumnEdit = this.columns.indexOf(col);\r\n let numColumns = this.columns.length;\r\n\r\n let visibleRowIndex = changes[0][0];\r\n let physicalRowIndex = this.hotRegisterer.getInstance(this.hotId).toPhysicalRow(visibleRowIndex);\r\n\r\n if (column == 'isRetention') {\r\n if (currentVal == false) {\r\n this.hotRegisterer.getInstance(this.hotId).setDataAtCell(i, numColumnEdit + 1, null);\r\n }\r\n } else if (column != 'isRetention' || column != 'retentionName') {\r\n let currentVal = changes[0][3];\r\n\r\n if (changes.length > 1){\r\n for (let e = 0; e < changes.length; e++) {\r\n let column1 = changes[e][1];\r\n let affterVal1 = changes[e][2];\r\n let currentVal1 = changes[e][3];\r\n\r\n let visibleRowIndex1 = changes[e][0];\r\n let physicalRowIndex1 = this.hotRegisterer.getInstance(this.hotId).toPhysicalRow(visibleRowIndex1);\r\n\r\n if (currentVal1 == 'V' || currentVal1 == 'I' || currentVal1 == 'B'|| currentVal1 == 'N'|| currentVal1 == 'X') {\r\n this.hotRegisterer.getInstance(this.hotId).setDataAtCell(i, numColumnEdit + e, affterVal1);\r\n } else {\r\n this.modified.push(physicalRowIndex1);\r\n }\r\n }\r\n }\r\n else{\r\n if (currentVal == 'V' || currentVal == 'I' || currentVal == 'B'|| currentVal == 'N'|| currentVal == 'X') {\r\n this.hotRegisterer.getInstance(this.hotId).setDataAtCell(i, numColumnEdit, affterVal);\r\n } else {\r\n if(changes[0][1] != 'totalDays')\r\n this.modified.push(physicalRowIndex);\r\n }\r\n }\r\n }\r\n if (column != 'totalDays') {\r\n let data = this.hotRegisterer.getInstance(this.hotId).getDataAtRow(i) as any;\r\n let totalDays = 0;\r\n for (var v = 9; v < numColumns - 9; v++) {\r\n let value = data[v];\r\n if (value == \"A\"\r\n || value == \"V\"\r\n || value == \"DL\"\r\n || value == \"DT\"\r\n || value == \"E\"\r\n || value == \"DTD\"\r\n || value == \"FS\"\r\n || value == \"D\") {\r\n totalDays++;\r\n }\r\n }\r\n this.hotRegisterer.getInstance(this.hotId).setDataAtCell(i, numColumns - 9, totalDays);\r\n }\r\n }\r\n },\r\n cells(row, col) {\r\n const data = this.instance.getData();\r\n\r\n if (data[row] && data[row][col] === 'A'\r\n || data[row] && data[row][col] === 'F'\r\n || data[row] && data[row][col] === 'I'\r\n || data[row] && data[row][col] === 'B'\r\n || data[row] && data[row][col] === 'V'\r\n || data[row] && data[row][col] === 'D'\r\n || data[row] && data[row][col] === 'E'\r\n || data[row] && data[row][col] === 'DL'\r\n || data[row] && data[row][col] === 'DT'\r\n || data[row] && data[row][col] === 'DTD'\r\n || data[row] && data[row][col] === 'FS'\r\n || data[row] && data[row][col] === 'X'\r\n || data[row] && data[row][col] === 'N') {\r\n const cellProperties = {} as any;\r\n cellProperties.renderer = 'rendererCellByValue';\r\n if (data[row] && data[row][col] === 'I'\r\n || data[row] && data[row][col] === 'V'\r\n || data[row] && data[row][col] === 'B'\r\n || data[row] && data[row][col] === 'N'\r\n || data[row] && data[row][col] === 'X') {\r\n cellProperties.readOnly = true;\r\n }\r\n return cellProperties;\r\n }\r\n },\r\n comments: true,\r\n cell: comments,\r\n }\r\n this.hot2.updateHotTable(this.tableSettings);\r\n this.getRestrictionPayroll();\r\n }\r\n private updateEmployees(): void {\r\n this.payrollService.validatePayrolldLock(Number(this.payrollId), this.profile).subscribe(res => {\r\n let result = res.data.toString().split(',');\r\n if (result[0] == \"2\" && result[1] == 'True') {\r\n this.conLockSwal.title = '!Período bloqueado, no se permite actualizar.!';\r\n this.conLockSwal.show();\r\n this.isOpenPeriod = false;\r\n return;\r\n }\r\n else {\r\n this.confirmSwal.title = 'Esta operación ingresará empleados que no se encuentren actualmente en la prenomina. ¿Seguro que desea continuar?';\r\n this.confirmSwal.show().then((result) => {\r\n if (result.value) {\r\n this.spinner.show();\r\n this.payrollService.validateEmployessPayroll(this.payroll.id)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n private sendPayrollNom(): void {\r\n this.confirmSwal.title = 'Se enviará el contenido de esta prenomina a NOM2001. Este proceso es irreversible. ¿Seguro que desea continuar?';\r\n this.confirmSwal.show().then((result) => {\r\n if (result.value) {\r\n this.spinner.show();\r\n this.payrollService.sendPayrollNom(this.payroll.id)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n location.reload();\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n });\r\n }\r\n\r\n private getRestrictionPayroll(): void {\r\n let restriction = {} as IDtoMovementRestrictionCalendar;\r\n restriction.payrollTypeId = this.payroll.payrollTypeId;\r\n restriction.currentDate = this.configGeneral.getLocalISOTime(new Date(this.now));\r\n restriction.movementType = 9;\r\n this.payrollService.restrictionExistCalendar(restriction).subscribe(x => {\r\n this.restrictionRetentionExist = x;\r\n });\r\n }\r\n}\r\nfunction firstRowRenderer(instance, td, row, col, prop, value, cellProperties) {\r\n Handsontable.renderers.TextRenderer.apply(this, arguments);\r\n td.style.fontWeight = 'bold';\r\n td.style.background = '#E6E5E5';\r\n}\r\nfunction rendererCellByValue(instance, td, row, col, prop, value, cellProperties) {\r\n Handsontable.renderers.TextRenderer.apply(this, arguments);\r\n\r\n if (value === 'A') {\r\n td.style.fontWeight = 'bold';\r\n } else if (value === 'F') {\r\n td.style.fontWeight = 'bold';\r\n td.style.background = '#FF0000';\r\n } else if (value === 'E') {\r\n td.style.fontWeight = 'bold';\r\n td.style.color = '#FFFFFF';\r\n td.style.background = '#9C2828';\r\n } else if (value === 'I') {\r\n td.style.fontWeight = 'bold';\r\n td.style.background = '#00B0F0';\r\n } else if (value === 'B') {\r\n td.style.fontWeight = 'bold';\r\n td.style.background = '#FFC000';\r\n } else if (value === 'V') {\r\n td.style.fontWeight = 'bold';\r\n td.style.background = '#00B050';\r\n } else if (value === 'D') {\r\n td.style.fontWeight = 'bold';\r\n td.style.background = '#757171';\r\n } else if (value === 'DL') {\r\n td.style.fontWeight = 'bold';\r\n td.style.background = '#FFFF00';\r\n } else if (value === 'DT') {\r\n td.style.fontWeight = 'bold';\r\n td.style.background = '#9370DB';\r\n } else if (value === 'DTD') {\r\n td.style.fontWeight = 'bold';\r\n td.style.background = '#FF1392';\r\n } else if (value === 'FS') {\r\n td.style.fontWeight = 'bold';\r\n td.style.color = '#FFFFFF';\r\n td.style.background = '#7030A0';\r\n } else if (value === 'X') {\r\n td.style.fontWeight = 'bold';\r\n td.style.color = '#FFFFFF';\r\n td.style.background = '#1E1E1E';\r\n } else if (value === 'N') {\r\n td.style.fontWeight = 'bold';\r\n td.style.background = '#00215E';\r\n }\r\n}\r\n\r\n","module.exports = \".header-01 {\\n height: 50px;\\n border: 1px solid #dddddd;\\n text-align: left;\\n padding: 10px 0;\\n padding-left: 10px;\\n}\\n\\n.header-02 {\\n background-color: #F8AC5A;\\n height: 50px;\\n border: 1px solid #dddddd;\\n text-align: center;\\n padding: 15px 0;\\n}\\n\\n.mt-8 {\\n margin-top: -8px;\\n}\\n\\n.mt-15 {\\n margin-top: -15px;\\n}\\n\\n.m-header {\\n margin: 0 -14px;\\n}\\n\\n.m-footer {\\n margin: 20px -14px 0 -14px;\\n}\\n\\n#th:nth-child(even) {\\n background: #FFF;\\n width: 20%;\\n}\\n\\n#th:nth-child(odd) {\\n background: #E6E6E6;\\n width: 15%;\\n}\\n\\nul, li {\\n display: inline;\\n}\\n\\n/* stylelint-disable order/properties-alphabetical-order */\\n\\n/* stylelint-enable */\\n\\n@-webkit-keyframes fake {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes fake {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\nbody {\\n -webkit-animation: fake 1s infinite;\\n animation: fake 1s infinite;\\n}\\n\\n.worko-tabs {\\n margin: 0 15px -30px 0;\\n width: 98%;\\n}\\n\\n.worko-tabs .state {\\n position: absolute;\\n left: -10000px;\\n}\\n\\n.worko-tabs .flex-tabs {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n flex-wrap: wrap;\\n padding-left: 15px;\\n}\\n\\n.worko-tabs .flex-tabs .tab {\\n -webkit-box-flex: 1;\\n flex-grow: 1;\\n max-height: 40px;\\n}\\n\\n.worko-tabs .flex-tabs .panel {\\n background-color: #fff;\\n padding-left: 30px;\\n display: none;\\n width: 100%;\\n flex-basis: auto;\\n}\\n\\n.worko-tabs .tab {\\n display: inline-block;\\n padding: 10px;\\n vertical-align: top;\\n background-color: #eee;\\n cursor: hand;\\n cursor: pointer;\\n border-left: 10px solid #ccc;\\n}\\n\\n.worko-tabs .tab:hover {\\n background-color: #fff;\\n}\\n\\n#tab-one:checked ~ .tabs #tab-one-label,\\n#tab-two:checked ~ .tabs #tab-two-label {\\n background-color: #fff;\\n cursor: default;\\n border-left-color: #1ab394;\\n}\\n\\n#tab-one:checked ~ .tabs #tab-one-panel,\\n#tab-two:checked ~ .tabs #tab-two-panel {\\n display: block;\\n}\\n\\n@media (max-width: 600px) {\\n .flex-tabs {\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n }\\n .flex-tabs .tab {\\n background: #fff;\\n border-bottom: 1px solid #ccc;\\n }\\n .flex-tabs .tab:last-of-type {\\n border-bottom: none;\\n }\\n .flex-tabs #tab-one-label {\\n -webkit-box-ordinal-group: 2;\\n order: 1;\\n }\\n .flex-tabs #tab-two-label {\\n -webkit-box-ordinal-group: 4;\\n order: 3;\\n }\\n .flex-tabs #tab-one-panel {\\n -webkit-box-ordinal-group: 3;\\n order: 2;\\n }\\n .flex-tabs #tab-two-panel {\\n -webkit-box-ordinal-group: 5;\\n order: 4;\\n }\\n\\n #tab-one:checked ~ .tabs #tab-one-label,\\n#tab-two:checked ~ .tabs #tab-two-label {\\n border-bottom: none;\\n }\\n\\n #tab-one:checked ~ .tabs #tab-one-panel,\\n#tab-two:checked ~ .tabs #tab-two-panel {\\n border-bottom: 1px solid #ccc;\\n }\\n}\\n\\n.table-header-rotated th {\\n width: auto;\\n border-top: 1px solid #dddddd;\\n border-left: 1px solid #dddddd;\\n border-right: 1px solid #dddddd;\\n vertical-align: left;\\n text-align: left;\\n}\\n\\n.table-header-rotated td {\\n width: 40px;\\n border-top: 1px solid #dddddd;\\n border-left: 1px solid #dddddd;\\n border-right: 1px solid #dddddd;\\n vertical-align: left;\\n text-align: left;\\n}\\n\\n.scrollH {\\n width: 100%;\\n overflow-x: auto;\\n white-space: nowrap;\\n}\\n\\n.text-absence {\\n color: #FF0000;\\n}\\n\\n.text-special {\\n color: #9C2828;\\n}\\n\\n.text-dismissal {\\n color: #FFC000;\\n}\\n\\n.text-inability {\\n color: #00B0F0;\\n}\\n\\n.text-holiday {\\n color: #00B050;\\n}\\n\\n.text-break {\\n color: #757171;\\n}\\n\\n.text-break-work {\\n color: #FFFF00;\\n}\\n\\n.text-sunday-worked {\\n color: #9370DB;\\n}\\n\\n.text-break-worked-sunday {\\n color: #FF1392;\\n}\\n\\n.text-holiday-work {\\n color: #7030A0;\\n}\\n\\n.text-worker-not-exist {\\n color: #1E1E1E;\\n}\\n\\n/* Handsontable specific css (row highlighting even and selected) */\\n\\n.hot .ht_master tr:nth-of-type(even) > td {\\n background-color: #e6f7ff;\\n}\\n\\n.hot .ht_master tr.foo > td {\\n background-color: #1C90F3;\\n color: white;\\n}\\n\\n.hot .ht_master tr > td.foo {\\n background-color: #1C90F3;\\n color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcGF5cm9sbC9wYXlyb2xscy9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHBheXJvbGxcXHBheXJvbGxzXFxwYXlyb2xsLWRldGFpbC5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9wYXlyb2xsL3BheXJvbGxzL3BheXJvbGwtZGV0YWlsLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3BheXJvbGwvcGF5cm9sbHMvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9ub2RlX21vZHVsZXNcXGJvdXJib25cXGNvcmVcXGJvdXJib25cXGxpYnJhcnlcXF9vdmVyZmxvdy13cmFwLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDSSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtBQ0FKOztBREVBO0VBQ0kseUJBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7QUNDSjs7QURDQTtFQUNJLGdCQUFBO0FDRUo7O0FEQUE7RUFDSSxpQkFBQTtBQ0dKOztBRERBO0VBQ0ksZUFBQTtBQ0lKOztBREZBO0VBQ0ksMEJBQUE7QUNLSjs7QURGQTtFQUNJLGdCQUFBO0VBQ0EsVUFBQTtBQ0tKOztBREhBO0VBQ0ksbUJBQUE7RUFDQSxVQUFBO0FDTUo7O0FESkE7RUFDSSxlQUFBO0FDT0o7O0FDeEJBLDBEQUFBOztBQU9BLHFCQUFBOztBRmdCQTtFQUNFO0lBQ0UsVUFBQTtFQ01GO0VESEE7SUFDRSxVQUFBO0VDS0Y7QUFDRjs7QURaQTtFQUNFO0lBQ0UsVUFBQTtFQ01GO0VESEE7SUFDRSxVQUFBO0VDS0Y7QUFDRjs7QURGQTtFQUNFLG1DQUFBO1VBQUEsMkJBQUE7QUNJRjs7QUREQTtFQUNFLHNCQUFBO0VBQ0EsVUFBQTtBQ0lGOztBREZFO0VBQ0Usa0JBQUE7RUFDQSxjQUFBO0FDSUo7O0FEREU7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0FDR0o7O0FERkk7RUFDRSxtQkFBQTtVQUFBLFlBQUE7RUFDQSxnQkFBQTtBQ0lOOztBRERJO0VBQ0Usc0JBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7QUNHTjs7QURDRTtFQUNFLHFCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLDRCQUFBO0FDQ0o7O0FEQ0k7RUFDRSxzQkFBQTtBQ0NOOztBRElBOztFQUVFLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLDBCQUFBO0FDREY7O0FESUE7O0VBRUUsY0FBQTtBQ0RGOztBRElBO0VBQ0U7SUFDRSw0QkFBQTtJQUFBLDZCQUFBO1lBQUEsc0JBQUE7RUNERjtFREdFO0lBQ0UsZ0JBQUE7SUFDQSw2QkFBQTtFQ0RKO0VER0k7SUFDRSxtQkFBQTtFQ0ROO0VES0U7SUFDRSw0QkFBQTtZQUFBLFFBQUE7RUNISjtFRE1FO0lBQ0UsNEJBQUE7WUFBQSxRQUFBO0VDSko7RURPRTtJQUNFLDRCQUFBO1lBQUEsUUFBQTtFQ0xKO0VEUUU7SUFDRSw0QkFBQTtZQUFBLFFBQUE7RUNOSjs7RURVQTs7SUFFRSxtQkFBQTtFQ1BGOztFRFVBOztJQUVFLDZCQUFBO0VDUEY7QUFDRjs7QURVQTtFQUNFLFdBQUE7RUFDQSw2QkFBQTtFQUNBLDhCQUFBO0VBQ0EsK0JBQUE7RUFDQSxvQkFBQTtFQUNBLGdCQUFBO0FDUkY7O0FEV0E7RUFDRSxXQUFBO0VBQ0EsNkJBQUE7RUFDQSw4QkFBQTtFQUNBLCtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxnQkFBQTtBQ1JGOztBRFdBO0VBQ0UsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7QUNSRjs7QURXQTtFQUNFLGNBQUE7QUNSRjs7QURVQTtFQUNFLGNBQUE7QUNQRjs7QURTQTtFQUNFLGNBQUE7QUNORjs7QURRQTtFQUNFLGNBQUE7QUNMRjs7QURPQTtFQUNFLGNBQUE7QUNKRjs7QURNQTtFQUNFLGNBQUE7QUNIRjs7QURLQTtFQUNFLGNBQUE7QUNGRjs7QURJQTtFQUNFLGNBQUE7QUNERjs7QURHQTtFQUNFLGNBQUE7QUNBRjs7QURFQTtFQUNFLGNBQUE7QUNDRjs7QURDQTtFQUNFLGNBQUE7QUNFRjs7QURLQSxtRUFBQTs7QUFDQTtFQUNFLHlCQUFBO0FDRkY7O0FES0E7RUFDRSx5QkFBQTtFQUNBLFlBQUE7QUNGRjs7QURLQTtFQUNFLHlCQUFBO0VBQ0EsWUFBQTtBQ0ZGIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvcGF5cm9sbC9wYXlyb2xscy9wYXlyb2xsLWRldGFpbC5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLyo9PT09PT09PT09IFRBQkxBIDAxID09PT09PT0qL1xyXG4uaGVhZGVyLTAxe1xyXG4gICAgaGVpZ2h0OjUwcHg7XHJcbiAgICBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7XHJcbiAgICB0ZXh0LWFsaWduOmxlZnQ7XHJcbiAgICBwYWRkaW5nOjEwcHggMDtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweFxyXG59XHJcbi5oZWFkZXItMDIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjojRjhBQzVBO1xyXG4gICAgaGVpZ2h0OjUwcHg7XHJcbiAgICBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7XHJcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuICAgIHBhZGRpbmc6MTVweCAwXHJcbn1cclxuLm10LTgge1xyXG4gICAgbWFyZ2luLXRvcDogLThweFxyXG59XHJcbi5tdC0xNSB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMTVweFxyXG59XHJcbi5tLWhlYWRlciB7XHJcbiAgICBtYXJnaW46IDAgLTE0cHhcclxufVxyXG4ubS1mb290ZXIge1xyXG4gICAgbWFyZ2luOiAyMHB4IC0xNHB4IDAgLTE0cHhcclxufVxyXG5cclxuI3RoOm50aC1jaGlsZChldmVuKSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRkZGO1xyXG4gICAgd2lkdGg6IDIwJTtcclxufVxyXG4jdGg6bnRoLWNoaWxkKG9kZCkge1xyXG4gICAgYmFja2dyb3VuZDogI0U2RTZFNjtcclxuICAgIHdpZHRoOiAxNSVcclxufVxyXG51bCwgbGkge1xyXG4gICAgZGlzcGxheTppbmxpbmVcclxufVxyXG5cclxuQGltcG9ydCBcIi4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2NvcmUvYm91cmJvblwiO1xyXG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9jb3JlL25lYXRcIjtcclxuXHJcbkBrZXlmcmFtZXMgZmFrZSB7XHJcbiAgZnJvbSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxuXHJcbiAgdG8ge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gIGFuaW1hdGlvbjogZmFrZSAxcyBpbmZpbml0ZTtcclxufVxyXG5cclxuLndvcmtvLXRhYnMge1xyXG4gIG1hcmdpbjogMCAxNXB4IC0zMHB4IDAgO1xyXG4gIHdpZHRoOiA5OCU7XHJcblxyXG4gIC5zdGF0ZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAtMTAwMDBweDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXRhYnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuICAgIC50YWIge1xyXG4gICAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDQwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhbmVsIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgZmxleC1iYXNpczogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50YWIge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xyXG4gICAgY3Vyc29yOiBoYW5kO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2NjYztcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiN0YWItb25lOmNoZWNrZWR+LnRhYnMgI3RhYi1vbmUtbGFiZWwsXHJcbiN0YWItdHdvOmNoZWNrZWR+LnRhYnMgI3RhYi10d28tbGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMWFiMzk0O1xyXG59XHJcblxyXG4jdGFiLW9uZTpjaGVja2Vkfi50YWJzICN0YWItb25lLXBhbmVsLFxyXG4jdGFiLXR3bzpjaGVja2Vkfi50YWJzICN0YWItdHdvLXBhbmVsIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgLmZsZXgtdGFicyB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAgIC50YWIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcclxuXHJcbiAgICAgICY6bGFzdC1vZi10eXBlIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI3RhYi1vbmUtbGFiZWwge1xyXG4gICAgICBvcmRlcjogMTtcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLXR3by1sYWJlbCB7XHJcbiAgICAgIG9yZGVyOiAzO1xyXG4gICAgfVxyXG5cclxuICAgICN0YWItb25lLXBhbmVsIHtcclxuICAgICAgb3JkZXI6IDI7XHJcbiAgICB9XHJcblxyXG4gICAgI3RhYi10d28tcGFuZWwge1xyXG4gICAgICBvcmRlcjogNDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICN0YWItb25lOmNoZWNrZWR+LnRhYnMgI3RhYi1vbmUtbGFiZWwsXHJcbiAgI3RhYi10d286Y2hlY2tlZH4udGFicyAjdGFiLXR3by1sYWJlbCB7XHJcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gIH1cclxuXHJcbiAgI3RhYi1vbmU6Y2hlY2tlZH4udGFicyAjdGFiLW9uZS1wYW5lbCxcclxuICAjdGFiLXR3bzpjaGVja2Vkfi50YWJzICN0YWItdHdvLXBhbmVsIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xyXG4gIH1cclxufVxyXG5cclxuLnRhYmxlLWhlYWRlci1yb3RhdGVkIHRoe1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkZGRkO1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZGRkZDtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkZGRkO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBsZWZ0O1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbi50YWJsZS1oZWFkZXItcm90YXRlZCB0ZHtcclxuICB3aWR0aDogNDBweDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZGRkZDtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZGRkZGQ7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZGRkZDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbGVmdDtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG4uc2Nyb2xsSCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgb3ZlcmZsb3cteDogYXV0bztcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcbi8vc2ltYm9sb2dpYVxyXG4udGV4dC1hYnNlbmNlIHtcclxuICBjb2xvcjogI0ZGMDAwMDtcclxufVxyXG4udGV4dC1zcGVjaWFsIHtcclxuICBjb2xvcjogIzlDMjgyODtcclxufVxyXG4udGV4dC1kaXNtaXNzYWwge1xyXG4gIGNvbG9yOiAjRkZDMDAwO1xyXG59XHJcbi50ZXh0LWluYWJpbGl0eSB7XHJcbiAgY29sb3I6ICMwMEIwRjA7XHJcbn1cclxuLnRleHQtaG9saWRheSB7XHJcbiAgY29sb3I6ICMwMEIwNTA7XHJcbn1cclxuLnRleHQtYnJlYWsge1xyXG4gIGNvbG9yOiAjNzU3MTcxO1xyXG59XHJcbi50ZXh0LWJyZWFrLXdvcmsge1xyXG4gIGNvbG9yOiAjRkZGRjAwO1xyXG59XHJcbi50ZXh0LXN1bmRheS13b3JrZWQge1xyXG4gIGNvbG9yOiAjOTM3MERCO1xyXG59XHJcbi50ZXh0LWJyZWFrLXdvcmtlZC1zdW5kYXkge1xyXG4gIGNvbG9yOiAjRkYxMzkyO1xyXG59XHJcbi50ZXh0LWhvbGlkYXktd29yayB7XHJcbiAgY29sb3I6ICM3MDMwQTA7XHJcbn1cclxuLnRleHQtd29ya2VyLW5vdC1leGlzdCB7XHJcbiAgY29sb3I6ICMxRTFFMUU7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG4vKiBIYW5kc29udGFibGUgc3BlY2lmaWMgY3NzIChyb3cgaGlnaGxpZ2h0aW5nIGV2ZW4gYW5kIHNlbGVjdGVkKSAqL1xyXG4uaG90IC5odF9tYXN0ZXIgdHI6bnRoLW9mLXR5cGUoZXZlbikgPiB0ZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDE5OSwgMTAwJSwgOTUlKTtcclxufVxyXG5cclxuLmhvdCAuaHRfbWFzdGVyIHRyLmZvbyA+IHRkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUM5MEYzO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmhvdCAuaHRfbWFzdGVyIHRyID4gdGQuZm9vIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUM5MEYzO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG4iLCIuaGVhZGVyLTAxIHtcbiAgaGVpZ2h0OiA1MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLmhlYWRlci0wMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGOEFDNUE7XG4gIGhlaWdodDogNTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZGRkZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxNXB4IDA7XG59XG5cbi5tdC04IHtcbiAgbWFyZ2luLXRvcDogLThweDtcbn1cblxuLm10LTE1IHtcbiAgbWFyZ2luLXRvcDogLTE1cHg7XG59XG5cbi5tLWhlYWRlciB7XG4gIG1hcmdpbjogMCAtMTRweDtcbn1cblxuLm0tZm9vdGVyIHtcbiAgbWFyZ2luOiAyMHB4IC0xNHB4IDAgLTE0cHg7XG59XG5cbiN0aDpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kOiAjRkZGO1xuICB3aWR0aDogMjAlO1xufVxuXG4jdGg6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kOiAjRTZFNkU2O1xuICB3aWR0aDogMTUlO1xufVxuXG51bCwgbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL3Byb3BlcnRpZXMtYWxwaGFiZXRpY2FsLW9yZGVyICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5Aa2V5ZnJhbWVzIGZha2Uge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5ib2R5IHtcbiAgYW5pbWF0aW9uOiBmYWtlIDFzIGluZmluaXRlO1xufVxuXG4ud29ya28tdGFicyB7XG4gIG1hcmdpbjogMCAxNXB4IC0zMHB4IDA7XG4gIHdpZHRoOiA5OCU7XG59XG4ud29ya28tdGFicyAuc3RhdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xMDAwMHB4O1xufVxuLndvcmtvLXRhYnMgLmZsZXgtdGFicyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG59XG4ud29ya28tdGFicyAuZmxleC10YWJzIC50YWIge1xuICBmbGV4LWdyb3c6IDE7XG4gIG1heC1oZWlnaHQ6IDQwcHg7XG59XG4ud29ya28tdGFicyAuZmxleC10YWJzIC5wYW5lbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG59XG4ud29ya28tdGFicyAudGFiIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBjdXJzb3I6IGhhbmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2NjYztcbn1cbi53b3Jrby10YWJzIC50YWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4jdGFiLW9uZTpjaGVja2VkIH4gLnRhYnMgI3RhYi1vbmUtbGFiZWwsXG4jdGFiLXR3bzpjaGVja2VkIH4gLnRhYnMgI3RhYi10d28tbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMWFiMzk0O1xufVxuXG4jdGFiLW9uZTpjaGVja2VkIH4gLnRhYnMgI3RhYi1vbmUtcGFuZWwsXG4jdGFiLXR3bzpjaGVja2VkIH4gLnRhYnMgI3RhYi10d28tcGFuZWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5mbGV4LXRhYnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLmZsZXgtdGFicyAudGFiIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICB9XG4gIC5mbGV4LXRhYnMgLnRhYjpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLW9uZS1sYWJlbCB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLXR3by1sYWJlbCB7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLW9uZS1wYW5lbCB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLXR3by1wYW5lbCB7XG4gICAgb3JkZXI6IDQ7XG4gIH1cblxuICAjdGFiLW9uZTpjaGVja2VkIH4gLnRhYnMgI3RhYi1vbmUtbGFiZWwsXG4jdGFiLXR3bzpjaGVja2VkIH4gLnRhYnMgI3RhYi10d28tbGFiZWwge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cblxuICAjdGFiLW9uZTpjaGVja2VkIH4gLnRhYnMgI3RhYi1vbmUtcGFuZWwsXG4jdGFiLXR3bzpjaGVja2VkIH4gLnRhYnMgI3RhYi10d28tcGFuZWwge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICB9XG59XG4udGFibGUtaGVhZGVyLXJvdGF0ZWQgdGgge1xuICB3aWR0aDogYXV0bztcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZGRkZDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZGRkZDtcbiAgdmVydGljYWwtYWxpZ246IGxlZnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50YWJsZS1oZWFkZXItcm90YXRlZCB0ZCB7XG4gIHdpZHRoOiA0MHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZGRkZDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkZGRkO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkZGRkO1xuICB2ZXJ0aWNhbC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnNjcm9sbEgge1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnRleHQtYWJzZW5jZSB7XG4gIGNvbG9yOiAjRkYwMDAwO1xufVxuXG4udGV4dC1zcGVjaWFsIHtcbiAgY29sb3I6ICM5QzI4Mjg7XG59XG5cbi50ZXh0LWRpc21pc3NhbCB7XG4gIGNvbG9yOiAjRkZDMDAwO1xufVxuXG4udGV4dC1pbmFiaWxpdHkge1xuICBjb2xvcjogIzAwQjBGMDtcbn1cblxuLnRleHQtaG9saWRheSB7XG4gIGNvbG9yOiAjMDBCMDUwO1xufVxuXG4udGV4dC1icmVhayB7XG4gIGNvbG9yOiAjNzU3MTcxO1xufVxuXG4udGV4dC1icmVhay13b3JrIHtcbiAgY29sb3I6ICNGRkZGMDA7XG59XG5cbi50ZXh0LXN1bmRheS13b3JrZWQge1xuICBjb2xvcjogIzkzNzBEQjtcbn1cblxuLnRleHQtYnJlYWstd29ya2VkLXN1bmRheSB7XG4gIGNvbG9yOiAjRkYxMzkyO1xufVxuXG4udGV4dC1ob2xpZGF5LXdvcmsge1xuICBjb2xvcjogIzcwMzBBMDtcbn1cblxuLnRleHQtd29ya2VyLW5vdC1leGlzdCB7XG4gIGNvbG9yOiAjMUUxRTFFO1xufVxuXG4vKiBIYW5kc29udGFibGUgc3BlY2lmaWMgY3NzIChyb3cgaGlnaGxpZ2h0aW5nIGV2ZW4gYW5kIHNlbGVjdGVkKSAqL1xuLmhvdCAuaHRfbWFzdGVyIHRyOm50aC1vZi10eXBlKGV2ZW4pID4gdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZmN2ZmO1xufVxuXG4uaG90IC5odF9tYXN0ZXIgdHIuZm9vID4gdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUM5MEYzO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5ob3QgLmh0X21hc3RlciB0ciA+IHRkLmZvbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQzkwRjM7XG4gIGNvbG9yOiB3aGl0ZTtcbn0iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBPdXRwdXRzIHRoZSBgb3ZlcmZsb3ctd3JhcGAgcHJvcGVydHkgYW5kIGl0cyBsZWdhY3kgbmFtZSBgd29yZC13cmFwYCB0b1xuLy8vIHN1cHBvcnQgYnJvd3NlcnMgdGhhdCBkbyBub3QgeWV0IHVzZSBgb3ZlcmZsb3ctd3JhcGAuXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBBY2NlcHRlZCBDU1MgdmFsdWVzIGFyZSBgbm9ybWFsYCwgYGJyZWFrLXdvcmRgLCBgaW5oZXJpdGAsIGBpbml0aWFsYCxcbi8vLyAgIG9yIGB1bnNldGAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIG92ZXJmbG93LXdyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9wcm9wZXJ0aWVzLWFscGhhYmV0aWNhbC1vcmRlciAqL1xuXG5AbWl4aW4gb3ZlcmZsb3ctd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIl19 */\"","import { OnInit, Component } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalEmployeesComponet } from 'app/views/modales/employees/modal-employees.component';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoRetroactive } from 'app/shared/models/retroactive/dto-retroactive.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { RetroactiveService } from '../../retroactive.service';\r\nimport { PayrollService } from '../../payroll.service';\r\nimport { OrganizationService } from '../../organization/organization.service';\r\nimport { PositionService } from '../../quote/position.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { forEachChild } from 'typescript';\r\nimport { CustomerService } from '../../quote/customer.service';\r\nimport { map } from 'rxjs/operators';\r\n@Component({\r\n selector: 'app-retroactives',\r\n styleUrls: ['retroactives.style.scss'],\r\n templateUrl: 'retroactives.template.html'\r\n})\r\nexport class RetroactivesComponent implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formRetroactive: FormGroup;\r\n private locale: string = 'es';\r\n /**Catalogos */\r\n private catalogRetroactiveReasons: IDtoCatalog[];\r\n private catalogCompanies: Observable;\r\n private catalogRequisitions: Observable;\r\n private catalogPayrollTypes: IDtoCatalog[];\r\n private catalogPayrolls: IDtoCatalog[];\r\n private employeeIds: number[];\r\n private amount: number;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private employee: IDtoEmployee;\r\n private hasEmployee = false;\r\n private currentDate = new Date();\r\n private retroactives = new Array() as IDtoRetroactive[];\r\n private employeesTem = new Array() as IDtoRetroactive[];\r\n private showRoles: any;\r\n private employeeIniId: string;\r\n private periodKeyNom: Date;\r\n private payrollId: number;\r\n private profile: string;\r\n private isOpenPeriod: boolean;\r\n constructor(private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private retroactiveService: RetroactiveService\r\n , private configurationService: ConfigurationService\r\n , private modalService: BsModalService\r\n , private identityService: IdentityService\r\n , private payrollService: PayrollService\r\n , private organizationService: OrganizationService\r\n , private positionService: PositionService\r\n , private securityService: SecurityService\r\n , private customerService: CustomerService) {\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n if (this.showRoles !== '') {\r\n this.employeeIniId = this.showRoles.employeeId;\r\n this.profile = this.securityService.getProfileStorage('Retroactives');\r\n }\r\n this.isOpenPeriod = true;\r\n }\r\n ngOnInit(): void {\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getCatalogs();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getCatalogs();\r\n });\r\n }\r\n this.initializeFormRetroactive();\r\n }\r\n private getCatalogs(): void {\r\n this.catalogCompanies = this.organizationService.getCatalogCompanies();\r\n this.positionService.getCatalogPayrollTypes().subscribe(res => {\r\n this.catalogPayrollTypes = res;\r\n });\r\n this.spinner.hide();\r\n }\r\n private getRetroactives(payrollId: number): void {\r\n this.retroactiveService.getRetroactivesByPayrollIdAndBossId(payrollId, Number(this.employeeIniId)).subscribe(r => {\r\n this.employeesTem = r;\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n this.spinner.hide();\r\n }\r\n private initializeFormRetroactive() {\r\n this.formRetroactive = this.formBuilder.group({\r\n amount: [null, Validators.required],\r\n retroactiveReasonId: [null, Validators.required],\r\n observations: [null, [Validators.maxLength(500)]],\r\n employee: [null],\r\n companyId: [null],\r\n payrollTypeId: [null],\r\n payrollId: [null, Validators.required]\r\n });\r\n }\r\n private submitForm(): void {\r\n this.save();\r\n }\r\n private openModalEmployees() {\r\n if (this.formRetroactive.valid) {\r\n\r\n if (this.amount > 16500) {\r\n this.configGeneral.newToast('Validación', 'El monto ingresado excedio el limite', 'error');\r\n return;\r\n }\r\n\r\n const initialState = {\r\n module: 'Retroactives',\r\n employeeIds: this.employeeIds\r\n };\r\n this.modalRef = this.modalService.show(ModalEmployeesComponet\r\n , Object.assign({ initialState }, { class: 'modal-lg' }, this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.employee = result;\r\n this.formRetroactive.get('employee').setValue(this.employee.employeeName);\r\n this.hasEmployee = true;\r\n let employee = this.formRetroactive.value as IDtoRetroactive;\r\n\r\n let accumulated: number = 0;\r\n this.employeesTem.filter(a => a.retroactiveReasonId == this.formRetroactive.value.retroactiveReasonId).forEach(a => accumulated += +a.amount);\r\n accumulated = (accumulated + +employee.amount);\r\n\r\n let res = this.employeesTem.filter(a => a.retroactiveReasonId == this.formRetroactive.value.retroactiveReasonId && a.employeeId == this.employee.id)[0];\r\n if (res != undefined) {\r\n this.configGeneral.newToast('Validación', 'El empleado ya se agregó con el motivo de retroactivo', 'error');\r\n return;\r\n }\r\n employee.employeeId = this.employee.id;\r\n employee.employeeName = this.employee.employeeName;\r\n employee.retroactiveReason = this.catalogRetroactiveReasons.filter(a => a.id == this.formRetroactive.value.retroactiveReasonId)[0].name;\r\n employee.periodKeyNom = this.configGeneral.getLocalISOTime(this.periodKeyNom);\r\n employee.creationDate = this.configGeneral.getLocalISOTime(this.currentDate);\r\n employee.bossId = Number(this.employeeIniId);\r\n employee.status = 'add';\r\n employee.payrollId = this.formRetroactive.value.payrollTypeId;\r\n employee.payrollId = this.payrollId;\r\n this.employeesTem.push(employee);\r\n } else {\r\n this.hasEmployee = false;\r\n }\r\n });\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n this.configGeneral.touchedControls(this.formRetroactive);\r\n }\r\n }\r\n private removeRetroctive(item: IDtoRetroactive): void {\r\n if (item.id != undefined) {\r\n item.status = 'delete'\r\n } else {\r\n let index = this.employeesTem.indexOf(item)\r\n if (index > -1) {\r\n this.employeesTem.splice(index, 1);\r\n }\r\n }\r\n }\r\n private resetForm(): void {\r\n this.formRetroactive.get('amount').setValue(null);\r\n this.formRetroactive.get('retroactiveReasonId').setValue(null);\r\n this.formRetroactive.get('observations').setValue(null);\r\n this.employee = null;\r\n this.employeesTem = null;\r\n this.formRetroactive.get('companyId').setValue(null);\r\n this.formRetroactive.get('payrollTypeId').setValue(null);\r\n this.formRetroactive.get('payrollId').setValue(null);\r\n this.catalogPayrolls = null;\r\n }\r\n private changeCompany(): void {\r\n this.formRetroactive.get('payrollTypeId').setValue(null);\r\n this.formRetroactive.get('retroactiveReasonId').setValue(null);\r\n this.formRetroactive.get('payrollId').setValue(null);\r\n this.catalogRetroactiveReasons = null;\r\n this.isOpenPeriod = true;\r\n this.employeesTem = null;\r\n this.catalogPayrolls = null;\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n };\r\n }\r\n private getCatalogPayrolls(item: IDtoCatalog): void {\r\n if (item == null) {\r\n return;\r\n }\r\n this.spinner.show();\r\n this.formRetroactive.get('payrollId').setValue(null);\r\n this.formRetroactive.get('retroactiveReasonId').setValue(null);\r\n this.employeesTem = null;\r\n this.catalogPayrolls = null;\r\n this.payrollService.getCatalogPayrolls(this.formRetroactive.value.companyId, this.formRetroactive.value.payrollTypeId, this.profile).subscribe(x => {\r\n this.catalogPayrolls = x;\r\n this.spinner.hide();\r\n }),\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n };\r\n }\r\n private changePayrolls(item: IDtoCatalog): void {\r\n if (item == null) {\r\n this.periodKeyNom = null;\r\n this.hasEmployee = false;\r\n this.employee = null;\r\n this.retroactives = null;\r\n this.employeesTem = null;\r\n return;\r\n }\r\n this.payrollService.validatePayrolldLock(this.formRetroactive.value.payrollId, this.profile).subscribe(res => {\r\n let result = res.data.toString().split(',');\r\n if (result[0] == \"2\" && result[1] == 'True') {\r\n this.isOpenPeriod = false;\r\n return;\r\n }\r\n else {\r\n this.isOpenPeriod = true;\r\n this.spinner.show();\r\n this.periodKeyNom = new Date(item.additional);\r\n this.payrollId = this.formRetroactive.value.payrollId;\r\n let resPayroll = this.catalogPayrolls.filter(a => a.id == this.formRetroactive.value.payrollId)[0];\r\n let str = resPayroll.name.split('-');\r\n\r\n this.retroactiveService.getCatalogRetroactiveReasonsByCustomerId(Number(str[4])).subscribe(c => {\r\n this.catalogRetroactiveReasons = c;\r\n //this.spinner.hide();\r\n }),\r\n\r\n this.getRetroactives(this.formRetroactive.value.payrollId);\r\n this.payrollService.getEmployeeIds(item.id, Number(this.employeeIniId)).subscribe(x => {\r\n this.employeeIds = x;\r\n this.spinner.hide();\r\n }),\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n };\r\n }\r\n });\r\n }\r\n private save(): void {\r\n this.spinner.show();\r\n this.retroactiveService.addRetroactives(this.employeesTem)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let r = x.data as IDtoRetroactive[];\r\n r.forEach(r => {\r\n if (r.status == 'add') {\r\n this.addModuleLog(r.id, 'new');\r\n }\r\n if (r.status == 'delete') {\r\n this.addModuleLog(r.id, 'delete');\r\n }\r\n });\r\n this.resetForm();\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private deleteRetroactive(item: IDtoRetroactive): void {\r\n this.retroactiveService.deleteRetroactive(item.id).subscribe(x => {\r\n if (x.isCorrect) {\r\n let index = this.retroactives.indexOf(item)\r\n if (index > -1) {\r\n this.retroactives.splice(index, 1);\r\n this.retroactives = [...this.retroactives];\r\n }\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Retroactives';\r\n dto.module = 'retroactives';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcGF5cm9sbC9yZXRyb2FjdGl2ZXMvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxwYXlyb2xsXFxyZXRyb2FjdGl2ZXNcXHJldHJvYWN0aXZlcy5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9wYXlyb2xsL3JldHJvYWN0aXZlcy9yZXRyb2FjdGl2ZXMuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9wYXlyb2xsL3JldHJvYWN0aXZlcy9yZXRyb2FjdGl2ZXMuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbiAgfSIsIi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0iXX0= */\"","import { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class AdministrationService {\r\n private quoteUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n });\r\n }\r\n }\r\n public getIvaPercentage(): Observable {\r\n const url = `${this.quoteUrl}api/Configurations/getIvaPercentage`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getOpenCalendar(calendar: string): Observable {\r\n const url = `${this.quoteUrl}api/Configurations/getOpenCalendar?calendar=${calendar}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}","import { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoBudget } from 'app/shared/models/quote/budget.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoBudgetFilter } from 'app/shared/models/quote/budget-filter.model';\r\nimport { IDtoNote } from 'app/shared/models/quote/note.model';\r\nimport { IDtoBudgetNote } from 'app/shared/models/quote/budget-note.model';\r\nimport { IDtoBudgetList } from 'app/shared/models/quote/dto-budget-list.model';\r\n\r\n@Injectable()\r\nexport class BudgetService {\r\n private quoteUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n });\r\n }\r\n }\r\n public getCatalogPlanTypes(): Observable {\r\n const url = `${this.quoteUrl}api/PlanTypes/getCatalogPlanTypes`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogBudgetTypes(): Observable {\r\n const url = `${this.quoteUrl}api/BudgetTypes/getCatalogBudgetTypes`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogExpenseTypes(): Observable {\r\n const url = `${this.quoteUrl}api/ExpenseTypes/getCatalogExpenseTypes`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogInvoiceConcepts(): Observable {\r\n const url = `${this.quoteUrl}api/InvoiceConcepts/getCatalogInvoiceConcepts`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogProjectCustomersByCustomerId(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/ProjectCustomers/getCatalogProjectCustomersByCustomerId?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogProjectCustomersByCustomerIdActive(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/ProjectCustomers/getCatalogProjectCustomersByCustomerIdActive?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogProjectsByCustomerIdAndEjecutive(customerId: number, userId: string): Observable {\r\n const url = `${this.quoteUrl}api/ProjectCustomers/getCatalogProjectsByCustomerIdAndEjecutive?customerId=${customerId}&userId=${userId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogProjectsByCustomerIdAndApprover(customerId: number, userId: string): Observable {\r\n const url = `${this.quoteUrl}api/ProjectCustomers/getCatalogProjectsByCustomerIdAndApprover?customerId=${customerId}&userId=${userId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPlanTrademarksByProjectCustomerId(projectCustomerId: number): Observable {\r\n const url = `${this.quoteUrl}api/PlanTrademarks/getCatalogPlanTrademarksByProjectCustomerId?projectCustomerId=${projectCustomerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addBudget(dto: IDtoBudget): Observable {\r\n const url =`${this.quoteUrl}api/Budgets/addBudget`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateBudget(dto: IDtoBudget): Observable {\r\n const url =`${this.quoteUrl}api/Budgets/updateBudget`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getBudgetPositionDistribution(budgetId: number): Observable {\r\n const url = `${this.quoteUrl}api/Budgets/getBudgetPositionDistribution?budgetId=${budgetId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getBudgetSalaryDistribution(budgetId: number): Observable {\r\n const url = `${this.quoteUrl}api/Budgets/getBudgetSalaryDistribution?budgetId=${budgetId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getBudgetsByCustomerId(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/Budgets/getBudgetsByCustomerId?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getBudget(budgetId: string): Observable {\r\n const url = `${this.quoteUrl}api/Budgets/getBudget?budgetId=${budgetId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public changeStatusBudget(dto: IDtoBudget): Observable {\r\n const url =`${this.quoteUrl}api/Budgets/changeStatusBudget`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getBudgetsByFilter(dto: IDtoBudgetFilter): Observable {\r\n const url =`${this.quoteUrl}api/Budgets/getBudgetsByFilter`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public duplicateBudget(dto: IDtoBudgetList): Observable {\r\n const url = `${this.quoteUrl}api/Budgets/duplicateBudget`;\r\n return this.service.post(url, dto)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public deleteBudget(budgetId: number): Observable {\r\n const url = `${this.quoteUrl}api/Budgets/deleteBudget?budgetId=${budgetId}`;\r\n return this.service.delete(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addNote(dto: IDtoNote): Observable {\r\n const url =`${this.quoteUrl}api/Notes/addNote`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getNotes(): Observable {\r\n const url = `${this.quoteUrl}api/Notes/getNotes`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public deleteNote(noteId: number): Observable {\r\n const url = `${this.quoteUrl}api/Notes/deleteNote?noteId=${noteId}`;\r\n return this.service.delete(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addBudgetNote(dto: IDtoBudgetNote): Observable {\r\n const url =`${this.quoteUrl}api/BudgetNotes/addBudgetNote`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getBudgetNotes(budgetId: number): Observable {\r\n const url = `${this.quoteUrl}api/BudgetNotes/getBudgetNotes?budgetId=${budgetId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public deleteBudgetNote(budgetNoteId: number): Observable {\r\n const url = `${this.quoteUrl}api/BudgetNotes/deleteBudgetNote?budgetNoteId=${budgetNoteId}`;\r\n return this.service.delete(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getBudgetVersions(budgetId: number): Observable {\r\n const url = `${this.quoteUrl}api/Budgets/getBudgetVersions?budgetId=${budgetId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public approveBudget(dto: IDtoCatalog): Observable {\r\n const url =`${this.quoteUrl}api/Budgets/approveBudget`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getBudgetWithBonusByCustomerId(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/Budgets/getBudgetWithBonusByCustomerId?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogProjectCustomersByCustomerIdActivePayrollRequest(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/ProjectCustomers/getCatalogProjectCustomersByCustomerIdActivePayrollRequest?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoBudget } from 'app/shared/models/quote/budget.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { BudgetService } from '../../budget.service';\r\n\r\n@Component({\r\n selector: 'app-budget-approval-summary',\r\n templateUrl: 'budget-approval-summary.template.html'\r\n})\r\nexport class BudgetApprovalSummaryComponent implements OnInit {\r\n public nav: any;\r\n private errorMessages: any;\r\n private title: string;\r\n private description1: string;\r\n private description2: string;\r\n constructor(private serviceSecurity: SecurityService\r\n , private configurationService: ConfigurationService\r\n , private route: ActivatedRoute\r\n , private config: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private serviceBudget: BudgetService\r\n , private identityService: IdentityService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe((params) => {\r\n if (params['url']) {\r\n if (this.configurationService.isReady) {\r\n let u = params['url'];\r\n this.approveBudget(u);\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n let u = params['url'];\r\n this.approveBudget(u);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n private approveBudget(id: string): void {\r\n let dto = {} as IDtoCatalog;\r\n dto.name = id;\r\n this.spinner.show()\r\n this.serviceBudget.approveBudget(dto)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.title = 'Presupuesto aprobado';\r\n this.description1 = 'Para más información acerca del presupuesto aprobado, lo invitamos a que se autentique en nuestra plataforma con los datos de acceso que se le ha proporcionado.';\r\n this.description2 = 'Si no cuenta con la información requerida para iniciar sesión, le invitamos a ponerse en contacto con su ejecutivo o el área de ventas.'\r\n this.addModuleLog(x.data as IDtoBudget);\r\n } else {\r\n this.title = x.exception;\r\n this.description1 = 'Le invitamos a ponerse en contacto con su ejecutivo o el área de ventas para mayor información.';\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private addModuleLog(res: IDtoBudget): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Budgets';\r\n dto.module = 'budgetApproval';\r\n dto.action = 'approval';\r\n dto.registryAffectedId = res.id;\r\n dto.userId = res.approverUserId;\r\n dto.employeeId = null;\r\n dto.role = 'Cliente';\r\n this.identityService.addModuleLogComplete(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoUrl } from 'app/shared/models/security/dto-url.model';\r\nimport { IUser } from 'app/shared/models/user.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\n@Component({\r\n selector: 'app-budget-approval',\r\n templateUrl: 'budget-approval.template.html'\r\n})\r\nexport class BudgetApprovalComponent implements OnInit {\r\n public nav: any;\r\n private authenticated = false;\r\n private errorMessages: any;\r\n private objUrl = {} as IDtoUrl;\r\n constructor(private serviceSecurity: SecurityService\r\n , private configurationService: ConfigurationService\r\n , private route: ActivatedRoute\r\n , private config: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private serviceIdentity: IdentityService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe((params) => {\r\n if (params['url']) {\r\n if (this.configurationService.isReady) {\r\n let u = params['url'];\r\n this.getRouteByUrl(u);\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n let u = params['url'];\r\n this.getRouteByUrl(u);\r\n });\r\n }\r\n }\r\n });\r\n this.serviceSecurity.authenticationChallengeExternal$.subscribe((res) => {\r\n this.authenticated = res;\r\n if (this.authenticated) {\r\n this.serviceSecurity.GetRolesUser('budget-approval', this.objUrl.route);\r\n this.spinner.hide();\r\n } else {\r\n this.spinner.hide();\r\n this.config.newToast('Validación', 'Datos incorrectos', 'error');\r\n }\r\n });\r\n }\r\n private getRouteByUrl(url: string): void {\r\n this.spinner.show()\r\n this.serviceIdentity.getRouteByUrl(url)\r\n .subscribe(\r\n (x) => {\r\n this.spinner.hide();\r\n this.objUrl = x.data as IDtoUrl;\r\n this.login();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private login() {\r\n let user = {} as IUser;\r\n user.system = this.config.getConfig().name;\r\n user.username = this.objUrl.user;\r\n user.password = this.objUrl.password;\r\n this.serviceSecurity.GetAuthorizationExternalUser(user);\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoCustomer } from 'app/shared/models/customer/dto-customer.model';\r\nimport { IDtoCompany } from 'app/shared/models/organization/dto-company.model';\r\nimport { IDtoCustomerType } from 'app/shared/models/customer/dto-customer-type.model';\r\nimport { PositionService } from '../position.service';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BudgetService } from '../budget.service';\r\nimport { RecruitmentService } from '../../recruitment/recruitment.service';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoBudget } from 'app/shared/models/quote/budget.model';\r\nimport { IMyDateModel } from 'angular-mydatepicker';\r\nimport { IDtoCatalogPosition } from 'app/shared/models/quote/catalog-position.model';\r\nimport { IDtoBudgetDetail } from 'app/shared/models/quote/budget-detail.model';\r\nimport { IDtoBudgetDistribution } from 'app/shared/models/quote/budget-distribution.model';\r\nimport { IDtoPaymentConcept } from 'app/shared/models/position/dto-payment-concept.model';\r\nimport { IDtoExpenseDetail } from 'app/shared/models/quote/expense-detail.model';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IUser } from 'app/shared/models/user.model';\r\nimport { EnumBudgetStatus } from 'app/shared/enums/budget-status.enum';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalReasonComponent } from 'app/views/modales/common/modal-reason.component';\r\nimport { ModalNotesComponet } from 'app/views/modales/budget/notes/modal-notes.component';\r\nimport { ModalBudgetApproverComponent } from 'app/views/modales/customer/budget-approver/modal-budget-approver.component';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { AdministrationService } from '../administration.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { IDtoBonusDetail } from 'app/shared/models/quote/bonus-detail.model';\r\n@Component({\r\n selector: '[app-budget]',\r\n styleUrls: ['budget.style.scss'],\r\n templateUrl: 'budget.template.html'\r\n})\r\nexport class BudgetComponent implements OnDestroy, OnInit {\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n\r\n public nav: any;\r\n private customer: IDtoCustomer;\r\n private action = 'add';\r\n /**Catalogos */\r\n private catalogPlanTrademarks: Observable;\r\n private catalogPlanTypes: Observable;\r\n private catalogBudgetTypes: Observable;\r\n private catalogProjectCustomers: Observable;\r\n private catalogStates: Observable;\r\n private catalogTowns: Observable;\r\n private positions: IDtoCatalogPosition[];\r\n private catalogProductExpenses: Observable;\r\n private catalogExpenseTypes: Observable;\r\n private catalogInvoiceConcepts: Observable;\r\n private catalogCustomerCommissions: IDtoCatalog[];\r\n private formGeneralData: FormGroup;\r\n private formCreateBudget: FormGroup;\r\n private formCreateExpense: FormGroup;\r\n private formCreateBonus: FormGroup;\r\n private budgetDetails = new Array() as IDtoBudgetDetail[];\r\n private expenseDetails = new Array() as IDtoExpenseDetail[];\r\n private bonusDetails = new Array() as IDtoBonusDetail[];\r\n private budget: IDtoBudget;\r\n private budgetStatusUpdate: IDtoBudget;\r\n private budgetDistributionTowns = new Array() as IDtoBudgetDistribution[];\r\n private budgetDistributionPositions = new Array() as IDtoBudgetDistribution[];\r\n private budgetSalaryDistributionConcepts = new Array() as IDtoPaymentConcept[];\r\n private budgetSalaryDistributionPositions = new Array() as IDtoBudgetDistribution[];\r\n @ViewChild('swalAdd', { static: false }) private swalAdd: SwalComponent;\r\n @ViewChild('swalApprove', { static: false }) private swalApprove: SwalComponent;\r\n @ViewChild('swalSentApproval', { static: false }) private swalSentApproval: SwalComponent;\r\n @ViewChild('swalRejectBudget', { static: false }) private swalRejectBudget: SwalComponent;\r\n @ViewChild('confirmSwal', { static: false }) private confirmSwal: SwalComponent;\r\n @ViewChild('swalApprovalSummary', { static: false }) private swalApprovalSummary: SwalComponent;\r\n @ViewChild('swalRefusedSummary', { static: false }) private swalRefusedSummary: SwalComponent;\r\n @ViewChild('tab1', { static: false }) private tab1;\r\n public resetCustomerId: Subject = new Subject();\r\n subtotal: number = 0;\r\n discount: number = 0;\r\n subtotalDiscount: number = 0;\r\n iva: number = 0;\r\n total: number = 0;\r\n subtotalExp: number = 0;\r\n discountExp: number = 0;\r\n subtotalDiscountExp: number = 0;\r\n ivaExp: number = 0;\r\n totalExp: number = 0;\r\n subtotalBonus: number = 0;\r\n ivaBonus: number = 0;\r\n totalBonus: number = 0;\r\n private profile: string;\r\n private user: IUser;\r\n private status: string;\r\n private modalRef: BsModalRef;\r\n private ivaPercentage: number;\r\n private module: string;\r\n public constructor(private router: Router\r\n , private configGeneral: AppConfig\r\n , private modalService: BsModalService\r\n , private formBuilder: FormBuilder\r\n , private positionService: PositionService\r\n , private budgetService: BudgetService\r\n , private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private route: ActivatedRoute\r\n , private recruitmentService: RecruitmentService\r\n , private securityService: SecurityService\r\n , private administrationService: AdministrationService\r\n , private identityService: IdentityService) {\r\n this.nav = document.querySelector('nav.navbar');\r\n this.profile = this.securityService.getProfileStorage('BudgetCreation');\r\n this.user = this.securityService.getUserDataStorage();\r\n\r\n this.customer = {} as IDtoCustomer;\r\n this.customer.payCompany = {} as IDtoCompany;\r\n this.customer.customerType = {} as IDtoCustomerType;\r\n if (this.configurationService.isReady) {\r\n this.getCatalogs();\r\n this.getIvaPercentage();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getCatalogs();\r\n this.getIvaPercentage();\r\n });\r\n }\r\n this.initializeFormGeneralData();\r\n this.initializeFormCreateBudget();\r\n this.initializeFormCreateExpense();\r\n this.initializeFormCreateBonus();\r\n }\r\n\r\n ngOnInit(): any {\r\n this.module = this.route.snapshot.data.expectedModule;\r\n if (this.profile == 'Cliente') {\r\n this.formGeneralData.disable();\r\n }\r\n //this.nav.className += ' white-bg';\r\n this.budget = {} as IDtoBudget;\r\n this.budget.status = 0;\r\n this.route.params.subscribe((params) => {\r\n if (params['id']) {\r\n setTimeout(() => {\r\n this.action = params['action'];\r\n this.getBudget(params['id']);\r\n }, 2);\r\n\r\n }\r\n });\r\n this.onChangesFormGeneralData();\r\n }\r\n private initializeFormGeneralData() {\r\n this.formGeneralData = this.formBuilder.group({\r\n customerId: [null, Validators.required],\r\n duration: [null, Validators.required],\r\n startDate: [null, Validators.required],\r\n endDate: [null, Validators.required],\r\n planTypeId: [null, Validators.required],\r\n budgetTypeId: [null, Validators.required],\r\n invoiceConceptId: [null, Validators.required],\r\n projectCustomerId: [null],\r\n projectId: [null],\r\n planTrademarkId: [null],\r\n comments: [null, [Validators.maxLength(255)]]\r\n });\r\n }\r\n private initializeFormCreateBudget() {\r\n this.formCreateBudget = this.formBuilder.group({\r\n positionId: [null, Validators.required],\r\n stateId: [null, Validators.required],\r\n townId: [null, Validators.required],\r\n quantity: [1, Validators.required],\r\n duration: [null, Validators.required],\r\n discountPercentage: [0],\r\n projectCustomerId: [null],\r\n planTrademarkId: [null]\r\n });\r\n }\r\n private initializeFormCreateExpense() {\r\n this.formCreateExpense = this.formBuilder.group({\r\n productId: [null, Validators.required],\r\n expenseTypeId: [null, Validators.required],\r\n cost: [null, Validators.required],\r\n quantity: [1, Validators.required],\r\n duration: [null],\r\n description: [null, [Validators.required, Validators.maxLength(255)]],\r\n discountPercentage: [0],\r\n distributionType: [null, [Validators.required]],\r\n projectCustomerId: [null]\r\n });\r\n }\r\n private initializeFormCreateBonus() {\r\n this.formCreateBonus = this.formBuilder.group({\r\n projectCustomerId: [null],\r\n positionId: [null, Validators.required],\r\n customerCommissionId: [null, Validators.required],\r\n amount: [null, Validators.required],\r\n quantity: [1, Validators.required],\r\n duration: [null],\r\n description: [null, [Validators.required, Validators.maxLength(255)]]\r\n });\r\n }\r\n private onChangesFormGeneralData(): void {\r\n this.formGeneralData.get('duration').valueChanges.subscribe(val => {\r\n this.formCreateBudget.get('duration').setValue(val);\r\n });\r\n }\r\n private receiveCustomer(customer: IDtoCustomer) {\r\n this.positions = [] as IDtoCatalogPosition[];\r\n this.formCreateBudget.get('positionId').setValue(null);\r\n this.formCreateBudget.get('projectCustomerId').setValue(null);\r\n this.formCreateBudget.get('planTrademarkId').setValue(null);\r\n if (this.action == 'add') {\r\n this.catalogProjectCustomers = null;\r\n this.formGeneralData.get('projectCustomerId').setValue(null);\r\n this.catalogPlanTrademarks = null;\r\n this.formGeneralData.get('planTrademarkId').setValue(null);\r\n if (customer !== undefined) {\r\n this.customer = customer;\r\n this.validateProjectAndPlan();\r\n this.positionService.getCatalogVariableCustomerCommissionsByCustomerId(this.customer.id).subscribe(res => { this.catalogCustomerCommissions = res; });\r\n switch (this.profile) {\r\n case 'Ejecutivo':\r\n this.catalogProjectCustomers = this.budgetService.getCatalogProjectsByCustomerIdAndEjecutive(this.customer.id, this.user.userId);\r\n break;\r\n default:\r\n this.catalogProjectCustomers = this.budgetService.getCatalogProjectCustomersByCustomerId(this.customer.id);\r\n break;\r\n }\r\n if (this.customer.staffTypeName == 'Campo') {\r\n this.getPositionsByCustomerId(this.customer.id);\r\n }\r\n }\r\n } else {\r\n if (customer !== undefined) {\r\n this.customer = customer;\r\n this.validateProjectAndPlan();\r\n this.positionService.getCatalogVariableCustomerCommissionsByCustomerId(this.customer.id).subscribe(res => { this.catalogCustomerCommissions = res; });\r\n if (this.customer.staffTypeName == 'Campo') {\r\n this.getPositionsByCustomerId(this.customer.id);\r\n }\r\n }\r\n }\r\n }\r\n private validateProjectAndPlan(): void {\r\n if (this.customer.staffTypeName != 'Oficina') {\r\n this.formGeneralData.get('projectCustomerId').setValidators([Validators.required]);\r\n this.formGeneralData.get('planTrademarkId').setValidators([Validators.required]);\r\n } else {\r\n this.formGeneralData.get('projectCustomerId').setValidators(null);\r\n this.formGeneralData.get('planTrademarkId').setValidators(null);\r\n }\r\n this.formGeneralData.get('projectCustomerId').updateValueAndValidity();\r\n this.formGeneralData.get('planTrademarkId').updateValueAndValidity();\r\n }\r\n private getPositionsByCustomerId(customerId: number): void {\r\n this.positionService.getPositionsByCustomerId(customerId).subscribe(res => {\r\n if (res.isCorrect) {\r\n this.positions = res.data as IDtoCatalogPosition[];\r\n this.formCreateBudget.get('positionId').setValue(null);\r\n }\r\n })\r\n }\r\n private getPositionsByProjectId(customerId: number): void {\r\n this.positionService.getPositionsByProjectId(customerId).subscribe(res => {\r\n if (res.isCorrect) {\r\n this.positions = res.data as IDtoCatalogPosition[];\r\n this.formCreateBudget.get('positionId').setValue(null);\r\n }\r\n })\r\n }\r\n private getIvaPercentage(): void {\r\n this.administrationService.getIvaPercentage().subscribe(res => {\r\n this.ivaPercentage = res;\r\n })\r\n }\r\n private getCatalogTowns(dto: ISelect): void {\r\n this.catalogTowns = null;\r\n this.formCreateBudget.get('townId').setValue(null);\r\n if (dto === undefined) {\r\n return;\r\n }\r\n this.catalogTowns = this.recruitmentService.getCatalogTownsWithStructureByStateId(dto.id);\r\n }\r\n private getCatalogs(): void {\r\n this.catalogPlanTypes = this.budgetService.getCatalogPlanTypes();\r\n this.catalogStates = this.recruitmentService.getCatalogStates();\r\n this.catalogExpenseTypes = this.budgetService.getCatalogExpenseTypes();\r\n this.catalogProductExpenses = this.positionService.getCatalogProductExpenses();\r\n this.catalogBudgetTypes = this.budgetService.getCatalogBudgetTypes();\r\n this.catalogInvoiceConcepts = this.budgetService.getCatalogInvoiceConcepts();\r\n }\r\n private changeProjectCustomer(dto: IDtoCatalog): void {\r\n if (dto === undefined) {\r\n this.catalogPlanTrademarks = null;\r\n this.formGeneralData.get('planTrademarkId').setValue(null);\r\n return;\r\n }\r\n this.catalogPlanTrademarks = this.budgetService.getCatalogPlanTrademarksByProjectCustomerId(dto.id);\r\n if (this.customer.staffTypeName == 'Oficina') {\r\n this.getPositionsByProjectId(dto.id);\r\n }\r\n }\r\n public ngOnDestroy(): any {\r\n this.nav.classList.remove('white-bg');\r\n }\r\n private addPositionToBudget(): void {\r\n if (!this.formCreateBudget.valid) {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.touchedControls(this.formCreateBudget);\r\n return;\r\n }\r\n\r\n let item = this.formCreateBudget.value as IDtoBudgetDetail;\r\n let detail = this.budgetDetails.filter(p => p.positionId == item.positionId && p.townId == item.townId && p.duration == item.duration)[0];\r\n if (detail != null) {\r\n detail.quantity = +item.quantity;//+detail.quantity + +item.quantity;\r\n detail.totalCost = Math.round((detail.dailyCost * +detail.quantity) * 100) / 100;\r\n let des = detail.totalCost * detail.discountPercentage / 100;\r\n detail.discount = Math.round(des * 100) / 100;\r\n detail.totalFinalCost = Math.round((detail.totalCost - detail.discount) * 100) / 100;\r\n } else {\r\n\r\n\r\n const sta = this.catalogStates.pipe(map(items => items.filter(p => p.id == item.stateId.toString())));\r\n sta.subscribe(val => {\r\n item.stateName = val[0].text;\r\n });\r\n const tow = this.catalogTowns.pipe(map(items => items.filter(p => p.id == item.townId.toString())));\r\n tow.subscribe(val => {\r\n item.townName = val[0].text;\r\n });\r\n\r\n const pos = this.positions.filter(p => p.id == item.positionId);\r\n //const parts = pos[0].tradename.split('-');\r\n item.positionName = pos[0].tradename;//parts.slice(1).join('-');\r\n\r\n item.dailyCost = +pos[0].positionDetails.filter(d => d.name == 'dailyCost')[0].value;\r\n item.totalCost = Math.round((item.dailyCost * +item.quantity) * 100) / 100;\r\n let des = item.totalCost * item.discountPercentage / 100;\r\n item.discount = Math.round(des * 100) / 100;\r\n item.totalFinalCost = Math.round((item.totalCost - item.discount) * 100) / 100;\r\n\r\n item.status = 'add';\r\n this.budgetDetails.unshift(item);\r\n }\r\n this.formCreateBudget.get('quantity').setValue(1);\r\n this.formCreateBudget.get('discountPercentage').setValue(0);\r\n }\r\n private addExpenseToBudget(): void {\r\n if (!this.formCreateExpense.valid) {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.touchedControls(this.formCreateExpense);\r\n return;\r\n }\r\n if (this.customer.expensesPercentage == undefined) {\r\n this.configGeneral.newToast('Validación', 'Seleccione un cliente para poder continuar', 'error');\r\n return;\r\n }\r\n let item = this.formCreateExpense.value as IDtoExpenseDetail;\r\n\r\n if (item.duration == 0) {\r\n this.configGeneral.newToast('Validación', 'Duración no puede ser 0 días', 'warning');\r\n this.formCreateExpense.get('duration').setValue(null);\r\n return;\r\n }\r\n\r\n if (this.customer.staffTypeName == 'Oficina' && item.projectCustomerId == undefined) {\r\n this.configGeneral.newToast('Validación', 'Seleccione un proyecto para continuar', 'warning');\r\n return;\r\n }\r\n\r\n {\r\n const prod = this.catalogProductExpenses.pipe(map(items => items.filter(p => p.id == item.productId)));\r\n prod.subscribe(val => {\r\n item.productName = val[0].name;\r\n });\r\n\r\n const exp = this.catalogExpenseTypes.pipe(map(items => items.filter(p => p.id == item.expenseTypeId)));\r\n exp.subscribe(val => {\r\n item.expenseTypeName = val[0].name;\r\n });\r\n if (item.projectCustomerId != undefined){\r\n const expProyect = this.catalogProjectCustomers.pipe(map(items => items.filter(p => p.id == item.projectCustomerId)));\r\n expProyect.subscribe(val => {\r\n item.projectCustomerName = val[0].name;\r\n });\r\n };\r\n\r\n item.expensesPercentage = this.customer.expensesPercentage;\r\n item.expensesCost = Math.round((item.cost * item.expensesPercentage / 100) * 100) / 100;\r\n item.unitCost = Math.round((+item.cost + +item.expensesCost) * 100) / 100;\r\n if (item.duration != null) {\r\n item.totalCost = Math.round((item.unitCost * item.quantity * item.duration) * 100) / 100;\r\n item.discount = 0;\r\n if (item.discountPercentage > 0) {\r\n let des = item.totalCost / ((+item.discountPercentage + 100) / 100);\r\n item.discount = Math.round((item.totalCost - des) * 100) / 100;\r\n item.totalFinalCost = Math.round(des * 100) / 100;\r\n } else {\r\n item.totalFinalCost = Math.round(item.totalCost * 100) / 100;\r\n }\r\n\r\n } else {\r\n item.totalCost = Math.round((item.unitCost * item.quantity) * 100) / 100;\r\n item.discount = 0;\r\n if (item.discountPercentage > 0) {\r\n let des = item.totalCost / ((+item.discountPercentage + 100) / 100);\r\n item.discount = Math.round((item.totalCost - des) * 100) / 100;\r\n item.totalFinalCost = Math.round(des * 100) / 100;\r\n } else {\r\n item.totalFinalCost = Math.round((item.totalCost - item.discount) * 100) / 100;\r\n }\r\n }\r\n\r\n item.status = 'add'\r\n this.formCreateExpense.get('quantity').setValue(1);\r\n this.formCreateExpense.get('discountPercentage').setValue(0);\r\n this.expenseDetails.push(item);\r\n this.calculateTotalExpenses();\r\n }\r\n }\r\n private addBonusToBudget(): void {\r\n if (!this.formCreateBonus.valid) {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.touchedControls(this.formCreateBonus);\r\n return;\r\n }\r\n if (this.customer.expensesPercentage == undefined) {\r\n this.configGeneral.newToast('Validación', 'Seleccione un cliente para poder continuar', 'error');\r\n return;\r\n }\r\n let item = this.formCreateBonus.value as IDtoBonusDetail;\r\n let detail = this.bonusDetails.filter(p => p.positionId == item.positionId && p.customerCommissionId == item.customerCommissionId)[0];\r\n if (detail != null) {\r\n this.confirmSwal.title = 'Ya existe un registro con los datos seleccionados. ¿Seguro que desea reemplazarlo con los nuevos valores?';\r\n this.confirmSwal.show().then((result) => {\r\n if (result.value) {\r\n detail.quantity = +item.quantity;\r\n detail.amount = +item.amount;\r\n detail.duration = +item.duration;\r\n detail.description = item.description;\r\n detail.socialCharge = Math.round((detail.socialChargePercentage * detail.amount / 100) * 100) / 100;\r\n detail.agency = Math.round(((detail.amount + detail.socialCharge) * detail.agencyPercentage / 100) * 100) / 100;\r\n detail.totalCost = Math.round((detail.amount + detail.socialCharge + detail.agency) * 100) / 100;\r\n detail.subTotal = Math.round((detail.quantity * detail.totalCost) * 100) / 100;\r\n detail.iva = Math.round((detail.subTotal * this.ivaPercentage / 100) * 100) / 100;\r\n detail.total = Math.round((detail.subTotal + detail.iva) * 100) / 100;\r\n this.calculateTotalBonus();\r\n }\r\n });\r\n } else {\r\n const pos = this.positions.filter(p => p.id == item.positionId);\r\n item.positionName = pos[0].tradename;\r\n const exp = this.catalogCustomerCommissions.filter(p => p.id == item.customerCommissionId)[0];\r\n item.customerCommissionName = exp.name;\r\n item.socialChargePercentage = +pos[0].positionDetails.filter(d => d.name == 'socialChargePercentage')[0].value;\r\n item.socialCharge = Math.round((item.socialChargePercentage * +item.amount / 100) * 100) / 100;\r\n item.agencyPercentage = this.customer.agencyPercentage;\r\n item.agency = Math.round(((+item.amount + item.socialCharge) * item.agencyPercentage / 100) * 100) / 100;\r\n item.totalCost = Math.round((+item.amount + item.socialCharge + item.agency) * 100) / 100;\r\n item.subTotal = Math.round((+item.quantity * item.totalCost) * 100) / 100;\r\n item.iva = Math.round((item.subTotal * this.ivaPercentage / 100) * 100) / 100;\r\n item.total = Math.round((item.subTotal + item.iva) * 100) / 100;;\r\n item.status = 'add';\r\n this.bonusDetails.unshift(item);\r\n }\r\n this.calculateTotalBonus();\r\n }\r\n private getBudget(budgetId: string): void {\r\n this.spinner.show()\r\n this.budgetService.getBudget(budgetId)\r\n .subscribe(\r\n (x) => {\r\n this.budget = x.data as IDtoBudget;\r\n\r\n if (this.profile == 'Cliente'){\r\n if (this.budget.status == 2){\r\n this.swalApprovalSummary.title = 'Presupuesto aprobado';\r\n this.swalApprovalSummary.show();\r\n this.spinner.hide();\r\n return;\r\n }\r\n if (this.budget.status == 3){\r\n this.swalRefusedSummary.title = 'Presupuesto rechazado';\r\n this.swalRefusedSummary.show();\r\n this.spinner.hide();\r\n return;\r\n }\r\n }\r\n\r\n this.ivaPercentage = this.budget.ivaPercentage;\r\n this.formGeneralData.patchValue(this.budget);\r\n this.setDateInit(this.budget.startDate);\r\n this.setDateEnd(this.budget.endDate);\r\n this.budgetDetails = this.budget.budgetDetails;\r\n this.expenseDetails = this.budget.expenseDetails;\r\n this.bonusDetails = this.budget.bonusDetails;\r\n this.catalogProjectCustomers = this.budgetService.getCatalogProjectCustomersByCustomerId(this.budget.customerId);\r\n if (this.budget.projectCustomerId != null) {\r\n this.catalogPlanTrademarks = this.budgetService.getCatalogPlanTrademarksByProjectCustomerId(this.budget.projectCustomerId);\r\n }\r\n this.getPositionsByCustomerId(this.budget.customerId);\r\n this.resetCustomerId.next(this.budget.customerId);\r\n this.showPersonalDistribution();\r\n this.calculateTotalExpenses();\r\n this.calculateTotalBonus();\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private showPersonalDistribution(): void {\r\n this.budgetService.getBudgetPositionDistribution(this.budget.id)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.budgetDistributionTowns = x.data[0] as IDtoBudgetDistribution[];\r\n this.budgetDistributionPositions = x.data[1] as IDtoBudgetDistribution[];\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n this.budgetService.getBudgetSalaryDistribution(this.budget.id)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.budgetSalaryDistributionConcepts = x.data[0] as IDtoPaymentConcept[];\r\n this.budgetSalaryDistributionPositions = x.data[1] as IDtoBudgetDistribution[];\r\n this.calculateTotalDetailBudget();\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private removePositionFromBudget(item: IDtoBudgetDetail): void {\r\n if (item.id != undefined) {\r\n item.status = 'delete'\r\n } else {\r\n let index = this.budgetDetails.indexOf(item)\r\n if (index > -1) {\r\n this.budgetDetails.splice(index, 1);\r\n }\r\n }\r\n }\r\n private removeExpenseFromBudget(item: IDtoExpenseDetail): void {\r\n if (item.id != undefined) {\r\n item.status = 'delete'\r\n } else {\r\n let index = this.expenseDetails.indexOf(item)\r\n if (index > -1) {\r\n this.expenseDetails.splice(index, 1);\r\n }\r\n }\r\n this.calculateTotalExpenses();\r\n }\r\n private removeBonusFromBudget(item: IDtoBonusDetail): void {\r\n if (item.id != undefined) {\r\n item.status = 'delete'\r\n } else {\r\n let index = this.bonusDetails.indexOf(item)\r\n if (index > -1) {\r\n this.bonusDetails.splice(index, 1);\r\n }\r\n }\r\n this.calculateTotalBonus();\r\n }\r\n private calculateTotal(): number {\r\n let sum: number = 0;\r\n this.budgetDetails.forEach(a => sum += +a.totalCost);\r\n return sum;\r\n }\r\n private calculateTotalDetailBudget(): void {\r\n this.subtotal = 0;\r\n this.discount = 0;\r\n this.subtotalDiscount = 0;\r\n this.iva = 0;\r\n this.total = 0;\r\n this.budgetSalaryDistributionPositions.forEach(element => {\r\n element.items.filter(x => x.name == 'finalSubtotal').forEach(a => this.subtotal += +a.quantity);\r\n element.items.filter(x => x.name == 'finalDiscount').forEach(a => this.discount += +a.quantity);\r\n element.items.filter(x => x.name == 'finalSubtotalDiscount').forEach(a => this.subtotalDiscount += +a.quantity);\r\n element.items.filter(x => x.name == 'finalIva').forEach(a => this.iva += +a.quantity);\r\n element.items.filter(x => x.name == 'finalTotal').forEach(a => this.total += +a.quantity);\r\n });\r\n\r\n }\r\n private calculateTotalExpenses(): void {\r\n this.subtotalExp = 0;\r\n this.discountExp = 0;\r\n this.subtotalDiscountExp = 0;\r\n this.ivaExp = 0;\r\n this.totalExp = 0;\r\n this.expenseDetails.filter(x => x.status != 'delete').forEach(a => this.subtotalExp += +a.totalCost);\r\n this.expenseDetails.filter(x => x.status != 'delete').forEach(a => this.discountExp += +a.discount);\r\n this.subtotalDiscountExp = +this.subtotalExp - +this.discountExp;\r\n this.ivaExp = (this.subtotalDiscountExp * this.ivaPercentage) / 100;\r\n this.totalExp = this.subtotalDiscountExp + this.ivaExp;\r\n\r\n }\r\n private calculateTotalBonus(): void {\r\n this.subtotalBonus = 0;\r\n this.ivaBonus = 0;\r\n this.totalBonus = 0;\r\n this.bonusDetails.filter(x => x.status != 'delete').forEach(a => this.subtotalBonus += +a.subTotal);\r\n this.ivaBonus = (this.subtotalBonus * this.ivaPercentage) / 100;\r\n this.totalBonus = this.subtotalBonus + this.ivaBonus;\r\n\r\n }\r\n private submit(): void {\r\n if (!this.formGeneralData.valid) {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.touchedControls(this.formGeneralData);\r\n return;\r\n }\r\n this.swalAdd.title = '¿Seguro que desea guardar el presupuesto seleccionado?';\r\n this.swalAdd.show();\r\n }\r\n private submitSentApproval(approverUserId: string): void {\r\n if (!this.formGeneralData.valid) {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.touchedControls(this.formGeneralData);\r\n return;\r\n }\r\n this.budgetStatusUpdate = {} as IDtoBudget;\r\n this.budgetStatusUpdate.approverUserId = approverUserId;\r\n this.budgetStatusUpdate.id = this.budget.id;\r\n this.budgetStatusUpdate.status = EnumBudgetStatus.Approval;\r\n this.budgetStatusUpdate.subtotal = this.subtotalDiscount + this.subtotalDiscountExp;\r\n this.budgetStatusUpdate.iva = this.iva + this.ivaExp;\r\n this.budgetStatusUpdate.total = this.total + this.totalExp;\r\n this.budgetStatusUpdate.billCompanyId = this.customer.billCompanyId;\r\n this.swalSentApproval.title = '¿Seguro que desea enviar a aprobación el presupuesto seleccionado?';\r\n this.swalSentApproval.show();\r\n }\r\n private submitApprove(): void {\r\n if (this.formGeneralData.invalid) {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.touchedControls(this.formGeneralData);\r\n return;\r\n }\r\n this.budgetStatusUpdate = {} as IDtoBudget;\r\n this.budgetStatusUpdate.id = this.budget.id;\r\n this.budgetStatusUpdate.status = EnumBudgetStatus.Approved;\r\n this.swalApprove.title = '¿Seguro que desea aprobar el presupuesto seleccionado?';\r\n this.swalApprove.show();\r\n }\r\n private submitRejectBudget(rejectionReason: string): void {\r\n if (this.formGeneralData.invalid) {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.touchedControls(this.formGeneralData);\r\n return;\r\n }\r\n this.budgetStatusUpdate = {} as IDtoBudget;\r\n this.budgetStatusUpdate.id = this.budget.id;\r\n this.budgetStatusUpdate.status = EnumBudgetStatus.Rejected;\r\n this.budgetStatusUpdate.rejectionReason = rejectionReason;\r\n this.swalRejectBudget.title = '¿Seguro que desea rechazar el presupuesto seleccionado?';\r\n this.swalRejectBudget.show();\r\n }\r\n private save(): void {\r\n let budget = this.mapValues();\r\n switch (this.action) {\r\n case 'add':\r\n this.addBudget(budget);\r\n break;\r\n case 'update':\r\n this.updateBudget(budget);\r\n break;\r\n }\r\n }\r\n private addBudget(dto: IDtoBudget): void {\r\n this.spinner.show();\r\n this.budgetService.addBudget(dto)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.budget = x.data as IDtoBudget;\r\n this.budgetDetails = this.budget.budgetDetails;\r\n this.expenseDetails = this.budget.expenseDetails;\r\n this.bonusDetails = this.budget.bonusDetails;\r\n this.action = 'update'\r\n this.setDateInit(this.budget.startDate);\r\n this.setDateEnd(this.budget.endDate);\r\n this.showPersonalDistribution();\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.addModuleLog(this.budget.id, 'new');\r\n this.spinner.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private changeStatusBudget(): void {\r\n if (this.budget.id == undefined) {\r\n this.configGeneral.newToast('Validación', 'Guarde primeramente el presupuesto para poder aprobarlo', 'warning');\r\n return;\r\n }\r\n this.spinner.show();\r\n this.budgetService.changeStatusBudget(this.budgetStatusUpdate)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.budget.status = this.budgetStatusUpdate.status;\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.spinner.hide();\r\n this.addModuleLog(this.budget.id, EnumBudgetStatus[this.budgetStatusUpdate.status]);\r\n\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private approveBudget(id: string): void {\r\n let dto = {} as IDtoCatalog;\r\n dto.name = this.budget.id.toString();\r\n this.spinner.show()\r\n this.budgetService.approveBudget(dto)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.swalApprovalSummary.title = 'Presupuesto aprobado';\r\n this.swalApprovalSummary.show()\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n this.spinner.hide();\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private changeDistributionType($event: MatRadioChange) {\r\n if ($event.value == 1) {\r\n this.formCreateExpense.get('duration').setValidators([Validators.required]);\r\n this.formCreateExpense.get('duration').enable();\r\n } else {\r\n this.formCreateExpense.get('duration').setValidators(null);\r\n this.formCreateExpense.get('duration').setValue(null);\r\n this.formCreateExpense.get('duration').disable();\r\n }\r\n this.formCreateExpense.get('duration').updateValueAndValidity();\r\n }\r\n private updateBudget(dto: IDtoBudget): void {\r\n this.spinner.show();\r\n this.budgetService.updateBudget(dto)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.budget = x.data as IDtoBudget;\r\n this.budgetDetails = this.budget.budgetDetails;\r\n this.expenseDetails = this.budget.expenseDetails;\r\n this.bonusDetails = this.budget.bonusDetails;\r\n this.setDateInit(this.budget.startDate);\r\n this.setDateEnd(this.budget.endDate);\r\n this.showPersonalDistribution();\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.addModuleLog(this.budget.id, 'update');\r\n } else {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private mapValues(): IDtoBudget {\r\n let budget = this.formGeneralData.value as IDtoBudget;\r\n budget.startDate = new Date(this.configGeneral.dateFormat(this.formGeneralData.controls['startDate'].value.singleDate.jsDate, 'mm/dd/yyyy'));\r\n budget.endDate = new Date(this.configGeneral.dateFormat(this.formGeneralData.controls['endDate'].value.singleDate.jsDate, 'mm/dd/yyyy'));\r\n budget.totalCost = this.calculateTotal();\r\n budget.budgetDetails = this.budgetDetails;\r\n budget.expenseDetails = this.expenseDetails;\r\n budget.bonusDetails = this.bonusDetails;\r\n budget.ivaPercentage = this.ivaPercentage;\r\n budget.userId = this.user.userId;\r\n if (this.action === 'update') {\r\n budget.id = this.budget.id;\r\n budget.version = this.budget.version;\r\n budget.versionId = this.budget.versionId;\r\n budget.budgetReplacedId = this.budget.budgetReplacedId;\r\n budget.replacementComments = this.budget.replacementComments;\r\n budget.creationDate = this.budget.creationDate;\r\n budget.approverUserId = this.budget.approverUserId;\r\n budget.cancellationReason = this.budget.cancellationReason;\r\n budget.rejectionReason = this.budget.rejectionReason;\r\n }\r\n return budget;\r\n }\r\n private setQuantity(q: number): void {\r\n let sum = q + +this.formCreateBudget.value.quantity;\r\n if (sum > 0) {\r\n this.formCreateBudget.get('quantity').setValue(sum);\r\n }\r\n }\r\n private setQuantityExpense(q: number): void {\r\n let sum = q + +this.formCreateExpense.value.quantity;\r\n if (sum > 0) {\r\n this.formCreateExpense.get('quantity').setValue(sum);\r\n }\r\n }\r\n private setDuration(q: number): void {\r\n let sum = q + +this.formCreateBudget.value.duration;\r\n if (sum > 0) {\r\n this.formCreateBudget.get('duration').setValue(sum);\r\n }\r\n }\r\n private getDate(event: IMyDateModel) {\r\n return event.singleDate.jsDate;\r\n }\r\n private setDateInit(date: Date) {\r\n this.formGeneralData.controls['startDate'].enable();\r\n this.formGeneralData.controls['endDate'].enable();\r\n\r\n const d = new Date(date);\r\n let model: IMyDateModel = { isRange: false, singleDate: { jsDate: d }, dateRange: null };\r\n this.formGeneralData.get('startDate').setValue(model);\r\n //this.formGeneralData.get('endDate').setValue(model);\r\n if (this.profile == 'Cliente') {\r\n this.formGeneralData.controls['startDate'].disable();\r\n this.formGeneralData.controls['endDate'].disable();\r\n }\r\n }\r\n private setDateEnd(date: Date) {\r\n this.formGeneralData.controls['endDate'].enable();\r\n\r\n const d = new Date(date);\r\n let model: IMyDateModel = { isRange: false, singleDate: { jsDate: d }, dateRange: null };\r\n this.formGeneralData.get('endDate').setValue(model);\r\n if (this.profile == 'Cliente') {\r\n this.formGeneralData.controls['endDate'].disable();\r\n }\r\n }\r\n private touchedControls(form: FormGroup): void {\r\n Object.keys(form.controls).forEach(field => {\r\n const control = form.get(field);\r\n control.markAsTouched({ onlySelf: true });\r\n });\r\n }\r\n private resetForm(): void {\r\n this.tab1.nativeElement.checked = true;\r\n this.action = 'add';\r\n this.formGeneralData.reset();\r\n this.formCreateBudget.reset();\r\n this.formCreateExpense.reset();\r\n this.budget = {} as IDtoBudget;\r\n this.budget.status = 0;\r\n this.budgetDetails = [] as IDtoBudgetDetail[];\r\n this.expenseDetails = [] as IDtoExpenseDetail[];\r\n this.formCreateBudget.get('quantity').setValue(1);\r\n this.formCreateExpense.get('quantity').setValue(1);\r\n this.formCreateBudget.get('discountPercentage').setValue(0);\r\n this.positions = null;\r\n }\r\n private openModalReason(): void {\r\n const initialState = {\r\n title: 'Motivo de rechazo',\r\n reason: this.budget.rejectionReason\r\n };\r\n this.modalRef = this.modalService.show(ModalReasonComponent\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.submitRejectBudget(result);\r\n }\r\n });\r\n }\r\n private openModalNotes() {\r\n const initialState = {\r\n title: `Notas del presupuesto`,\r\n budgetId: this.budget.id,\r\n status: this.budget.status\r\n };\r\n this.modalRef = this.modalService.show(ModalNotesComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private openModalApprovers(): void {\r\n const initialState = {\r\n title: 'Aprobadores',\r\n projectCustomerId: this.formGeneralData.get('projectCustomerId').value,\r\n customerId: this.formGeneralData.get('customerId').value,\r\n staffTypeName: this.customer.staffTypeName\r\n };\r\n this.modalRef = this.modalService.show(ModalBudgetApproverComponent\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.submitSentApproval(result);\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Budgets';\r\n dto.module = 'budgetCreation';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\nfunction groupBy(list, keyGetter) {\r\n const map = new Map();\r\n list.forEach((item) => {\r\n const key = keyGetter(item);\r\n const collection = map.get(key);\r\n if (!collection) {\r\n map.set(key, [item]);\r\n } else {\r\n collection.push(item);\r\n }\r\n });\r\n return map;\r\n}\r\n","module.exports = \"/* stylelint-disable order/properties-alphabetical-order */\\n/* stylelint-enable */\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n@-webkit-keyframes fake {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n@keyframes fake {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\nbody {\\n -webkit-animation: fake 1s infinite;\\n animation: fake 1s infinite;\\n}\\n.worko-tabs {\\n margin: 0 15px -30px 0;\\n width: 98%;\\n}\\n.worko-tabs .state {\\n position: absolute;\\n left: -10000px;\\n}\\n.worko-tabs .flex-tabs {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n flex-wrap: wrap;\\n padding-left: 15px;\\n}\\n.worko-tabs .flex-tabs .tab {\\n -webkit-box-flex: 1;\\n flex-grow: 1;\\n max-height: 40px;\\n}\\n.worko-tabs .flex-tabs .panel {\\n background-color: #fff;\\n padding-left: 30px;\\n display: none;\\n width: 100%;\\n flex-basis: auto;\\n}\\n.worko-tabs .tab {\\n display: inline-block;\\n padding: 10px;\\n vertical-align: top;\\n background-color: #eee;\\n cursor: hand;\\n cursor: pointer;\\n border-left: 10px solid #ccc;\\n}\\n.worko-tabs .tab:hover {\\n background-color: #fff;\\n}\\n#tab-one:checked ~ .tabs #tab-one-label,\\n#tab-two:checked ~ .tabs #tab-two-label,\\n#tab-three:checked ~ .tabs #tab-three-label,\\n#tab-four:checked ~ .tabs #tab-four-label {\\n background-color: #fff;\\n cursor: default;\\n border-left-color: #1ab394;\\n}\\n#tab-one:checked ~ .tabs #tab-one-panel,\\n#tab-two:checked ~ .tabs #tab-two-panel,\\n#tab-three:checked ~ .tabs #tab-three-panel,\\n#tab-four:checked ~ .tabs #tab-four-panel {\\n display: block;\\n}\\n@media (max-width: 600px) {\\n .flex-tabs {\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n }\\n .flex-tabs .tab {\\n background: #fff;\\n border-bottom: 1px solid #ccc;\\n }\\n .flex-tabs .tab:last-of-type {\\n border-bottom: none;\\n }\\n .flex-tabs #tab-one-label {\\n -webkit-box-ordinal-group: 2;\\n order: 1;\\n }\\n .flex-tabs #tab-two-label {\\n -webkit-box-ordinal-group: 4;\\n order: 3;\\n }\\n .flex-tabs #tab-three-label {\\n -webkit-box-ordinal-group: 6;\\n order: 5;\\n }\\n .flex-tabs #tab-four-label {\\n -webkit-box-ordinal-group: 8;\\n order: 7;\\n }\\n .flex-tabs #tab-one-panel {\\n -webkit-box-ordinal-group: 3;\\n order: 2;\\n }\\n .flex-tabs #tab-two-panel {\\n -webkit-box-ordinal-group: 5;\\n order: 4;\\n }\\n .flex-tabs #tab-three-panel {\\n -webkit-box-ordinal-group: 7;\\n order: 6;\\n }\\n .flex-tabs #tab-four-panel {\\n -webkit-box-ordinal-group: 9;\\n order: 8;\\n }\\n\\n #tab-one:checked ~ .tabs #tab-one-label,\\n#tab-two:checked ~ .tabs #tab-two-label,\\n#tab-three:checked ~ .tabs #tab-three-label,\\n#tab-four:checked ~ .tabs #tab-four-label {\\n border-bottom: none;\\n }\\n\\n #tab-one:checked ~ .tabs #tab-one-panel,\\n#tab-two:checked ~ .tabs #tab-two-panel,\\n#tab-three:checked ~ .tabs #tab-three-panel,\\n#tab-four:checked ~ .tabs #tab-four-panel {\\n border-bottom: 1px solid #ccc;\\n }\\n}\\n.table-header-rotated th.row-header {\\n width: auto;\\n}\\n.table-header-rotated td {\\n width: 40px;\\n border-top: 1px solid #dddddd;\\n border-left: 1px solid #dddddd;\\n border-right: 1px solid #dddddd;\\n vertical-align: middle;\\n}\\n.table-header-rotated th.rotate-45 {\\n height: 100px;\\n width: 40px;\\n min-width: 40px;\\n max-width: 40px;\\n position: relative;\\n vertical-align: bottom;\\n padding: 0;\\n font-size: 12px;\\n line-height: 0.9;\\n}\\n.table-header-rotated th.rotate-45 > div {\\n position: relative;\\n top: 0px;\\n left: 8px;\\n /* 80 * tan(45) / 2 = 40 where 80 is the height on the cell and 45 is the transform angle*/\\n height: 100%;\\n -webkit-transform: skew(-90deg, 0deg);\\n transform: skew(-10deg, 0deg);\\n overflow: hidden;\\n border-left: 1px solid #dddddd;\\n border-right: 1px solid #dddddd;\\n border-top: 1px solid #dddddd;\\n}\\n.table-header-rotated th.rotate-45 span {\\n -webkit-transform: skew(90deg, 0deg) rotate(270deg);\\n transform: skew(10deg, 0deg) rotate(280deg);\\n position: absolute;\\n bottom: 40px;\\n /* 40 cos(45) = 28 with an additional 2px margin*/\\n left: -25px;\\n /*Because it looked good, but there is probably a mathematical link here as well*/\\n display: inline-block;\\n width: 85px;\\n /* 80 / cos(45) - 40 cos (45) = 85 where 80 is the height of the cell, 40 the width of the cell and 45 the transform angle*/\\n text-align: left;\\n}\\n.scrollH {\\n width: 100%;\\n overflow-x: auto;\\n white-space: nowrap;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcXVvdGUvYnVkZ2V0cy9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHF1b3RlXFxidWRnZXRzXFxidWRnZXQuc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcXVvdGUvYnVkZ2V0cy9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3N0ZGluIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9xdW90ZS9idWRnZXRzL2J1ZGdldC5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CQSwwREFBQTtBQU9BLHFCQUFBO0FDeEJBO0VBQ0UsaUJBQUE7QUNBRjtBREdBO0VBQ0U7SUFDRSxVQUFBO0VDQUY7RURHQTtJQUNFLFVBQUE7RUNERjtBQUNGO0FETkE7RUFDRTtJQUNFLFVBQUE7RUNBRjtFREdBO0lBQ0UsVUFBQTtFQ0RGO0FBQ0Y7QURJQTtFQUNFLG1DQUFBO1VBQUEsMkJBQUE7QUNGRjtBREtBO0VBQ0Usc0JBQUE7RUFDQSxVQUFBO0FDRkY7QURJRTtFQUNFLGtCQUFBO0VBQ0EsY0FBQTtBQ0ZKO0FES0U7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0FDSEo7QURJSTtFQUNFLG1CQUFBO1VBQUEsWUFBQTtFQUNBLGdCQUFBO0FDRk47QURLSTtFQUNFLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0FDSE47QURPRTtFQUNFLHFCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLDRCQUFBO0FDTEo7QURPSTtFQUNFLHNCQUFBO0FDTE47QURVQTs7OztFQUlFLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLDBCQUFBO0FDUEY7QURVQTs7OztFQUlFLGNBQUE7QUNQRjtBRFVBO0VBQ0U7SUFDRSw0QkFBQTtJQUFBLDZCQUFBO1lBQUEsc0JBQUE7RUNQRjtFRFNFO0lBQ0UsZ0JBQUE7SUFDQSw2QkFBQTtFQ1BKO0VEU0k7SUFDRSxtQkFBQTtFQ1BOO0VEV0U7SUFDRSw0QkFBQTtZQUFBLFFBQUE7RUNUSjtFRFlFO0lBQ0UsNEJBQUE7WUFBQSxRQUFBO0VDVko7RURhRTtJQUNFLDRCQUFBO1lBQUEsUUFBQTtFQ1hKO0VEY0U7SUFDRSw0QkFBQTtZQUFBLFFBQUE7RUNaSjtFRGVFO0lBQ0UsNEJBQUE7WUFBQSxRQUFBO0VDYko7RURnQkU7SUFDRSw0QkFBQTtZQUFBLFFBQUE7RUNkSjtFRGlCRTtJQUNFLDRCQUFBO1lBQUEsUUFBQTtFQ2ZKO0VEa0JFO0lBQ0UsNEJBQUE7WUFBQSxRQUFBO0VDaEJKOztFRG9CQTs7OztJQUlFLG1CQUFBO0VDakJGOztFRG9CQTs7OztJQUlFLDZCQUFBO0VDakJGO0FBQ0Y7QURvQkE7RUFDRSxXQUFBO0FDbEJGO0FEcUJBO0VBQ0UsV0FBQTtFQUNBLDZCQUFBO0VBQ0EsOEJBQUE7RUFDQSwrQkFBQTtFQUNBLHNCQUFBO0FDbEJGO0FEc0JBO0VBQ0UsYUFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7RUFDQSxVQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FDbkJGO0FEc0JBO0VBQ0Usa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUFXLDBGQUFBO0VBQ1gsWUFBQTtFQUdBLHFDQUFBO0VBRUEsNkJBQUE7RUFDQSxnQkFBQTtFQUNBLDhCQUFBO0VBQ0EsK0JBQUE7RUFDQSw2QkFBQTtBQ2xCRjtBRHFCQTtFQUdFLG1EQUFBO0VBRUEsMkNBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFBYyxpREFBQTtFQUNkLFdBQUE7RUFBYSxpRkFBQTtFQUNiLHFCQUFBO0VBRUEsV0FBQTtFQUFhLDJIQUFBO0VBQ2IsZ0JBQUE7QUNoQkY7QURvQkE7RUFDRSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtBQ2pCRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3F1b3RlL2J1ZGdldHMvYnVkZ2V0LnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBPdXRwdXRzIHRoZSBgb3ZlcmZsb3ctd3JhcGAgcHJvcGVydHkgYW5kIGl0cyBsZWdhY3kgbmFtZSBgd29yZC13cmFwYCB0b1xuLy8vIHN1cHBvcnQgYnJvd3NlcnMgdGhhdCBkbyBub3QgeWV0IHVzZSBgb3ZlcmZsb3ctd3JhcGAuXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBBY2NlcHRlZCBDU1MgdmFsdWVzIGFyZSBgbm9ybWFsYCwgYGJyZWFrLXdvcmRgLCBgaW5oZXJpdGAsIGBpbml0aWFsYCxcbi8vLyAgIG9yIGB1bnNldGAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIG92ZXJmbG93LXdyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9wcm9wZXJ0aWVzLWFscGhhYmV0aWNhbC1vcmRlciAqL1xuXG5AbWl4aW4gb3ZlcmZsb3ctd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCBcIi4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2NvcmUvYm91cmJvblwiO1xyXG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9jb3JlL25lYXRcIjtcclxuXHJcbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGZha2Uge1xyXG4gIGZyb20ge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcblxyXG4gIHRvIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcblxyXG5ib2R5IHtcclxuICBhbmltYXRpb246IGZha2UgMXMgaW5maW5pdGU7XHJcbn1cclxuXHJcbi53b3Jrby10YWJzIHtcclxuICBtYXJnaW46IDAgMTVweCAtMzBweCAwIDtcclxuICB3aWR0aDogOTglO1xyXG5cclxuICAuc3RhdGUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogLTEwMDAwcHg7XHJcbiAgfVxyXG5cclxuICAuZmxleC10YWJzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbiAgICAudGFiIHtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBtYXgtaGVpZ2h0OiA0MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5wYW5lbCB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGFiIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICAgIGN1cnNvcjogaGFuZDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNjY2M7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4jdGFiLW9uZTpjaGVja2Vkfi50YWJzICN0YWItb25lLWxhYmVsLFxyXG4jdGFiLXR3bzpjaGVja2Vkfi50YWJzICN0YWItdHdvLWxhYmVsLFxyXG4jdGFiLXRocmVlOmNoZWNrZWR+LnRhYnMgI3RhYi10aHJlZS1sYWJlbCxcclxuI3RhYi1mb3VyOmNoZWNrZWR+LnRhYnMgI3RhYi1mb3VyLWxhYmVsIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBib3JkZXItbGVmdC1jb2xvcjogIzFhYjM5NDtcclxufVxyXG5cclxuI3RhYi1vbmU6Y2hlY2tlZH4udGFicyAjdGFiLW9uZS1wYW5lbCxcclxuI3RhYi10d286Y2hlY2tlZH4udGFicyAjdGFiLXR3by1wYW5lbCxcclxuI3RhYi10aHJlZTpjaGVja2Vkfi50YWJzICN0YWItdGhyZWUtcGFuZWwsXHJcbiN0YWItZm91cjpjaGVja2Vkfi50YWJzICN0YWItZm91ci1wYW5lbCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gIC5mbGV4LXRhYnMge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAudGFiIHtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XHJcblxyXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICN0YWItb25lLWxhYmVsIHtcclxuICAgICAgb3JkZXI6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgI3RhYi10d28tbGFiZWwge1xyXG4gICAgICBvcmRlcjogMztcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLXRocmVlLWxhYmVsIHtcclxuICAgICAgb3JkZXI6IDU7XHJcbiAgICB9XHJcblxyXG4gICAgI3RhYi1mb3VyLWxhYmVsIHtcclxuICAgICAgb3JkZXI6IDc7XHJcbiAgICB9XHJcblxyXG4gICAgI3RhYi1vbmUtcGFuZWwge1xyXG4gICAgICBvcmRlcjogMjtcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLXR3by1wYW5lbCB7XHJcbiAgICAgIG9yZGVyOiA0O1xyXG4gICAgfVxyXG5cclxuICAgICN0YWItdGhyZWUtcGFuZWwge1xyXG4gICAgICBvcmRlcjogNjtcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLWZvdXItcGFuZWwge1xyXG4gICAgICBvcmRlcjogODtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICN0YWItb25lOmNoZWNrZWR+LnRhYnMgI3RhYi1vbmUtbGFiZWwsXHJcbiAgI3RhYi10d286Y2hlY2tlZH4udGFicyAjdGFiLXR3by1sYWJlbCxcclxuICAjdGFiLXRocmVlOmNoZWNrZWR+LnRhYnMgI3RhYi10aHJlZS1sYWJlbCxcclxuICAjdGFiLWZvdXI6Y2hlY2tlZH4udGFicyAjdGFiLWZvdXItbGFiZWwge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICB9XHJcblxyXG4gICN0YWItb25lOmNoZWNrZWR+LnRhYnMgI3RhYi1vbmUtcGFuZWwsXHJcbiAgI3RhYi10d286Y2hlY2tlZH4udGFicyAjdGFiLXR3by1wYW5lbCxcclxuICAjdGFiLXRocmVlOmNoZWNrZWR+LnRhYnMgI3RhYi10aHJlZS1wYW5lbCxcclxuICAjdGFiLWZvdXI6Y2hlY2tlZH4udGFicyAjdGFiLWZvdXItcGFuZWwge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XHJcbiAgfVxyXG59XHJcblxyXG4udGFibGUtaGVhZGVyLXJvdGF0ZWQgdGgucm93LWhlYWRlcntcclxuICB3aWR0aDogYXV0bztcclxufVxyXG5cclxuLnRhYmxlLWhlYWRlci1yb3RhdGVkIHRke1xyXG4gIHdpZHRoOiA0MHB4O1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkZGRkO1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZGRkZDtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkZGRkO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgLy90ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi50YWJsZS1oZWFkZXItcm90YXRlZCB0aC5yb3RhdGUtNDV7XHJcbiAgaGVpZ2h0OiAxMDBweDtcclxuICB3aWR0aDogNDBweDtcclxuICBtaW4td2lkdGg6IDQwcHg7XHJcbiAgbWF4LXdpZHRoOiA0MHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAwLjk7XHJcbn1cclxuXHJcbi50YWJsZS1oZWFkZXItcm90YXRlZCB0aC5yb3RhdGUtNDUgPiBkaXZ7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHRvcDogMHB4O1xyXG4gIGxlZnQ6IDhweDsgLyogODAgKiB0YW4oNDUpIC8gMiA9IDQwIHdoZXJlIDgwIGlzIHRoZSBoZWlnaHQgb24gdGhlIGNlbGwgYW5kIDQ1IGlzIHRoZSB0cmFuc2Zvcm0gYW5nbGUqL1xyXG4gIGhlaWdodDogMTAwJTtcclxuICAtbXMtdHJhbnNmb3JtOnNrZXcoLTkwZGVnLDBkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOnNrZXcoLTkwZGVnLDBkZWcpO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOnNrZXcoLTkwZGVnLDBkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTpza2V3KC05MGRlZywwZGVnKTtcclxuICB0cmFuc2Zvcm06c2tldygtMTBkZWcsMGRlZyk7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZGRkZGQ7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZGRkZDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZGRkZDtcclxufVxyXG5cclxuLnRhYmxlLWhlYWRlci1yb3RhdGVkIHRoLnJvdGF0ZS00NSBzcGFuIHtcclxuICAtbXMtdHJhbnNmb3JtOnNrZXcoOTBkZWcsMGRlZykgcm90YXRlKDI3MGRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06c2tldyg5MGRlZywwZGVnKSByb3RhdGUoMjcwZGVnKTtcclxuICAtd2Via2l0LXRyYW5zZm9ybTpza2V3KDkwZGVnLDBkZWcpIHJvdGF0ZSgyNzBkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTpza2V3KDkwZGVnLDBkZWcpIHJvdGF0ZSgyNzBkZWcpO1xyXG4gIHRyYW5zZm9ybTpza2V3KDEwZGVnLDBkZWcpIHJvdGF0ZSgyODBkZWcpO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDQwcHg7IC8qIDQwIGNvcyg0NSkgPSAyOCB3aXRoIGFuIGFkZGl0aW9uYWwgMnB4IG1hcmdpbiovXHJcbiAgbGVmdDogLTI1cHg7IC8qQmVjYXVzZSBpdCBsb29rZWQgZ29vZCwgYnV0IHRoZXJlIGlzIHByb2JhYmx5IGEgbWF0aGVtYXRpY2FsIGxpbmsgaGVyZSBhcyB3ZWxsKi9cclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgLy8gd2lkdGg6IDEwMCU7XHJcbiAgd2lkdGg6IDg1cHg7IC8qIDgwIC8gY29zKDQ1KSAtIDQwIGNvcyAoNDUpID0gODUgd2hlcmUgODAgaXMgdGhlIGhlaWdodCBvZiB0aGUgY2VsbCwgNDAgdGhlIHdpZHRoIG9mIHRoZSBjZWxsIGFuZCA0NSB0aGUgdHJhbnNmb3JtIGFuZ2xlKi9cclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIC8vIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qd2hldGhlciB0byBkaXNwbGF5IGluIG9uZSBsaW5lIG9yIG5vdCovXHJcbn1cclxuXHJcbi5zY3JvbGxIIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn0iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBvcmRlci9wcm9wZXJ0aWVzLWFscGhhYmV0aWNhbC1vcmRlciAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuXG5Aa2V5ZnJhbWVzIGZha2Uge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5ib2R5IHtcbiAgYW5pbWF0aW9uOiBmYWtlIDFzIGluZmluaXRlO1xufVxuXG4ud29ya28tdGFicyB7XG4gIG1hcmdpbjogMCAxNXB4IC0zMHB4IDA7XG4gIHdpZHRoOiA5OCU7XG59XG4ud29ya28tdGFicyAuc3RhdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xMDAwMHB4O1xufVxuLndvcmtvLXRhYnMgLmZsZXgtdGFicyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG59XG4ud29ya28tdGFicyAuZmxleC10YWJzIC50YWIge1xuICBmbGV4LWdyb3c6IDE7XG4gIG1heC1oZWlnaHQ6IDQwcHg7XG59XG4ud29ya28tdGFicyAuZmxleC10YWJzIC5wYW5lbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtYmFzaXM6IGF1dG87XG59XG4ud29ya28tdGFicyAudGFiIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBjdXJzb3I6IGhhbmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2NjYztcbn1cbi53b3Jrby10YWJzIC50YWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4jdGFiLW9uZTpjaGVja2VkIH4gLnRhYnMgI3RhYi1vbmUtbGFiZWwsXG4jdGFiLXR3bzpjaGVja2VkIH4gLnRhYnMgI3RhYi10d28tbGFiZWwsXG4jdGFiLXRocmVlOmNoZWNrZWQgfiAudGFicyAjdGFiLXRocmVlLWxhYmVsLFxuI3RhYi1mb3VyOmNoZWNrZWQgfiAudGFicyAjdGFiLWZvdXItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMWFiMzk0O1xufVxuXG4jdGFiLW9uZTpjaGVja2VkIH4gLnRhYnMgI3RhYi1vbmUtcGFuZWwsXG4jdGFiLXR3bzpjaGVja2VkIH4gLnRhYnMgI3RhYi10d28tcGFuZWwsXG4jdGFiLXRocmVlOmNoZWNrZWQgfiAudGFicyAjdGFiLXRocmVlLXBhbmVsLFxuI3RhYi1mb3VyOmNoZWNrZWQgfiAudGFicyAjdGFiLWZvdXItcGFuZWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5mbGV4LXRhYnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLmZsZXgtdGFicyAudGFiIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICB9XG4gIC5mbGV4LXRhYnMgLnRhYjpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLW9uZS1sYWJlbCB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLXR3by1sYWJlbCB7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLXRocmVlLWxhYmVsIHtcbiAgICBvcmRlcjogNTtcbiAgfVxuICAuZmxleC10YWJzICN0YWItZm91ci1sYWJlbCB7XG4gICAgb3JkZXI6IDc7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLW9uZS1wYW5lbCB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLXR3by1wYW5lbCB7XG4gICAgb3JkZXI6IDQ7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLXRocmVlLXBhbmVsIHtcbiAgICBvcmRlcjogNjtcbiAgfVxuICAuZmxleC10YWJzICN0YWItZm91ci1wYW5lbCB7XG4gICAgb3JkZXI6IDg7XG4gIH1cblxuICAjdGFiLW9uZTpjaGVja2VkIH4gLnRhYnMgI3RhYi1vbmUtbGFiZWwsXG4jdGFiLXR3bzpjaGVja2VkIH4gLnRhYnMgI3RhYi10d28tbGFiZWwsXG4jdGFiLXRocmVlOmNoZWNrZWQgfiAudGFicyAjdGFiLXRocmVlLWxhYmVsLFxuI3RhYi1mb3VyOmNoZWNrZWQgfiAudGFicyAjdGFiLWZvdXItbGFiZWwge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cblxuICAjdGFiLW9uZTpjaGVja2VkIH4gLnRhYnMgI3RhYi1vbmUtcGFuZWwsXG4jdGFiLXR3bzpjaGVja2VkIH4gLnRhYnMgI3RhYi10d28tcGFuZWwsXG4jdGFiLXRocmVlOmNoZWNrZWQgfiAudGFicyAjdGFiLXRocmVlLXBhbmVsLFxuI3RhYi1mb3VyOmNoZWNrZWQgfiAudGFicyAjdGFiLWZvdXItcGFuZWwge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICB9XG59XG4udGFibGUtaGVhZGVyLXJvdGF0ZWQgdGgucm93LWhlYWRlciB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4udGFibGUtaGVhZGVyLXJvdGF0ZWQgdGQge1xuICB3aWR0aDogNDBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZGRkZDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZGRkZDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnRhYmxlLWhlYWRlci1yb3RhdGVkIHRoLnJvdGF0ZS00NSB7XG4gIGhlaWdodDogMTAwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICBtaW4td2lkdGg6IDQwcHg7XG4gIG1heC13aWR0aDogNDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAwLjk7XG59XG5cbi50YWJsZS1oZWFkZXItcm90YXRlZCB0aC5yb3RhdGUtNDUgPiBkaXYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiA4cHg7XG4gIC8qIDgwICogdGFuKDQ1KSAvIDIgPSA0MCB3aGVyZSA4MCBpcyB0aGUgaGVpZ2h0IG9uIHRoZSBjZWxsIGFuZCA0NSBpcyB0aGUgdHJhbnNmb3JtIGFuZ2xlKi9cbiAgaGVpZ2h0OiAxMDAlO1xuICAtbXMtdHJhbnNmb3JtOiBza2V3KC05MGRlZywgMGRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiBza2V3KC05MGRlZywgMGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3KC05MGRlZywgMGRlZyk7XG4gIC1vLXRyYW5zZm9ybTogc2tldygtOTBkZWcsIDBkZWcpO1xuICB0cmFuc2Zvcm06IHNrZXcoLTEwZGVnLCAwZGVnKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkZGRkO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkZGRkO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZGRkZDtcbn1cblxuLnRhYmxlLWhlYWRlci1yb3RhdGVkIHRoLnJvdGF0ZS00NSBzcGFuIHtcbiAgLW1zLXRyYW5zZm9ybTogc2tldyg5MGRlZywgMGRlZykgcm90YXRlKDI3MGRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiBza2V3KDkwZGVnLCAwZGVnKSByb3RhdGUoMjcwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXcoOTBkZWcsIDBkZWcpIHJvdGF0ZSgyNzBkZWcpO1xuICAtby10cmFuc2Zvcm06IHNrZXcoOTBkZWcsIDBkZWcpIHJvdGF0ZSgyNzBkZWcpO1xuICB0cmFuc2Zvcm06IHNrZXcoMTBkZWcsIDBkZWcpIHJvdGF0ZSgyODBkZWcpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNDBweDtcbiAgLyogNDAgY29zKDQ1KSA9IDI4IHdpdGggYW4gYWRkaXRpb25hbCAycHggbWFyZ2luKi9cbiAgbGVmdDogLTI1cHg7XG4gIC8qQmVjYXVzZSBpdCBsb29rZWQgZ29vZCwgYnV0IHRoZXJlIGlzIHByb2JhYmx5IGEgbWF0aGVtYXRpY2FsIGxpbmsgaGVyZSBhcyB3ZWxsKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogODVweDtcbiAgLyogODAgLyBjb3MoNDUpIC0gNDAgY29zICg0NSkgPSA4NSB3aGVyZSA4MCBpcyB0aGUgaGVpZ2h0IG9mIHRoZSBjZWxsLCA0MCB0aGUgd2lkdGggb2YgdGhlIGNlbGwgYW5kIDQ1IHRoZSB0cmFuc2Zvcm0gYW5nbGUqL1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uc2Nyb2xsSCB7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufSJdfQ== */\"","import { Component, OnDestroy, OnInit, ViewChild, EventEmitter } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ISlimScrollOptions, SlimScrollEvent } from 'ngx-slimscroll';\r\nimport { Observable } from 'rxjs';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { OpeningService } from '../../opening/opening.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { CustomerService } from '../customer.service';\r\nimport { BudgetService } from '../budget.service';\r\nimport { IDtoBudgetList } from 'app/shared/models/quote/dto-budget-list.model';\r\nimport { IUser } from 'app/shared/models/user.model';\r\nimport { IDtoBudgetFilter } from 'app/shared/models/quote/budget-filter.model';\r\nimport { IDtoCustomer } from 'app/shared/models/customer/dto-customer.model';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalDuplicateBudgetComponet } from 'app/views/modales/budget/duplicate/modal-duplicate.component';\r\nimport { ModalBudgetVersionsComponet } from 'app/views/modales/budget/versions/modal-versions.component';\r\nimport { StorageService } from 'app/shared/services/storage.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\n\r\n@Component({\r\n selector: 'app-list-budgets',\r\n styleUrls: ['./list-budgets.style.scss'],\r\n templateUrl: './list-budgets.template.html'\r\n})\r\nexport class ListBudgetsComponent implements OnDestroy, OnInit {\r\n /**Formularios */\r\n private formFilter: FormGroup;\r\n /**Catalogos */\r\n private catalogCustomers: Observable;\r\n private catalogProjectCustomers: Observable;\r\n /**Variables */\r\n private now: number;\r\n private town: string;\r\n private state: string;\r\n private staffType: string;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableBudgets: DatatableComponent;\r\n /**Slim-control */\r\n optsSlim: ISlimScrollOptions;\r\n scrollEvents: EventEmitter;\r\n private profile: string;\r\n private user: IUser;\r\n private budgetsList: IDtoBudgetList[];\r\n private budgetsListTemp: IDtoBudgetList[];\r\n private budget: IDtoBudgetList;\r\n private budgetDuration: number;\r\n private search: string;\r\n @ViewChild('swalDuplicate', { static: false }) private swalDuplicate: SwalComponent;\r\n @ViewChild('swalDelete', { static: false }) private swalDelete: SwalComponent;\r\n public constructor(private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private openingService: OpeningService\r\n , private budgetService: BudgetService\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private customerService: CustomerService\r\n , private modalService: BsModalService\r\n , private storageService: StorageService\r\n , private identityService: IdentityService) {\r\n this.profile = this.securityService.getProfileStorage('Budgets');\r\n this.user = this.securityService.getUserDataStorage();\r\n this.optsSlim = configGeneral.getConfigSlimScroll();\r\n this.initializeFormFilter();\r\n }\r\n ngOnInit(): void {\r\n this.scrollEvents = new EventEmitter();\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n //this.spinner.show();\r\n this.getCatalogs();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n //this.spinner.show();\r\n this.getCatalogs();\r\n });\r\n }\r\n this.initFilters();\r\n }\r\n ngOnDestroy(): void {\r\n }\r\n private initFilters(): void {\r\n const customer = this.storageService.retrieve('budgets.customer');\r\n const staffType = this.storageService.retrieve('budgets.staffType');\r\n if (customer != null) {\r\n this.formFilter.get('customerId').patchValue(+customer);\r\n let dto = { id: customer, additional: staffType } as IDtoCatalog;\r\n this.changeCustomer(dto);\r\n }\r\n const project = this.storageService.retrieve('budgets.project');\r\n if (project != null) {\r\n this.formFilter.get('projectCustomerId').patchValue(+project);\r\n }\r\n const search = this.storageService.retrieve('budgets.search');\r\n if (search != undefined) {\r\n this.search = search;\r\n }\r\n if (customer != null || project != null) {\r\n this.getBudgetsByFilter();\r\n }\r\n }\r\n private initializeFormFilter() {\r\n this.formFilter = this.formBuilder.group({\r\n projectCustomerId: [null],\r\n customerId: [null]\r\n });\r\n }\r\n private changeCustomer(dto: IDtoCatalog): void {\r\n if (dto == undefined) {\r\n return;\r\n }\r\n this.staffType = dto.additional;\r\n this.catalogProjectCustomers = null;\r\n this.formFilter.get('projectCustomerId').setValue(null);\r\n if (dto === undefined) {\r\n return;\r\n }\r\n switch (this.profile) {\r\n case 'Ejecutivo':\r\n this.catalogProjectCustomers = this.budgetService.getCatalogProjectsByCustomerIdAndEjecutive(dto.id, this.user.userId);\r\n break;\r\n case 'Cliente':\r\n this.catalogProjectCustomers = this.budgetService.getCatalogProjectsByCustomerIdAndApprover(dto.id, this.user.userId);\r\n break;\r\n default:\r\n this.catalogProjectCustomers = this.budgetService.getCatalogProjectCustomersByCustomerId(dto.id);\r\n break;\r\n }\r\n }\r\n private handleRefusal(dismissMethod: string): void {\r\n }\r\n private confirmDuplicateBudget(row: IDtoBudgetList, duration: number): void {\r\n this.budgetDuration = +duration;\r\n this.budget = row;\r\n this.swalDuplicate.title = '¿Seguro que desea duplicar el presupuesto seleccionado?';\r\n this.swalDuplicate.show();\r\n }\r\n // private duplicateBudget(): void {\r\n // this.budgetService.duplicateBudget(this.budget).subscribe(x => {\r\n // if (x.isCorrect) {\r\n // this.configGeneral.newToast('Éxito', x.message, 'success');\r\n // this.getBudgetsByFilter();\r\n // } else {\r\n // this.configGeneral.newToast('Error', x.message, 'error');\r\n // }\r\n\r\n // })\r\n // }\r\n private confirmDeleteBudget(row: IDtoBudgetList): void {\r\n this.budget = row;\r\n this.swalDelete.title = '¿Seguro que desea eliminar el presupuesto seleccionado?';\r\n this.swalDelete.show();\r\n }\r\n private deleteBudget(): void {\r\n this.budgetService.deleteBudget(this.budget.id).subscribe(x => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.getBudgetsByFilter();\r\n this.addModuleLog(this.budget.id, 'delete');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n\r\n })\r\n }\r\n private navigateTo(row: IDtoBudgetList): void {\r\n const values = this.formFilter.getRawValue() as IDtoBudgetFilter;\r\n this.storageService.store('budgets.customer', values.customerId);\r\n this.storageService.store('budgets.project', values.projectCustomerId);\r\n this.storageService.store('budgets.search', this.search);\r\n this.storageService.store('budgets.staffType', this.staffType)\r\n this.router.navigate(['/budgets/create',\r\n { id: row.id, action: 'update' }], { relativeTo: this.route });\r\n }\r\n private getCatalogs(): void {\r\n if (this.profile == 'Ejecutivo') {\r\n this.catalogCustomers = this.customerService.getCatalogCustomersByExecutive(this.user.userId);\r\n } else {\r\n this.catalogCustomers = this.customerService.getCatalogCustomers();\r\n this.catalogCustomers.subscribe(res => {\r\n if (this.profile == 'Cliente') {\r\n this.customerService.getCustomerByApproverUserId(this.user.userId).subscribe(x => {\r\n if (x.isCorrect) {\r\n const cust = x.data as IDtoCustomer;\r\n this.formFilter.get('customerId').setValue(cust.id);\r\n this.formFilter.get('customerId').disable();\r\n let dto = {} as IDtoCatalog;\r\n dto.id = cust.id;\r\n dto.name = cust.name;\r\n this.changeCustomer(dto);\r\n } else {\r\n this.configGeneral.newToast('Restricción', x.message, 'error');\r\n this.formFilter.get('customerId').disable();\r\n }\r\n })\r\n }\r\n })\r\n }\r\n }\r\n private getBudgetsByFilter(): void {\r\n const values = this.formFilter.getRawValue() as IDtoBudgetFilter;\r\n if (this.profile == 'Cliente') {\r\n if (values.customerId == null || values.projectCustomerId == null) {\r\n this.configGeneral.newToast('Validación', 'Debe seleccional un cliente y proyecto', 'warning');\r\n return;\r\n }\r\n }\r\n if (this.profile == 'Ejecutivo' || this.profile == 'Facturacion') {\r\n if (values.customerId == null) {\r\n this.configGeneral.newToast('Validación', 'Debe seleccional un cliente', 'warning');\r\n return;\r\n }\r\n }\r\n values.profile = this.profile;\r\n values.userId = this.user.userId;\r\n this.budgetService.getBudgetsByFilter(values).subscribe((res) => {\r\n this.budgetsList = res.data as IDtoBudgetList[];\r\n this.budgetsListTemp = this.budgetsList;\r\n this.spinner.hide();\r\n if (this.search != undefined) {\r\n this.updateFilter();\r\n }\r\n });\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n\r\n const val = this.search.toLowerCase();\r\n const temp = this.budgetsListTemp.filter((x: any) => x.projectCustomerName.toLowerCase().startsWith(val)\r\n || x.planTrademarkName.toLowerCase().startsWith(val)\r\n || x.statusName.toLowerCase().startsWith(val)\r\n || x.classification.toLowerCase().startsWith(val)\r\n || x.startDate.toLowerCase().startsWith(val)\r\n || x.planTypeName.toLowerCase().startsWith(val)\r\n || x.id.toString().startsWith(val)\r\n || x.version.toString().startsWith(val)\r\n || x.duration.toString().startsWith(val)\r\n || x.comments.toLowerCase().indexOf(val) !== -1 || !val);\r\n\r\n this.budgetsList = temp;\r\n this.tableBudgets.offset = 0;\r\n }\r\n private openModalDuplicate(row: IDtoBudgetList) {\r\n this.budget = row;\r\n const initialState = {\r\n title: `Duplicar presupuesto número ${row.id}`,\r\n budget: this.budget\r\n };\r\n this.modalRef = this.modalService.show(ModalDuplicateBudgetComponet\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.getBudgetsByFilter();\r\n } else {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private getBudgetVersions(row: IDtoBudgetList): void {\r\n this.spinner.show();\r\n this.budgetService.getBudgetVersions(row.id).subscribe(x => {\r\n let list = x.data as IDtoBudgetList[];\r\n this.spinner.hide();\r\n if (list.length == 0) {\r\n this.configGeneral.newToast('Error', 'No existen versiones asociadas a este presupuesto', 'warning');\r\n } else {\r\n this.openModalVersions(list, row);\r\n }\r\n });\r\n }\r\n private openModalVersions(list: IDtoBudgetList[], row: IDtoBudgetList) {\r\n const initialState = {\r\n title: `Versiones del presupuesto ${row.id}`,\r\n budgetsList: list\r\n };\r\n this.modalService.show(ModalBudgetVersionsComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configGeneral.configModal));\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Budgets';\r\n dto.module = 'budgets';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".scroll-window {\\n width: 100%;\\n height: 320px;\\n font-size: 13px;\\n padding: 10px 20px 10px 0;\\n font-size: 15px;\\n line-height: 20px;\\n color: #000;\\n}\\n\\n.form-group {\\n font-weight: 500;\\n font-size: 12px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcXVvdGUvYnVkZ2V0cy9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHF1b3RlXFxidWRnZXRzXFxsaXN0LWJ1ZGdldHMuc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcXVvdGUvYnVkZ2V0cy9saXN0LWJ1ZGdldHMuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFdBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsV0FBQTtBQ0NKOztBRENFO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0FDRUoiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9xdW90ZS9idWRnZXRzL2xpc3QtYnVkZ2V0cy5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNjcm9sbC13aW5kb3cge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDMyMHB4O1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgcGFkZGluZzogMTBweCAyMHB4IDEwcHggMDtcclxuICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gICAgY29sb3I6ICMwMDA7XHJcbiAgfVxyXG4gIC5mb3JtLWdyb3VwIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgfSIsIi5zY3JvbGwtd2luZG93IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzIwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogMTBweCAyMHB4IDEwcHggMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi5mb3JtLWdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoCustomerCommission } from 'app/shared/models/position/dto-customer-commission.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { ModalCustomerCommissionComponent } from 'app/views/modales/position/customer-commission/modal-customer-commission.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable } from 'rxjs';\r\nimport { CustomerService } from '../customer.service';\r\nimport { PositionService } from '../position.service';\r\n\r\n@Component({\r\n selector: 'app-customer-commissions',\r\n templateUrl: './customer-commissions.template.html',\r\n styleUrls: ['./customer-commissions.style.scss']\r\n})\r\nexport class CustomerCommissionsComponent implements OnInit {\r\n private search: string;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Validadores */\r\n private errorMessages: any;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Variables */\r\n private now: number;\r\n private customerId: number;\r\n /**Listas */\r\n private customerCommissions = new Array() as IDtoCustomerCommission[];\r\n private customerCommissionsTemp = new Array() as IDtoCustomerCommission[];\r\n /**Catalogos */\r\n private catalogCustomers: Observable;\r\n public constructor(private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private modalService: BsModalService\r\n , private customerService: CustomerService\r\n , private positionService: PositionService\r\n , private configGeneral: AppConfig) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n this.catalogCustomers = this.customerService.getCatalogCustomers();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.catalogCustomers = this.customerService.getCatalogCustomers();\r\n });\r\n }\r\n }\r\n\r\n private getCustomerCommissions(dto: IDtoCatalog): void {\r\n if (dto == null) {\r\n return;\r\n }\r\n this.spinner.show()\r\n this.positionService.getCustomerCommissionsByCustumerId(dto.id)\r\n .subscribe(\r\n (x) => {\r\n this.customerCommissions = x.data as IDtoCustomerCommission[];\r\n this.customerCommissionsTemp = x.data as IDtoCustomerCommission[];\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private openModalCustomerCommission(item: IDtoCustomerCommission, action: string) {\r\n if (this.customerId == null) {\r\n this.configGeneral.newToast('Validación', 'Debe seleccionar primero un cliente para poder dar de alta una comisión', 'warning');\r\n return;\r\n }\r\n if (action === 'add') {\r\n let commissions0 = this.customerCommissionsTemp.filter(c => c.classification == 0);\r\n let commissions1 = this.customerCommissionsTemp.filter(c => c.classification == 1);\r\n if (commissions0.length == 7) {\r\n this.configGeneral.newToast('Validación', 'No es posible agregar mas de 7 comisiones FIJAS por cliente', 'warning');\r\n return;\r\n }\r\n if (commissions1.length == 7) {\r\n this.configGeneral.newToast('Validación', 'No es posible agregar mas de 7 comisiones VARIABLES por cliente', 'warning');\r\n return;\r\n }\r\n }\r\n const initialState = {\r\n customerId: this.customerId,\r\n customerCommission: item,\r\n title: action == 'edit' ? `Edición de comisión ${item.name}` : `Nueva comisión`,\r\n action: action\r\n };\r\n this.modalRef = this.modalService.show(ModalCustomerCommissionComponent\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n let dto = {} as IDtoCatalog;\r\n dto.id = this.customerId;\r\n this.getCustomerCommissions(dto);\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n const val = this.search.toLowerCase();\r\n const temp = this.customerCommissionsTemp.filter((x: any) => x.name.toLowerCase().startsWith(val)\r\n || x.description.toLowerCase().startsWith(val));\r\n\r\n this.customerCommissions = temp;\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3F1b3RlL2N1c3RvbWVyLWNvbW1pc3Npb25zL2N1c3RvbWVyLWNvbW1pc3Npb25zLnN0eWxlLnNjc3MifQ== */\"","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoCustomer } from 'app/shared/models/customer/dto-customer.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoProject } from 'app/shared/models/customer/dto-project.model';\r\nimport { IDtoPlan } from 'app/shared/models/customer/dto-plan.model';\r\nimport { IDtoProduct } from 'app/shared/models/position/dto-product.model';\r\n\r\n@Injectable()\r\nexport class CustomerService {\r\n private quoteUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n });\r\n }\r\n }\r\n public getCustomers(): Observable {\r\n const url = `${this.quoteUrl}api/Customers/getCustomers`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateCustomer(dto: IDtoCustomer): Observable {\r\n const url = `${this.quoteUrl}api/Customers/updateCustomer`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addCustomer(dto: IDtoCustomer): Observable {\r\n const url =`${this.quoteUrl}api/Customers/addCustomer`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getProyectsByCustomer(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/ProjectCustomers/getProyectsByCustomer?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogCustomers(): Observable {\r\n const url = `${this.quoteUrl}api/Customers/getCatalogCustomers`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogCustomersWithCodeNomPayCompany(): Observable {\r\n const url = `${this.quoteUrl}api/Customers/getCatalogCustomersWithCodeNomPayCompany`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogCustomersByExecutive(userId: string): Observable {\r\n const url = `${this.quoteUrl}api/Customers/getCatalogCustomersByExecutive?userId=${userId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCustomerById(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/Customers/getCustomerById?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateProject(dto: IDtoProject): Observable {\r\n const url = `${this.quoteUrl}api/ProjectCustomers/updateProject`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addProject(dto: IDtoProject): Observable {\r\n const url =`${this.quoteUrl}api/ProjectCustomers/addProject`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogCategories(): Observable {\r\n const url = `${this.quoteUrl}api/Categories/getCatalogCategories`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updatePlan(dto: IDtoPlan): Observable {\r\n const url = `${this.quoteUrl}api/PlanTrademarks/updatePlan`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addPlan(dto: IDtoPlan): Observable {\r\n const url =`${this.quoteUrl}api/PlanTrademarks/addPlan`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogAccountExecutives(): Observable {\r\n const url = `${this.quoteUrl}api/AccountExecutives/getCatalogAccountExecutives`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogApprovers(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/Approvers/getCatalogApprovers?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCustomerByApproverUserId(userId: string): Observable {\r\n const url = `${this.quoteUrl}api/Customers/getCustomerByApproverUserId?userId=${userId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogApproversByProjectCustomer(projectCustomerId: number): Observable {\r\n const url = `${this.quoteUrl}api/Approvers/getCatalogApproversByProjectCustomer?projectCustomerId=${projectCustomerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogProjectsByCustomerId(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/ProjectCustomers/getCatalogProjectsByCustomerId?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPayrollApprovers(projectCustomerId: number): Observable {\r\n const url = `${this.quoteUrl}api/PayrollApprovers/getCatalogPayrollApprovers?projectCustomerId=${projectCustomerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { CustomerService } from '../customer.service';\r\nimport { IDtoCustomer } from 'app/shared/models/customer/dto-customer.model';\r\nimport { ModalCustomerComponet } from 'app/views/modales/customer/modal-customer.component';\r\nimport { ModalEmployerRegisterComponet } from 'app/views/modales/organization/employer-register/modal-employer-register.component';\r\n\r\n@Component({\r\n selector: 'app-customers',\r\n styleUrls: ['./customers.style.scss'],\r\n templateUrl: 'customers.template.html'\r\n})\r\nexport class CustomersComponent implements OnInit {\r\n private search: string;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Validadores */\r\n private errorMessages: any;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Variables */\r\n private now: number;\r\n /**Listas */\r\n private customers = new Array() as IDtoCustomer[];\r\n private customersTemp = new Array() as IDtoCustomer[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableCustomers: DatatableComponent;\r\n public constructor(private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private modalService: BsModalService\r\n , private customerService: CustomerService\r\n , private configGeneral: AppConfig) {\r\n }\r\n ngOnInit(): void {\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getCustomers()\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getCustomers()\r\n });\r\n }\r\n }\r\n private getCustomers(): void {\r\n this.customerService.getCustomers()\r\n .subscribe(\r\n (x) => {\r\n this.customers = x.data as IDtoCustomer[];\r\n this.customersTemp = x.data as IDtoCustomer[];\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n\r\n private openModalCustomer(item: IDtoCustomer, action: string) {\r\n const initialState = {\r\n customer: item,\r\n title: action == 'edit' ? `Edición del cliente ${item.shortName}` : `Nuevo cliente`,\r\n action: action\r\n };\r\n this.modalRef = this.modalService.show(ModalCustomerComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.getCustomers();\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n const val = this.search.toLowerCase();\r\n const temp = this.customersTemp.filter((x: any) => x.name.toLowerCase().startsWith(val)\r\n || x.shortName.toLowerCase().startsWith(val)\r\n || x.codeNom.toLowerCase().startsWith(val));\r\n\r\n this.customers = temp;\r\n this.tableCustomers.offset = 0;\r\n }\r\n private openModalEmployerRegister(item: IDtoCustomer) {\r\n const initialState = {\r\n customerId: item.id\r\n };\r\n this.modalService.show(ModalEmployerRegisterComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3F1b3RlL2N1c3RvbWVycy9jdXN0b21lcnMuc3R5bGUuc2NzcyJ9 */\"","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { DatatableComponent, SelectionType } from '@swimlane/ngx-datatable';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoNote } from 'app/shared/models/quote/note.model';\r\nimport { BudgetService } from '../budget.service';\r\n\r\n@Component({\r\n selector: 'app-notes',\r\n styleUrls: ['./notes.style.scss'],\r\n templateUrl: 'notes.template.html'\r\n})\r\nexport class NotesComponent implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formNote: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Variables */\r\n private now: number;\r\n SelectionType = SelectionType;\r\n /**Listas */\r\n private notes = new Array() as IDtoNote[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableNotes: DatatableComponent;\r\n public constructor(private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private budgetService: BudgetService) {\r\n this.initializeFormNote();\r\n this.configToast = this.configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getNotes();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getNotes();\r\n });\r\n }\r\n }\r\n private initializeFormNote() {\r\n this.formNote = this.formBuilder.group({\r\n name: [null, Validators.required],\r\n description: [null, Validators.required],\r\n isDefault: [null, Validators.required]\r\n });\r\n }\r\n private getNotes(): void {\r\n this.budgetService.getNotes()\r\n .subscribe(\r\n (x) => {\r\n this.notes = x.data as IDtoNote[];\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private save(): void {\r\n if (!this.formNote.valid) {\r\n this.snotifyService.error('Ingrese los datos requeridos'\r\n , 'Error', this.configToast);\r\n return;\r\n }\r\n let data = this.formNote.value as IDtoNote;\r\n data.isActive = true;\r\n data.isVisible = true;\r\n this.budgetService.addNote(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.formNote.reset();\r\n this.getNotes();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n\r\n private deleteNote(row: IDtoNote): void {\r\n this.budgetService.deleteNote(row.id)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.getNotes();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcXVvdGUvbm90ZXMvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxxdW90ZVxcbm90ZXNcXG5vdGVzLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3F1b3RlL25vdGVzL25vdGVzLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvcXVvdGUvbm90ZXMvbm90ZXMuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbiAgfSIsIi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0iXX0= */\"","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoProduct } from 'app/shared/models/position/dto-product.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoCalculateSalary } from 'app/shared/models/position/dto-calculate-salary.model';\r\nimport { IDtoPosition } from 'app/shared/models/position/dto-position.model';\r\nimport { IDtoCustomerCommission } from 'app/shared/models/position/dto-customer-commission.model';\r\n\r\n@Injectable()\r\nexport class PositionService {\r\n private quoteUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n });\r\n }\r\n }\r\n public getProducts(): Observable {\r\n const url = `${this.quoteUrl}api/Products/getProducts`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogProductJobs(): Observable {\r\n const url = `${this.quoteUrl}api/Products/getCatalogProductJobs`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateProduct(dto: IDtoProduct): Observable {\r\n const url = `${this.quoteUrl}api/Products/updateProduct`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addProduct(dto: IDtoProduct): Observable {\r\n const url =`${this.quoteUrl}api/Products/addProduct`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogProductTypes(): Observable {\r\n const url = `${this.quoteUrl}api/ProductTypes/getCatalogProductTypes`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPositionStatus(): Observable {\r\n const url = `${this.quoteUrl}api/PositionStatus/getCatalogPositionStatus`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPayrollTypes(): Observable {\r\n const url = `${this.quoteUrl}api/PayrollTypes/getCatalogPayrollTypes`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogIsrTypes(): Observable {\r\n const url = `${this.quoteUrl}api/IsrTypes/getCatalogIsrTypes`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogWorkdayTypes(): Observable {\r\n const url = `${this.quoteUrl}api/WorkdayTypes/getCatalogWorkdayTypes`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPaymentForms(): Observable {\r\n const url = `${this.quoteUrl}api/PaymentForms/getCatalogPaymentForms`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPositionTypes(): Observable {\r\n const url = `${this.quoteUrl}api/PositionTypes/getCatalogPositionTypes`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogProductExpenses(): Observable {\r\n const url = `${this.quoteUrl}api/Products/getCatalogProductExpenses`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getClasifications(): Observable {\r\n const url = `${this.quoteUrl}api/Clasifications/getClasifications`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getPaymentConcepts(): Observable {\r\n const url = `${this.quoteUrl}api/PaymentConcepts/getPaymentConcepts`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getMinimumSalary(): Observable {\r\n const url = `${this.quoteUrl}api/MinimumSalaries/getMinimumSalary`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public calculateSalary(dto: IDtoCalculateSalary): Observable {\r\n const url =`${this.quoteUrl}api/PositionCalculations/calculateSalary`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addPosition(dto: IDtoPosition): Observable {\r\n const url =`${this.quoteUrl}api/Positions/addPosition`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updatePosition(dto: IDtoPosition): Observable {\r\n const url =`${this.quoteUrl}api/Positions/updatePosition`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getPositionsByFilter(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/Positions/getPositionsByFilter?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getPosition(positionId: number): Observable {\r\n const url = `${this.quoteUrl}api/Positions/getPosition?positionId=${positionId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public deleteCommission(id: number): Observable {\r\n const url =`${this.quoteUrl}api/Commissions/deleteCommission?id=${id}`;\r\n return this.service.delete(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public deleteVoucher(id: number): Observable {\r\n const url =`${this.quoteUrl}api/Vouchers/deleteVoucher?id=${id}`;\r\n return this.service.delete(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogPositionsByCustomerId(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/Positions/getCatalogPositionsByCustomerId?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getPositionsByCustomerId(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/Positions/getPositionsByCustomerId?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getPositionsByProjectId(projectId: number): Observable {\r\n const url = `${this.quoteUrl}api/Positions/getPositionsByProjectId?projectId=${projectId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updatePositionMasiveByCustomer(dto: IDtoCatalog): Observable {\r\n const url =`${this.quoteUrl}api/Positions/updatePositionMasiveByCustomer`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCustomerCommissionsByCustumerId(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/CustomerCommissions/getCustomerCommissionsByCustumerId?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addCustomerCommission(dto: IDtoCustomerCommission): Observable {\r\n const url =`${this.quoteUrl}api/CustomerCommissions/addCustomerCommission`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateCustomerCommission(dto: IDtoCustomerCommission): Observable {\r\n const url = `${this.quoteUrl}api/CustomerCommissions/updateCustomerCommission`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogFixedCustomerCommissionsByCustomerId(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/CustomerCommissions/getCatalogFixedCustomerCommissionsByCustomerId?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogVariableCustomerCommissionsByCustomerId(customerId: number): Observable {\r\n const url = `${this.quoteUrl}api/CustomerCommissions/getCatalogVariableCustomerCommissionsByCustomerId?customerId=${customerId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updatePositionMasiveByProject(dto: IDtoCatalog): Observable {\r\n const url =`${this.quoteUrl}api/Positions/updatePositionMasiveByProject`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n}","import { Component, OnDestroy, OnInit, ViewChild, EventEmitter } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ISlimScrollOptions, SlimScrollEvent } from 'ngx-slimscroll';\r\nimport { Observable } from 'rxjs';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { PositionService } from '../position.service';\r\nimport { CustomerService } from '../customer.service';\r\nimport { IDtoPositionList } from 'app/shared/models/position/dto-position-list.model';\r\nimport { IUser } from 'app/shared/models/user.model';\r\nimport { StorageService } from 'app/shared/services/storage.service';\r\n\r\n@Component({\r\n selector: 'app-list-positions',\r\n styleUrls: ['./list-positions.style.scss'],\r\n templateUrl: './list-positions.template.html'\r\n})\r\nexport class ListPositionsComponent implements OnDestroy, OnInit {\r\n /**Formularios */\r\n private formFilter: FormGroup;\r\n /**Catalogos */\r\n private catalogPositionStatus: Observable;\r\n private catalogCustomers: Observable;\r\n /**Variables */\r\n private now: number;\r\n /**Listas */\r\n private requisitions: IDtoRequisition[];\r\n private town: string;\r\n private state: string;\r\n private search: string;\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tablePositions: DatatableComponent;\r\n /**Slim-control */\r\n optsSlim: ISlimScrollOptions;\r\n scrollEvents: EventEmitter;\r\n private profile: string;\r\n private positionList: IDtoPositionList[];\r\n private positionListTemp: IDtoPositionList[];\r\n private user: IUser;\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private positionService: PositionService\r\n , private customerService: CustomerService\r\n , private storageService: StorageService) {\r\n this.user = this.securityService.getUserDataStorage();\r\n this.profile = this.securityService.getProfileStorage('Jobs');\r\n this.optsSlim = configGeneral.getConfigSlimScroll();\r\n this.initializeFormFilter();\r\n }\r\n ngOnInit(): void {\r\n this.scrollEvents = new EventEmitter();\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n //this.spinner.show();\r\n this.getCatalogs();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n //this.spinner.show();\r\n this.getCatalogs();\r\n });\r\n }\r\n this.initFilters();\r\n }\r\n ngOnDestroy(): void {\r\n }\r\n private initFilters(): void {\r\n const customer = this.storageService.retrieve('jobs.customer');\r\n if (customer != null) {\r\n this.formFilter.get('customerId').patchValue(+customer);\r\n }\r\n const search = this.storageService.retrieve('jobs.search');\r\n if (search != undefined) {\r\n this.search = search;\r\n }\r\n if (customer != null) {\r\n this.getPositionsByFilter();\r\n }\r\n }\r\n private initializeFormFilter() {\r\n this.formFilter = this.formBuilder.group({\r\n customerId: [null]\r\n });\r\n }\r\n private navigateTo(row: IDtoPositionList): void {\r\n const customerId = +this.formFilter.value.customerId;\r\n this.storageService.store('jobs.customer', customerId);\r\n this.storageService.store('jobs.search', this.search);\r\n this.router.navigate(['/positions/create',\r\n { id: row.id, action: 'update' }], { relativeTo: this.route });\r\n }\r\n private getCatalogs(): void {\r\n if (this.profile == 'Ejecutivo') {\r\n this.catalogCustomers = this.customerService.getCatalogCustomersByExecutive(this.user.userId);\r\n } else {\r\n this.catalogCustomers = this.customerService.getCatalogCustomers();\r\n }\r\n }\r\n private getPositionsByFilter(): void {\r\n const customerId = +this.formFilter.value.customerId;\r\n if (customerId == 0) {\r\n this.configGeneral.newToast('Validación', 'Seleccione un cliente para poder continuar', 'warning');\r\n return;\r\n }\r\n this.spinner.show();\r\n this.positionService.getPositionsByFilter(customerId).subscribe((res) => {\r\n this.positionList = res.data as IDtoPositionList[];\r\n this.positionListTemp = this.positionList;\r\n if (this.search != undefined) {\r\n this.updateFilter();\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n\r\n const val = this.search.toLowerCase();\r\n const temp = this.positionListTemp.filter((x: any) => x.productName.toLowerCase().startsWith(val)\r\n || x.tradename.toLowerCase().startsWith(val) \r\n || x.customerName.toLowerCase().startsWith(val)\r\n || x.positionStatusName.toLowerCase().startsWith(val)\r\n || x.isrTypedName.toLowerCase().startsWith(val)\r\n || x.codeNom.toLowerCase().startsWith(val));\r\n \r\n this.positionList = temp;\r\n this.tablePositions.offset = 0;\r\n }\r\n}\r\n","module.exports = \".scroll-window {\\n width: 100%;\\n height: 320px;\\n font-size: 13px;\\n padding: 10px 20px 10px 0;\\n font-size: 15px;\\n line-height: 20px;\\n color: #000;\\n}\\n\\n.form-group {\\n font-weight: 500;\\n font-size: 12px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcXVvdGUvcG9zaXRpb25zL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccXVvdGVcXHBvc2l0aW9uc1xcbGlzdC1wb3NpdGlvbnMuc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcXVvdGUvcG9zaXRpb25zL2xpc3QtcG9zaXRpb25zLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxXQUFBO0VBQ0EsYUFBQTtFQUNBLGVBQUE7RUFDQSx5QkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7QUNDSjs7QURDRTtFQUNFLGdCQUFBO0VBQ0EsZUFBQTtBQ0VKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvcXVvdGUvcG9zaXRpb25zL2xpc3QtcG9zaXRpb25zLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2Nyb2xsLXdpbmRvdyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMzIwcHg7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAwO1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICB9XHJcbiAgLmZvcm0tZ3JvdXAge1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICB9IiwiLnNjcm9sbC13aW5kb3cge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMjBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogIzAwMDtcbn1cblxuLmZvcm0tZ3JvdXAge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEycHg7XG59Il19 */\"","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { CustomerService } from '../customer.service';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoCustomer } from 'app/shared/models/customer/dto-customer.model';\r\nimport { IDtoCompany } from 'app/shared/models/organization/dto-company.model';\r\nimport { IDtoCustomerType } from 'app/shared/models/customer/dto-customer-type.model';\r\nimport { PositionService } from '../position.service';\r\nimport { IDtoPaymentConcept } from 'app/shared/models/position/dto-payment-concept.model';\r\nimport { IDtoCalculateSalary } from 'app/shared/models/position/dto-calculate-salary.model';\r\nimport { ModalCommissionComponet } from 'app/views/modales/position/commission/modal-commission.component';\r\nimport { IDtoCommission } from 'app/shared/models/position/dto-commission.model';\r\nimport { ModalVoucherComponet } from 'app/views/modales/position/voucher/modal-voucher.component';\r\nimport { IDtoVoucher } from 'app/shared/models/position/dto-voucher.model';\r\nimport { IDtoPosition } from 'app/shared/models/position/dto-position.model';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { WorkingDayService } from '../working-day.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { ModalMassiveUpdateComponet } from 'app/views/modales/position/massive-update/modal-massive-update.component';\r\n\r\n@Component({\r\n selector: 'app-position',\r\n styleUrls: ['position.style.scss'],\r\n templateUrl: 'position.template.html'\r\n})\r\nexport class PositionComponent implements OnDestroy, OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n\r\n public nav: any;\r\n private customer: IDtoCustomer;\r\n private action = 'add';\r\n private position: IDtoPosition;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n /**Catalogos */\r\n private catalogProductJobs: Observable;\r\n private catalogIsrTypes: Observable;\r\n private catalogPositionStatus: Observable;\r\n private catalogPayrollTypes: Observable;\r\n private catalogPaymentForms: Observable;\r\n private catalogWorkdayTypes: Observable;\r\n private catalogPositionTypes: Observable;\r\n //private catalogWorkingDays: Observable;\r\n private paymentConcepts: IDtoPaymentConcept[];\r\n\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private formPositionCalculation: FormGroup;\r\n private group = {};\r\n private commissions = new Array() as IDtoCommission[];\r\n private vouchers = new Array() as IDtoVoucher[];\r\n private daysFrecuency: number;\r\n\r\n private indexMedium: number;\r\n private monthDays: number = 0;\r\n @ViewChild('addSwal', { static: false }) private addSwal: SwalComponent;\r\n @ViewChild('tab1', { static: false }) private tab1;\r\n public resetCustomerId: Subject = new Subject();\r\n public constructor(private modalService: BsModalService\r\n , private configGeneral: AppConfig\r\n , private formBuilder: FormBuilder\r\n , private customerService: CustomerService\r\n , private positionService: PositionService\r\n , private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private route: ActivatedRoute\r\n , private workingDayService: WorkingDayService\r\n , private identityService: IdentityService) {\r\n this.nav = document.querySelector('nav.navbar');\r\n this.customer = {} as IDtoCustomer;\r\n this.customer.payCompany = {} as IDtoCompany;\r\n this.customer.customerType = {} as IDtoCustomerType;\r\n if (this.configurationService.isReady) {\r\n this.getCatalogs();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getCatalogs();\r\n });\r\n }\r\n }\r\n\r\n ngOnInit(): any {\r\n this.nav.className += ' white-bg';\r\n this.fixedControlsInit();\r\n this.route.params.subscribe((params) => {\r\n if (params['id']) {\r\n setTimeout(() => {\r\n this.getPosition(Number(params['id']));\r\n this.action = params['action'];\r\n }, 2);\r\n\r\n }\r\n });\r\n }\r\n private receiveCustomer(customer: IDtoCustomer) {\r\n //this.catalogWorkingDays = Observable.of([] as IDtoCatalog[]);\r\n //this.formPositionCalculation.get('workingDayId').setValue(null);\r\n this.customer = customer;\r\n if (this.customer == undefined) {\r\n this.resetForm(true);\r\n } else {\r\n //this.catalogWorkingDays = this.workingDayService.getCatalogWorkingDays(this.customer.payCompanyId);\r\n // this.catalogWorkingDays.subscribe(x => {\r\n // if (this.action == 'update') {\r\n // this.formPositionCalculation.get('workingDayId').setValue(this.position.workingDayId);\r\n // }\r\n // })\r\n }\r\n }\r\n private fixedControlsInit(): void {\r\n this.group['customerId'] = new FormControl(null, Validators.required);\r\n this.group['tradename'] = new FormControl(null, [Validators.required, Validators.maxLength(255)]);\r\n this.group['positionStatusId'] = new FormControl(null, Validators.required);\r\n this.group['productId'] = new FormControl(null, Validators.required);\r\n this.group['isrTypeId'] = new FormControl(null, Validators.required);\r\n this.group['payrollTypeId'] = new FormControl(null, Validators.required);\r\n this.group['paymentFormId'] = new FormControl(null, Validators.required);\r\n this.group['workdayTypeId'] = new FormControl(null, Validators.required);\r\n this.group['positionTypeId'] = new FormControl(null, Validators.required);\r\n //this.group['workingDayId'] = new FormControl(null, Validators.required);\r\n this.group['description'] = new FormControl(null, [Validators.maxLength(255)]);\r\n this.group['isMassive'] = new FormControl(false, Validators.required);\r\n this.group['projectId'] = new FormControl(null);\r\n this.formPositionCalculation = new FormGroup(this.group);\r\n }\r\n private getCatalogs(): void {\r\n this.getPaymentConcepts();\r\n this.catalogProductJobs = this.positionService.getCatalogProductJobs();\r\n this.catalogIsrTypes = this.positionService.getCatalogIsrTypes();\r\n this.catalogPositionStatus = this.positionService.getCatalogPositionStatus();\r\n this.catalogPayrollTypes = this.positionService.getCatalogPayrollTypes();\r\n this.catalogWorkdayTypes = this.positionService.getCatalogWorkdayTypes();\r\n this.catalogPaymentForms = this.positionService.getCatalogPaymentForms();\r\n this.catalogPositionTypes = this.positionService.getCatalogPositionTypes();\r\n }\r\n private initializeFormmPositionCalculation() {\r\n this.paymentConcepts.forEach(element => {\r\n this.group[element.variableName] = new FormControl(element.fixedValue);\r\n })\r\n this.formPositionCalculation = new FormGroup(this.group);\r\n }\r\n public ngOnDestroy(): any {\r\n this.nav.classList.remove('white-bg');\r\n }\r\n private getPosition(positionId: number): void {\r\n this.spinner.show()\r\n this.positionService.getPosition(positionId)\r\n .subscribe(\r\n (x) => {\r\n this.position = x.data as IDtoPosition;\r\n this.formPositionCalculation.patchValue(this.position.salaryCalculate);\r\n this.setValues(this.position);\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private getPaymentConcepts(): void {\r\n this.positionService.getPaymentConcepts()\r\n .subscribe(\r\n (x) => {\r\n this.paymentConcepts = x.data as IDtoPaymentConcept[];\r\n let clasificationsFive = this.paymentConcepts.filter(x => x.clasificationId == 5);\r\n let indexInit = this.paymentConcepts.indexOf(clasificationsFive[0]);\r\n let divClasificationsFive = Math.round(clasificationsFive.length / 2);\r\n this.indexMedium = indexInit + divClasificationsFive;\r\n\r\n this.initializeFormmPositionCalculation();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private setValues(position: IDtoPosition): void {\r\n this.formPositionCalculation.get('customerId').setValue(position.customerId);\r\n this.formPositionCalculation.get('tradename').setValue(position.tradename);\r\n this.formPositionCalculation.get('positionStatusId').setValue(position.positionStatusId);\r\n this.formPositionCalculation.get('productId').setValue(position.productId);\r\n this.formPositionCalculation.get('isrTypeId').setValue(position.isrTypeId);\r\n this.formPositionCalculation.get('payrollTypeId').setValue(position.payrollTypeId);\r\n this.formPositionCalculation.get('paymentFormId').setValue(position.paymentFormId);\r\n this.formPositionCalculation.get('workdayTypeId').setValue(position.workdayTypeId);\r\n this.formPositionCalculation.get('positionTypeId').setValue(position.positionTypeId);\r\n //this.formPositionCalculation.get('workingDayId').setValue(position.workingDayId);\r\n this.formPositionCalculation.get('description').setValue(position.description);\r\n this.formPositionCalculation.get('projectId').setValue(position.projectCustomerId);\r\n\r\n this.position.backSalary = position.salaryCalculate.salary;\r\n this.commissions = position.commissions;\r\n this.vouchers = position.vouchers;\r\n this.resetCustomerId.next(position.customerId);\r\n this.catalogIsrTypes.subscribe(x => {\r\n this.daysFrecuency = +x.filter(x => x.id == position.isrTypeId)[0].additional;\r\n });\r\n }\r\n private submit(form: FormGroup): void {\r\n if (form.valid) {\r\n this.openModalMassiveUpdate();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.touchedControls(form);\r\n }\r\n }\r\n private save(): void {\r\n switch (this.action) {\r\n case 'add':\r\n this.addPosition();\r\n break;\r\n case 'update':\r\n this.updatePosition();\r\n break;\r\n }\r\n }\r\n private addPosition(): void {\r\n this.spinner.show();\r\n let position = this.mapValues();\r\n this.positionService.addPosition(position)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.position = x.data as IDtoPosition;\r\n this.monthDays = position.salaryCalculate.monthDays;\r\n this.formPositionCalculation.patchValue(position.salaryCalculate);\r\n this.setValues(this.position);\r\n this.action = 'update'\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.addModuleLog(this.position.id, 'new');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide()\r\n },\r\n (errMessage) => {\r\n this.configGeneral.newToast('Error', errMessage.messages, 'error');\r\n this.spinner.hide()});\r\n }\r\n private updatePosition(): void {\r\n this.spinner.show();\r\n let position = this.mapValues();\r\n this.positionService.updatePosition(position)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.position = x.data as IDtoPosition;\r\n this.formPositionCalculation.patchValue(position.salaryCalculate);\r\n this.setValues(this.position)\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.addModuleLog(this.position.id, 'update');\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide()\r\n },\r\n (errMessage) => {\r\n this.configGeneral.newToast('Error', errMessage.messages, 'error');\r\n this.spinner.hide()});\r\n }\r\n private mapValues(): IDtoPosition {\r\n let position = {} as IDtoPosition;\r\n if (this.action === 'update') {\r\n position.id = this.position.id;\r\n position.isMassive = this.formPositionCalculation.controls['isMassive'].value;\r\n position.backSalary = this.position.backSalary;\r\n position.codeNom = this.position.codeNom;\r\n }\r\n position.productId = this.formPositionCalculation.controls['productId'].value;\r\n position.customerId = this.formPositionCalculation.controls['customerId'].value;\r\n position.isrTypeId = this.formPositionCalculation.controls['isrTypeId'].value;\r\n position.payrollTypeId = this.formPositionCalculation.controls['payrollTypeId'].value;\r\n position.paymentFormId = this.formPositionCalculation.controls['paymentFormId'].value;\r\n position.workdayTypeId = this.formPositionCalculation.controls['workdayTypeId'].value;\r\n position.positionTypeId = this.formPositionCalculation.controls['positionTypeId'].value;\r\n position.positionStatusId = this.formPositionCalculation.controls['positionStatusId'].value;\r\n //position.workingDayId = this.formPositionCalculation.controls['workingDayId'].value;\r\n position.tradename = this.formPositionCalculation.controls['tradename'].value;\r\n position.description = this.formPositionCalculation.controls['description'].value;\r\n position.projectCustomerId = this.formPositionCalculation.controls['projectId'].value;\r\n\r\n let values = this.formPositionCalculation.getRawValue() as IDtoCalculateSalary;\r\n values.uma = this.customer.minimumSalary;\r\n values.workRiskPercentage = this.customer.riskPremiumValue;\r\n values.payrollTaxPercentage = this.customer.payCompany.payrollTaxPercentage;\r\n values.agencyPercentage = this.customer.agencyPercentage;\r\n values.administrativeExpensesPercentage = this.customer.administrativeExpensesPercentage;\r\n values.commissionsList = this.commissions;\r\n values.vouchersList = this.vouchers;\r\n position.commissions = this.commissions;\r\n position.vouchers = this.vouchers;\r\n values.daysFrecuency = this.daysFrecuency;\r\n position.salaryCalculate = values;\r\n\r\n return position;\r\n }\r\n private monthlyCalculation(variable: string): number {\r\n let v = (document.getElementById(variable) as HTMLInputElement).value;\r\n return +v * this.monthDays;\r\n }\r\n private calculateSalary(): void {\r\n if (!this.formPositionCalculation.valid) {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.touchedControls(this.formPositionCalculation);\r\n return;\r\n }\r\n let values = this.formPositionCalculation.getRawValue() as IDtoCalculateSalary;\r\n values.uma = this.customer.minimumSalary;\r\n values.workRiskPercentage = this.customer.riskPremiumValue;\r\n values.payrollTaxPercentage = this.customer.payCompany.payrollTaxPercentage;\r\n values.agencyPercentage = this.customer.agencyPercentage;\r\n values.administrativeExpensesPercentage = this.customer.administrativeExpensesPercentage;\r\n values.commissionsList = this.commissions;\r\n values.vouchersList = this.vouchers;\r\n values.daysFrecuency = this.daysFrecuency;\r\n this.positionService.calculateSalary(values)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n const v = x.data as IDtoCalculateSalary;\r\n this.monthDays = v.monthDays;\r\n this.formPositionCalculation.patchValue(v);\r\n console.log(x.data)\r\n } else {\r\n this.configGeneral.newToast('Error', x.exception, 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private openModalCommission() {\r\n const initialState = {\r\n title: `Comisiones`,\r\n commissions: this.commissions,\r\n customerId: this.customer.id\r\n };\r\n this.modalRef = this.modalService.show(ModalCommissionComponet\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.commissions = [...result];\r\n let sum: number = 0;\r\n this.commissions.forEach(a => sum += +a.value);\r\n this.formPositionCalculation.get('commissions').setValue(sum);\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private openModalVoucher() {\r\n const initialState = {\r\n title: `Vales`,\r\n vouchers: this.vouchers\r\n };\r\n this.modalRef = this.modalService.show(ModalVoucherComponet\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.vouchers = [...result];\r\n let sum: number = 0;\r\n this.vouchers.forEach(a => sum += +a.value);\r\n this.formPositionCalculation.get('otherVouchers').setValue(sum);\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private touchedControls(form: FormGroup): void {\r\n Object.keys(form.controls).forEach(field => {\r\n const control = form.get(field);\r\n control.markAsTouched({ onlySelf: true });\r\n });\r\n }\r\n private resetForm(reset: boolean): void {\r\n if(reset) {\r\n this.tab1.nativeElement.checked = true;\r\n this.customer = {} as IDtoCustomer\r\n this.initializeFormmPositionCalculation();\r\n this.fixedControlsInit();\r\n this.commissions = new Array() as IDtoCommission[];\r\n this.vouchers = new Array() as IDtoVoucher[];\r\n this.action = 'add';\r\n this.position = {} as IDtoPosition;\r\n }\r\n }\r\n private resetFormPartial(reset: boolean): void {\r\n if(reset) {\r\n this.initializeFormmPositionCalculation();\r\n this.fixedControlsInit();\r\n this.commissions = new Array() as IDtoCommission[];\r\n this.vouchers = new Array() as IDtoVoucher[];\r\n this.action = 'add';\r\n this.position = {} as IDtoPosition;\r\n this.formPositionCalculation.get('customerId').setValue(this.customer.id);\r\n }\r\n }\r\n private changePaymentForm(value: IDtoCatalog): void {\r\n switch (value.id) {\r\n case 1:\r\n let valMonthDays = this.paymentConcepts.filter(x => x.variableName == 'monthDays')[0].fixedValue;\r\n this.formPositionCalculation.get('monthDays').disable();\r\n this.formPositionCalculation.get('workdayTypeId').setValue(1);\r\n this.formPositionCalculation.get('workdayTypeId').disable();\r\n this.formPositionCalculation.get('monthDays').setValue(valMonthDays);\r\n break;\r\n case 2:\r\n this.formPositionCalculation.get('workdayTypeId').enable();\r\n this.formPositionCalculation.get('monthDays').enable();\r\n break;\r\n }\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Positions';\r\n dto.module = 'jobCreation';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n private openModalMassiveUpdate(): void {\r\n this.modalRef = this.modalService.show(ModalMassiveUpdateComponet\r\n , Object.assign(this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result == true || result == false) {\r\n this.formPositionCalculation.get('isMassive').setValue(result);\r\n this.addSwal.title = 'Seguro que desea guardar la configuración del puesto.';\r\n this.addSwal.show();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Debe seleccionar si desea hacer actualiación de salario o no, para poder continuar', 'warning');\r\n }\r\n });\r\n }\r\n}\r\n","module.exports = \"/* stylelint-disable order/properties-alphabetical-order */\\n/* stylelint-enable */\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n@-webkit-keyframes fake {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n@keyframes fake {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\nbody {\\n -webkit-animation: fake 1s infinite;\\n animation: fake 1s infinite;\\n}\\n.worko-tabs {\\n margin: 0 15px -30px 0;\\n width: 98%;\\n}\\n.worko-tabs .state {\\n position: absolute;\\n left: -10000px;\\n}\\n.worko-tabs .flex-tabs {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n flex-wrap: wrap;\\n padding-left: 15px;\\n}\\n.worko-tabs .flex-tabs .tab {\\n -webkit-box-flex: 1;\\n flex-grow: 1;\\n max-height: 40px;\\n}\\n.worko-tabs .flex-tabs .panel {\\n background-color: #fff;\\n padding-left: 30px;\\n display: none;\\n width: 100%;\\n flex-basis: auto;\\n}\\n.worko-tabs .tab {\\n display: inline-block;\\n padding: 10px;\\n vertical-align: top;\\n background-color: #eee;\\n cursor: hand;\\n cursor: pointer;\\n border-left: 10px solid #ccc;\\n}\\n.worko-tabs .tab:hover {\\n background-color: #fff;\\n}\\n#tab-one:checked ~ .tabs #tab-one-label,\\n#tab-two:checked ~ .tabs #tab-two-label,\\n#tab-three:checked ~ .tabs #tab-three-label,\\n#tab-four:checked ~ .tabs #tab-four-label,\\n#tab-five:checked ~ .tabs #tab-five-label,\\n#tab-six:checked ~ .tabs #tab-six-label {\\n background-color: #fff;\\n cursor: default;\\n border-left-color: #1ab394;\\n}\\n#tab-one:checked ~ .tabs #tab-one-panel,\\n#tab-two:checked ~ .tabs #tab-two-panel,\\n#tab-three:checked ~ .tabs #tab-three-panel,\\n#tab-four:checked ~ .tabs #tab-four-panel,\\n#tab-five:checked ~ .tabs #tab-five-panel,\\n#tab-six:checked ~ .tabs #tab-six-panel {\\n display: block;\\n}\\n@media (max-width: 600px) {\\n .flex-tabs {\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n }\\n .flex-tabs .tab {\\n background: #fff;\\n border-bottom: 1px solid #ccc;\\n }\\n .flex-tabs .tab:last-of-type {\\n border-bottom: none;\\n }\\n .flex-tabs #tab-one-label {\\n -webkit-box-ordinal-group: 2;\\n order: 1;\\n }\\n .flex-tabs #tab-two-label {\\n -webkit-box-ordinal-group: 4;\\n order: 3;\\n }\\n .flex-tabs #tab-three-label {\\n -webkit-box-ordinal-group: 6;\\n order: 5;\\n }\\n .flex-tabs #tab-four-label {\\n -webkit-box-ordinal-group: 8;\\n order: 7;\\n }\\n .flex-tabs #tab-five-label {\\n -webkit-box-ordinal-group: 10;\\n order: 9;\\n }\\n .flex-tabs #tab-six-label {\\n -webkit-box-ordinal-group: 12;\\n order: 11;\\n }\\n .flex-tabs #tab-one-panel {\\n -webkit-box-ordinal-group: 3;\\n order: 2;\\n }\\n .flex-tabs #tab-two-panel {\\n -webkit-box-ordinal-group: 5;\\n order: 4;\\n }\\n .flex-tabs #tab-three-panel {\\n -webkit-box-ordinal-group: 7;\\n order: 6;\\n }\\n .flex-tabs #tab-four-panel {\\n -webkit-box-ordinal-group: 9;\\n order: 8;\\n }\\n .flex-tabs #tab-five-panel {\\n -webkit-box-ordinal-group: 11;\\n order: 10;\\n }\\n .flex-tabs #tab-six-panel {\\n -webkit-box-ordinal-group: 13;\\n order: 12;\\n }\\n\\n #tab-one:checked ~ .tabs #tab-one-label,\\n#tab-two:checked ~ .tabs #tab-two-label,\\n#tab-three:checked ~ .tabs #tab-three-label,\\n#tab-four:checked ~ .tabs #tab-four-label,\\n#tab-five:checked ~ .tabs #tab-five-label,\\n#tab-six:checked ~ .tabs #tab-six-label {\\n border-bottom: none;\\n }\\n\\n #tab-one:checked ~ .tabs #tab-one-panel,\\n#tab-two:checked ~ .tabs #tab-two-panel,\\n#tab-three:checked ~ .tabs #tab-three-panel,\\n#tab-four:checked ~ .tabs #tab-four-panel,\\n#tab-five:checked ~ .tabs #tab-five-panel,\\n#tab-six:checked ~ .tabs #tab-six-panel {\\n border-bottom: 1px solid #ccc;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcXVvdGUvcG9zaXRpb25zL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccXVvdGVcXHBvc2l0aW9uc1xccG9zaXRpb24uc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcXVvdGUvcG9zaXRpb25zL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3RkaW4iLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3F1b3RlL3Bvc2l0aW9ucy9wb3NpdGlvbi5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CQSwwREFBQTtBQU9BLHFCQUFBO0FDeEJBO0VBQ0UsaUJBQUE7QUNBRjtBREdBO0VBQ0U7SUFDRSxVQUFBO0VDQUY7RURHQTtJQUNFLFVBQUE7RUNERjtBQUNGO0FETkE7RUFDRTtJQUNFLFVBQUE7RUNBRjtFREdBO0lBQ0UsVUFBQTtFQ0RGO0FBQ0Y7QURJQTtFQUNFLG1DQUFBO1VBQUEsMkJBQUE7QUNGRjtBREtBO0VBQ0Usc0JBQUE7RUFDQSxVQUFBO0FDRkY7QURJRTtFQUNFLGtCQUFBO0VBQ0EsY0FBQTtBQ0ZKO0FES0U7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0FDSEo7QURJSTtFQUNFLG1CQUFBO1VBQUEsWUFBQTtFQUNBLGdCQUFBO0FDRk47QURLSTtFQUNFLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0FDSE47QURPRTtFQUNFLHFCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLDRCQUFBO0FDTEo7QURPSTtFQUNFLHNCQUFBO0FDTE47QURVQTs7Ozs7O0VBTUUsc0JBQUE7RUFDQSxlQUFBO0VBQ0EsMEJBQUE7QUNQRjtBRFVBOzs7Ozs7RUFNRSxjQUFBO0FDUEY7QURVQTtFQUNFO0lBQ0UsNEJBQUE7SUFBQSw2QkFBQTtZQUFBLHNCQUFBO0VDUEY7RURTRTtJQUNFLGdCQUFBO0lBQ0EsNkJBQUE7RUNQSjtFRFNJO0lBQ0UsbUJBQUE7RUNQTjtFRFdFO0lBQ0UsNEJBQUE7WUFBQSxRQUFBO0VDVEo7RURZRTtJQUNFLDRCQUFBO1lBQUEsUUFBQTtFQ1ZKO0VEYUU7SUFDRSw0QkFBQTtZQUFBLFFBQUE7RUNYSjtFRGNFO0lBQ0UsNEJBQUE7WUFBQSxRQUFBO0VDWko7RURlRTtJQUNFLDZCQUFBO1lBQUEsUUFBQTtFQ2JKO0VEZ0JFO0lBQ0UsNkJBQUE7WUFBQSxTQUFBO0VDZEo7RURpQkU7SUFDRSw0QkFBQTtZQUFBLFFBQUE7RUNmSjtFRGtCRTtJQUNFLDRCQUFBO1lBQUEsUUFBQTtFQ2hCSjtFRG1CRTtJQUNFLDRCQUFBO1lBQUEsUUFBQTtFQ2pCSjtFRG9CRTtJQUNFLDRCQUFBO1lBQUEsUUFBQTtFQ2xCSjtFRHFCRTtJQUNFLDZCQUFBO1lBQUEsU0FBQTtFQ25CSjtFRHNCRTtJQUNFLDZCQUFBO1lBQUEsU0FBQTtFQ3BCSjs7RUR3QkE7Ozs7OztJQU1FLG1CQUFBO0VDckJGOztFRHdCQTs7Ozs7O0lBTUUsNkJBQUE7RUNyQkY7QUFDRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3F1b3RlL3Bvc2l0aW9ucy9wb3NpdGlvbi5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gT3V0cHV0cyB0aGUgYG92ZXJmbG93LXdyYXBgIHByb3BlcnR5IGFuZCBpdHMgbGVnYWN5IG5hbWUgYHdvcmQtd3JhcGAgdG9cbi8vLyBzdXBwb3J0IGJyb3dzZXJzIHRoYXQgZG8gbm90IHlldCB1c2UgYG92ZXJmbG93LXdyYXBgLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtzdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgQWNjZXB0ZWQgQ1NTIHZhbHVlcyBhcmUgYG5vcm1hbGAsIGBicmVhay13b3JkYCwgYGluaGVyaXRgLCBgaW5pdGlhbGAsXG4vLy8gICBvciBgdW5zZXRgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSBvdmVyZmxvdy13cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvcHJvcGVydGllcy1hbHBoYWJldGljYWwtb3JkZXIgKi9cblxuQG1peGluIG92ZXJmbG93LXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgd29yZC13cmFwOiAkd3JhcDtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgXCIuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9jb3JlL2JvdXJib25cIjtcclxuQGltcG9ydCBcIi4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvY29yZS9uZWF0XCI7XHJcblxyXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufVxyXG5cclxuQGtleWZyYW1lcyBmYWtlIHtcclxuICBmcm9tIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG5cclxuICB0byB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufVxyXG5cclxuYm9keSB7XHJcbiAgYW5pbWF0aW9uOiBmYWtlIDFzIGluZmluaXRlO1xyXG59XHJcblxyXG4ud29ya28tdGFicyB7XHJcbiAgbWFyZ2luOiAwIDE1cHggLTMwcHggMCA7XHJcbiAgd2lkdGg6IDk4JTtcclxuXHJcbiAgLnN0YXRlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IC0xMDAwMHB4O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtdGFicyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xyXG4gICAgLnRhYiB7XHJcbiAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgbWF4LWhlaWdodDogNDBweDtcclxuICAgIH1cclxuXHJcbiAgICAucGFuZWwge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBmbGV4LWJhc2lzOiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnRhYiB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgICBjdXJzb3I6IGhhbmQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjY2NjO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuI3RhYi1vbmU6Y2hlY2tlZH4udGFicyAjdGFiLW9uZS1sYWJlbCxcclxuI3RhYi10d286Y2hlY2tlZH4udGFicyAjdGFiLXR3by1sYWJlbCxcclxuI3RhYi10aHJlZTpjaGVja2Vkfi50YWJzICN0YWItdGhyZWUtbGFiZWwsXHJcbiN0YWItZm91cjpjaGVja2Vkfi50YWJzICN0YWItZm91ci1sYWJlbCxcclxuI3RhYi1maXZlOmNoZWNrZWR+LnRhYnMgI3RhYi1maXZlLWxhYmVsLFxyXG4jdGFiLXNpeDpjaGVja2Vkfi50YWJzICN0YWItc2l4LWxhYmVsIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBib3JkZXItbGVmdC1jb2xvcjogIzFhYjM5NDtcclxufVxyXG5cclxuI3RhYi1vbmU6Y2hlY2tlZH4udGFicyAjdGFiLW9uZS1wYW5lbCxcclxuI3RhYi10d286Y2hlY2tlZH4udGFicyAjdGFiLXR3by1wYW5lbCxcclxuI3RhYi10aHJlZTpjaGVja2Vkfi50YWJzICN0YWItdGhyZWUtcGFuZWwsXHJcbiN0YWItZm91cjpjaGVja2Vkfi50YWJzICN0YWItZm91ci1wYW5lbCxcclxuI3RhYi1maXZlOmNoZWNrZWR+LnRhYnMgI3RhYi1maXZlLXBhbmVsLFxyXG4jdGFiLXNpeDpjaGVja2Vkfi50YWJzICN0YWItc2l4LXBhbmVsIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgLmZsZXgtdGFicyB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAgIC50YWIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcclxuXHJcbiAgICAgICY6bGFzdC1vZi10eXBlIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI3RhYi1vbmUtbGFiZWwge1xyXG4gICAgICBvcmRlcjogMTtcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLXR3by1sYWJlbCB7XHJcbiAgICAgIG9yZGVyOiAzO1xyXG4gICAgfVxyXG5cclxuICAgICN0YWItdGhyZWUtbGFiZWwge1xyXG4gICAgICBvcmRlcjogNTtcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLWZvdXItbGFiZWwge1xyXG4gICAgICBvcmRlcjogNztcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLWZpdmUtbGFiZWwge1xyXG4gICAgICBvcmRlcjogOTtcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLXNpeC1sYWJlbCB7XHJcbiAgICAgIG9yZGVyOiAxMTtcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLW9uZS1wYW5lbCB7XHJcbiAgICAgIG9yZGVyOiAyO1xyXG4gICAgfVxyXG5cclxuICAgICN0YWItdHdvLXBhbmVsIHtcclxuICAgICAgb3JkZXI6IDQ7XHJcbiAgICB9XHJcblxyXG4gICAgI3RhYi10aHJlZS1wYW5lbCB7XHJcbiAgICAgIG9yZGVyOiA2O1xyXG4gICAgfVxyXG5cclxuICAgICN0YWItZm91ci1wYW5lbCB7XHJcbiAgICAgIG9yZGVyOiA4O1xyXG4gICAgfVxyXG5cclxuICAgICN0YWItZml2ZS1wYW5lbCB7XHJcbiAgICAgIG9yZGVyOiAxMDtcclxuICAgIH1cclxuXHJcbiAgICAjdGFiLXNpeC1wYW5lbCB7XHJcbiAgICAgIG9yZGVyOiAxMjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICN0YWItb25lOmNoZWNrZWR+LnRhYnMgI3RhYi1vbmUtbGFiZWwsXHJcbiAgI3RhYi10d286Y2hlY2tlZH4udGFicyAjdGFiLXR3by1sYWJlbCxcclxuICAjdGFiLXRocmVlOmNoZWNrZWR+LnRhYnMgI3RhYi10aHJlZS1sYWJlbCxcclxuICAjdGFiLWZvdXI6Y2hlY2tlZH4udGFicyAjdGFiLWZvdXItbGFiZWwsXHJcbiAgI3RhYi1maXZlOmNoZWNrZWR+LnRhYnMgI3RhYi1maXZlLWxhYmVsLFxyXG4gICN0YWItc2l4OmNoZWNrZWR+LnRhYnMgI3RhYi1zaXgtbGFiZWwge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICB9XHJcblxyXG4gICN0YWItb25lOmNoZWNrZWR+LnRhYnMgI3RhYi1vbmUtcGFuZWwsXHJcbiAgI3RhYi10d286Y2hlY2tlZH4udGFicyAjdGFiLXR3by1wYW5lbCxcclxuICAjdGFiLXRocmVlOmNoZWNrZWR+LnRhYnMgI3RhYi10aHJlZS1wYW5lbCxcclxuICAjdGFiLWZvdXI6Y2hlY2tlZH4udGFicyAjdGFiLWZvdXItcGFuZWwsXHJcbiAgI3RhYi1maXZlOmNoZWNrZWR+LnRhYnMgI3RhYi1maXZlLXBhbmVsLFxyXG4gICN0YWItc2l4OmNoZWNrZWR+LnRhYnMgI3RhYi1zaXgtcGFuZWwge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XHJcbiAgfVxyXG59XHJcbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL3Byb3BlcnRpZXMtYWxwaGFiZXRpY2FsLW9yZGVyICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5cbkBrZXlmcmFtZXMgZmFrZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbmJvZHkge1xuICBhbmltYXRpb246IGZha2UgMXMgaW5maW5pdGU7XG59XG5cbi53b3Jrby10YWJzIHtcbiAgbWFyZ2luOiAwIDE1cHggLTMwcHggMDtcbiAgd2lkdGg6IDk4JTtcbn1cbi53b3Jrby10YWJzIC5zdGF0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwMDAwcHg7XG59XG4ud29ya28tdGFicyAuZmxleC10YWJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbn1cbi53b3Jrby10YWJzIC5mbGV4LXRhYnMgLnRhYiB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWF4LWhlaWdodDogNDBweDtcbn1cbi53b3Jrby10YWJzIC5mbGV4LXRhYnMgLnBhbmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC1iYXNpczogYXV0bztcbn1cbi53b3Jrby10YWJzIC50YWIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGN1cnNvcjogaGFuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjY2NjO1xufVxuLndvcmtvLXRhYnMgLnRhYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbiN0YWItb25lOmNoZWNrZWQgfiAudGFicyAjdGFiLW9uZS1sYWJlbCxcbiN0YWItdHdvOmNoZWNrZWQgfiAudGFicyAjdGFiLXR3by1sYWJlbCxcbiN0YWItdGhyZWU6Y2hlY2tlZCB+IC50YWJzICN0YWItdGhyZWUtbGFiZWwsXG4jdGFiLWZvdXI6Y2hlY2tlZCB+IC50YWJzICN0YWItZm91ci1sYWJlbCxcbiN0YWItZml2ZTpjaGVja2VkIH4gLnRhYnMgI3RhYi1maXZlLWxhYmVsLFxuI3RhYi1zaXg6Y2hlY2tlZCB+IC50YWJzICN0YWItc2l4LWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3JkZXItbGVmdC1jb2xvcjogIzFhYjM5NDtcbn1cblxuI3RhYi1vbmU6Y2hlY2tlZCB+IC50YWJzICN0YWItb25lLXBhbmVsLFxuI3RhYi10d286Y2hlY2tlZCB+IC50YWJzICN0YWItdHdvLXBhbmVsLFxuI3RhYi10aHJlZTpjaGVja2VkIH4gLnRhYnMgI3RhYi10aHJlZS1wYW5lbCxcbiN0YWItZm91cjpjaGVja2VkIH4gLnRhYnMgI3RhYi1mb3VyLXBhbmVsLFxuI3RhYi1maXZlOmNoZWNrZWQgfiAudGFicyAjdGFiLWZpdmUtcGFuZWwsXG4jdGFiLXNpeDpjaGVja2VkIH4gLnRhYnMgI3RhYi1zaXgtcGFuZWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5mbGV4LXRhYnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLmZsZXgtdGFicyAudGFiIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICB9XG4gIC5mbGV4LXRhYnMgLnRhYjpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLW9uZS1sYWJlbCB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLXR3by1sYWJlbCB7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLXRocmVlLWxhYmVsIHtcbiAgICBvcmRlcjogNTtcbiAgfVxuICAuZmxleC10YWJzICN0YWItZm91ci1sYWJlbCB7XG4gICAgb3JkZXI6IDc7XG4gIH1cbiAgLmZsZXgtdGFicyAjdGFiLWZpdmUtbGFiZWwge1xuICAgIG9yZGVyOiA5O1xuICB9XG4gIC5mbGV4LXRhYnMgI3RhYi1zaXgtbGFiZWwge1xuICAgIG9yZGVyOiAxMTtcbiAgfVxuICAuZmxleC10YWJzICN0YWItb25lLXBhbmVsIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAuZmxleC10YWJzICN0YWItdHdvLXBhbmVsIHtcbiAgICBvcmRlcjogNDtcbiAgfVxuICAuZmxleC10YWJzICN0YWItdGhyZWUtcGFuZWwge1xuICAgIG9yZGVyOiA2O1xuICB9XG4gIC5mbGV4LXRhYnMgI3RhYi1mb3VyLXBhbmVsIHtcbiAgICBvcmRlcjogODtcbiAgfVxuICAuZmxleC10YWJzICN0YWItZml2ZS1wYW5lbCB7XG4gICAgb3JkZXI6IDEwO1xuICB9XG4gIC5mbGV4LXRhYnMgI3RhYi1zaXgtcGFuZWwge1xuICAgIG9yZGVyOiAxMjtcbiAgfVxuXG4gICN0YWItb25lOmNoZWNrZWQgfiAudGFicyAjdGFiLW9uZS1sYWJlbCxcbiN0YWItdHdvOmNoZWNrZWQgfiAudGFicyAjdGFiLXR3by1sYWJlbCxcbiN0YWItdGhyZWU6Y2hlY2tlZCB+IC50YWJzICN0YWItdGhyZWUtbGFiZWwsXG4jdGFiLWZvdXI6Y2hlY2tlZCB+IC50YWJzICN0YWItZm91ci1sYWJlbCxcbiN0YWItZml2ZTpjaGVja2VkIH4gLnRhYnMgI3RhYi1maXZlLWxhYmVsLFxuI3RhYi1zaXg6Y2hlY2tlZCB+IC50YWJzICN0YWItc2l4LWxhYmVsIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG5cbiAgI3RhYi1vbmU6Y2hlY2tlZCB+IC50YWJzICN0YWItb25lLXBhbmVsLFxuI3RhYi10d286Y2hlY2tlZCB+IC50YWJzICN0YWItdHdvLXBhbmVsLFxuI3RhYi10aHJlZTpjaGVja2VkIH4gLnRhYnMgI3RhYi10aHJlZS1wYW5lbCxcbiN0YWItZm91cjpjaGVja2VkIH4gLnRhYnMgI3RhYi1mb3VyLXBhbmVsLFxuI3RhYi1maXZlOmNoZWNrZWQgfiAudGFicyAjdGFiLWZpdmUtcGFuZWwsXG4jdGFiLXNpeDpjaGVja2VkIH4gLnRhYnMgI3RhYi1zaXgtcGFuZWwge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICB9XG59Il19 */\"","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoProduct } from 'app/shared/models/position/dto-product.model';\r\nimport { PositionService } from '../position.service';\r\nimport { ModalProductComponet } from 'app/views/modales/position/product/modal-product.component';\r\n\r\n@Component({\r\n selector: 'app-products',\r\n styleUrls: ['./products.style.scss'],\r\n templateUrl: 'products.template.html'\r\n})\r\nexport class ProductsComponent implements OnInit {\r\n private search: string;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Validadores */\r\n private errorMessages: any;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Variables */\r\n private now: number;\r\n /**Listas */\r\n private products = new Array() as IDtoProduct[];\r\n private productsTemp = new Array() as IDtoProduct[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableProduct: DatatableComponent;\r\n public constructor(private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private modalService: BsModalService\r\n , private serviceSecurity: SecurityService\r\n , private positionService: PositionService\r\n , private configGeneral: AppConfig) {\r\n }\r\n ngOnInit(): void {\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getProducts()\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getProducts()\r\n });\r\n }\r\n }\r\n private getProducts(): void {\r\n this.positionService.getProducts()\r\n .subscribe(\r\n (x) => {\r\n this.products = x.data as IDtoProduct[];\r\n this.productsTemp = x.data as IDtoProduct[];\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private openModalProduct(item: IDtoProduct, action: string) {\r\n const initialState = {\r\n product: item,\r\n title: action == 'edit' ? `Edición del producto ${item.name}` : `Nuevo producto`,\r\n action: action\r\n };\r\n this.modalRef = this.modalService.show(ModalProductComponet\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.getProducts();\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n const val = this.search.toLowerCase();\r\n const temp = this.productsTemp.filter((x: any) => x.name.toLowerCase().startsWith(val)\r\n || x.productTypeName.toLowerCase().startsWith(val));\r\n\r\n this.products = temp;\r\n this.tableProduct.offset = 0;\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3F1b3RlL3Byb2R1Y3RzL3Byb2R1Y3RzLnN0eWxlLnNjc3MifQ== */\"","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { CustomerService } from '../customer.service';\r\nimport { IDtoProject } from 'app/shared/models/customer/dto-project.model';\r\nimport { Observable } from 'rxjs';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { ModalProjectComponet } from 'app/views/modales/customer/project/modal-project.component';\r\nimport { ModalPlanComponet } from 'app/views/modales/customer/plan/modal-plan.component';\r\nimport { ModalEmployerRegisterOfficeComponet } from 'app/views/modales/organization/employer-register-office/modal-employer-register-office.component';\r\n\r\n@Component({\r\n selector: 'app-projects',\r\n styleUrls: ['./projects.style.scss'],\r\n templateUrl: 'projects.template.html'\r\n})\r\nexport class ProjectsComponent implements OnInit {\r\n private search: string;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Validadores */\r\n private errorMessages: any;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Variables */\r\n private now: number;\r\n private customerId: number;\r\n private staffType: string;\r\n /**Listas */\r\n private projects = new Array() as IDtoProject[];\r\n private projectsTemp = new Array() as IDtoProject[];\r\n /**Catalogos */\r\n private catalogCustomers: Observable;\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableProjects: DatatableComponent;\r\n public constructor(private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private modalService: BsModalService\r\n , private customerService: CustomerService\r\n , private configGeneral: AppConfig) {\r\n }\r\n ngOnInit(): void {\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n this.catalogCustomers = this.customerService.getCatalogCustomers();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.catalogCustomers = this.customerService.getCatalogCustomers();\r\n });\r\n }\r\n }\r\n private getProjects(dto: IDtoCatalog): void {\r\n if (dto == null) {\r\n return;\r\n }\r\n this.spinner.show()\r\n this.staffType = dto.additional;\r\n this.customerService.getProyectsByCustomer(dto.id)\r\n .subscribe(\r\n (x) => {\r\n this.projects = x.data as IDtoProject[];\r\n this.projectsTemp = x.data as IDtoProject[];\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n\r\n private openModalProject(item: IDtoProject, action: string) {\r\n if (this.customerId == null) {\r\n this.configGeneral.newToast('Validación', 'Debe seleccionar primero un cliente para poder dar de alta un proyecto', 'warning');\r\n return;\r\n }\r\n const initialState = {\r\n project: item,\r\n customerId: this.customerId,\r\n staffType: this.staffType,\r\n title: action == 'edit' ? `Edición del proyecto ${item.name}` : `Nuevo proyecto`,\r\n action: action\r\n };\r\n this.modalRef = this.modalService.show(ModalProjectComponet\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n let dto = {} as IDtoCatalog;\r\n dto.id = this.customerId;\r\n dto.additional = this.staffType;\r\n this.getProjects(dto);\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private openModalPlan(item: IDtoProject, action: string) {\r\n const initialState = {\r\n plans: item.planTrademarks,\r\n projectCustomerId: item.id,\r\n title: `Administración de planes del proyecto ${item.name}`\r\n };\r\n this.modalRef = this.modalService.show(ModalPlanComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n item.planTrademarks = [...result];\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n const val = this.search.toLowerCase();\r\n const temp = this.projectsTemp.filter((x: any) => x.name.toLowerCase().startsWith(val)\r\n || x.codeNom.toLowerCase().startsWith(val));\r\n\r\n this.projects = temp;\r\n this.tableProjects.offset = 0;\r\n }\r\n private openModalEmployerRegisterOffices(item: IDtoProject) {\r\n const initialState = {\r\n projectCustomerId: item.id\r\n };\r\n this.modalService.show(ModalEmployerRegisterOfficeComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3F1b3RlL3Byb2plY3RzL3Byb2plY3RzLnN0eWxlLnNjc3MifQ== */\"","import { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoBudget } from 'app/shared/models/quote/budget.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoBudgetFilter } from 'app/shared/models/quote/budget-filter.model';\r\nimport { IDtoWorkingDay } from 'app/shared/models/position/dto-working-day.model';\r\n\r\n@Injectable()\r\nexport class WorkingDayService {\r\n private quoteUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.quoteUrl = this.configurationService.serverSettings.quoteUrl;\r\n });\r\n }\r\n }\r\n public addWorkingDay(dto: IDtoWorkingDay): Observable {\r\n const url =`${this.quoteUrl}api/WorkingDays/addWorkingDay`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateWorkingDay(dto: IDtoWorkingDay): Observable {\r\n const url =`${this.quoteUrl}api/WorkingDays/updateWorkingDay`;\r\n return this.service.putWithId(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getWorkingDays(): Observable {\r\n const url = `${this.quoteUrl}api/WorkingDays/getWorkingDays`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogWorkingDays(payCompanyId: number): Observable {\r\n const url = `${this.quoteUrl}api/WorkingDays/getCatalogWorkingDays?payCompanyId=${payCompanyId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { WorkingDayService } from '../working-day.service';\r\nimport { IDtoWorkingDay } from 'app/shared/models/position/dto-working-day.model';\r\nimport { ModalWorkingDayComponet } from 'app/views/modales/position/working-day/modal-working-day.component';\r\n\r\n@Component({\r\n selector: 'app-working-days',\r\n styleUrls: ['./working-days.style.scss'],\r\n templateUrl: 'working-days.template.html'\r\n})\r\nexport class WorkingDaysComponent implements OnInit {\r\n private search: string;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Validadores */\r\n private errorMessages: any;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Variables */\r\n private now: number;\r\n /**Listas */\r\n private workingDays = new Array() as IDtoWorkingDay[];\r\n private workingDaysTemp = new Array() as IDtoWorkingDay[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableWorkingDays: DatatableComponent;\r\n public constructor(private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private modalService: BsModalService\r\n , private workingDayService: WorkingDayService\r\n , private configGeneral: AppConfig) {\r\n }\r\n ngOnInit(): void {\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getWorkingDays()\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getWorkingDays()\r\n });\r\n }\r\n }\r\n private getWorkingDays(): void {\r\n this.workingDayService.getWorkingDays()\r\n .subscribe(\r\n (x) => {\r\n this.workingDays = x.data as IDtoWorkingDay[];\r\n this.workingDaysTemp = x.data as IDtoWorkingDay[];\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private openModalWorkingDay(item: IDtoWorkingDay, action: string) {\r\n const initialState = {\r\n workingDay: item,\r\n title: action == 'edit' ? `Edición de jornada laboral ${item.description}` : `Nueva jornada`,\r\n action: action\r\n };\r\n this.modalRef = this.modalService.show(ModalWorkingDayComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.getWorkingDays();\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n const val = this.search.toLowerCase();\r\n const temp = this.workingDaysTemp.filter((x: any) => x.description.toLowerCase().startsWith(val)\r\n || x.payCompany.toLowerCase().startsWith(val));\r\n\r\n this.workingDays = temp;\r\n this.tableWorkingDays.offset = 0;\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3F1b3RlL3dvcmtpbmctZGF5cy93b3JraW5nLWRheXMuc3R5bGUuc2NzcyJ9 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { EmployeeService } from 'app/views/appviews/employee.service';\r\nimport { IDtoEmployeeShippingAddress } from 'app/shared/models/employee/dto-employee-shipping-address.model';\r\nimport { RecruitmentService } from '../../recruitment.service';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { MessageService } from 'app/views/appviews/message.service';\r\nimport { IDtoMessageDetail } from 'app/shared/models/dto-message-detail.model';\r\nimport { ListBudgetsComponent } from 'app/views/appviews/quote/budgets/list-budgets.component';\r\n@Component({\r\n selector: 'app-enter-address',\r\n templateUrl: 'enter-address.template.html'\r\n})\r\nexport class EnterAddressComponent implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n private param: string;\r\n /**Formulario */\r\n private frmAddress: FormGroup;\r\n private catalogTowns: ISelect[];\r\n private catalogStates: ISelect[];\r\n private address: IDtoEmployeeShippingAddress;\r\n private useAddress = true;\r\n private navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste'\r\n ];\r\n private decimalCounter = 0;\r\n @ViewChild('confirmSwal', { static: false }) private confirmSwal: SwalComponent;\r\n constructor(private formBuilder: FormBuilder\r\n , private recruitmentService: RecruitmentService\r\n , private employeeService: EmployeeService\r\n , private configGeneral: AppConfig\r\n , public snotifyService: SnotifyService\r\n , private router: Router\r\n , private spinner: NgxSpinnerService\r\n , private route: ActivatedRoute\r\n , private configurationService: ConfigurationService\r\n , private messageService: MessageService) {\r\n if (this.configurationService.isReady) {\r\n this.getCatalogStates();\r\n //this.getEmployeeShippingAddress();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getCatalogStates();\r\n //this.getEmployeeShippingAddress();\r\n });\r\n }\r\n this.frmAddress = formBuilder.group({\r\n street: [null, [Validators.required, Validators.maxLength(100)]],\r\n interiorNumber: [null, [Validators.maxLength(10)]],\r\n externalNumber: [null, [Validators.required, Validators.maxLength(10)]],\r\n suburb: [null, [Validators.required, Validators.maxLength(50)]],\r\n townId: [null, [Validators.required]],\r\n stateId: [null, [Validators.required]],\r\n postalCode: [null, [Validators.required, Validators.maxLength(6), Validators.minLength(5)]],\r\n reference: [null, [Validators.maxLength(300)]],\r\n useAddress: [null, [Validators.required]],\r\n personalNumber: [null, [Validators.maxLength(10), Validators.minLength(10)]]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe((params) => {\r\n if (params['case']) {\r\n this.param = params['case'];\r\n }\r\n });\r\n }\r\n private onSubmit() {\r\n if (this.frmAddress.valid) {\r\n let dto = this.frmAddress.value as IDtoEmployeeShippingAddress;\r\n dto.jobCandidateId = this.address.jobCandidateId;\r\n this.updateEmployeeShippingAddress(dto);\r\n }\r\n }\r\n private getCatalogStates(): void {\r\n this.recruitmentService.getCatalogStates().subscribe((res) => {\r\n this.catalogStates = res;\r\n });\r\n }\r\n private getCatalogTowns(id: string): void {\r\n this.recruitmentService.getCatalogTowns(id).subscribe((res) => {\r\n this.frmAddress.get('townId').setValue(null);\r\n this.catalogTowns = res;\r\n });\r\n }\r\n private change(event): void {\r\n let personalNumber = this.frmAddress.controls['personalNumber'].value\r\n if (\r\n this.navigationKeys.indexOf(event.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.\r\n (event.key === 'a' && event.ctrlKey === true) || // Allow: Ctrl+A\r\n (event.key === 'c' && event.ctrlKey === true) || // Allow: Ctrl+C\r\n (event.key === 'v' && event.ctrlKey === true) || // Allow: Ctrl+V\r\n (event.key === 'x' && event.ctrlKey === true) || // Allow: Ctrl+X\r\n (event.key === 'a' && event.metaKey === true) || // Allow: Cmd+A (Mac)\r\n (event.key === 'c' && event.metaKey === true) || // Allow: Cmd+C (Mac)\r\n (event.key === 'v' && event.metaKey === true) || // Allow: Cmd+V (Mac)\r\n (event.key === 'x' && event.metaKey === true) || // Allow: Cmd+X (Mac)\r\n (event.key === '.' && this.decimalCounter < 1) // Allow: only one decimal point\r\n ) return;\r\n if (personalNumber.length == 10) {\r\n this.spinner.show();\r\n this.getEmployeeShippingAddress(personalNumber);\r\n }\r\n }\r\n \r\n private getEmployeeShippingAddress(personalNumber: string): void {\r\n this.employeeService.getEmployeeShippingAddress(personalNumber).subscribe((res) => {\r\n if (res == null) {\r\n this.configGeneral.newToast('Error', 'No existe un empleado con el número de telefono proporcionado', 'error');\r\n }\r\n this.address = res;\r\n this.spinner.hide();\r\n });\r\n }\r\n private updateEmployeeShippingAddress(dto: IDtoEmployeeShippingAddress): void {\r\n this.spinner.show();\r\n this.employeeService.updateEmployeeShippingAddress(dto)\r\n .subscribe(\r\n (x) => {\r\n if(this.configGeneral.notificationSuccessError(x)) {\r\n let params = this.param.split('|');\r\n let c = params[1];\r\n let id = params[0];\r\n let dto = {} as IDtoMessageDetail;\r\n dto.recipient = id;\r\n dto.case = c;\r\n let message = this.useAddress == true ? 'USAR ACTUAL' : 'PROPORCIONAR OTRA';\r\n switch (c) {\r\n case '1':\r\n dto.messageSent = `DIRECCION / ${message}`;\r\n break;\r\n case '2':\r\n dto.messageSent = `TAJERTAS / ${message}`;\r\n break;\r\n case '3':\r\n dto.messageSent = `NUEVO INGRESO / ${message}`;\r\n break;\r\n }\r\n this.addMessageDetail(dto);\r\n }\r\n // if (!this.configGeneral.notificationSuccessError(x)) {\r\n // this.frmAddress.get('useAddress').setValue(null)\r\n // } else {\r\n // this.address = x.data as IDtoEmployeeShippingAddress;\r\n // }\r\n this.frmAddress.get('personalNumber').setValue(null)\r\n this.address = null;\r\n this.frmAddress.get('useAddress').setValue(null)\r\n this.spinner.hide()\r\n },\r\n (errMessage) => {\r\n this.frmAddress.get('useAddress').setValue(null)\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private addMessageDetail(dto: IDtoMessageDetail): void {\r\n this.spinner.show();\r\n this.messageService.addMessageDetail(dto)\r\n .subscribe(\r\n (x) => {\r\n },\r\n (errMessage) => {\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n this.useAddress = $event.value;\r\n if (this.useAddress) {\r\n this.confirmSwal.title = 'Se usará su dirección actual como dirección de envío. ¿Seguro que desea continuar?';\r\n this.confirmSwal.show().then((result) => {\r\n if (result.value) {\r\n this.spinner.show();\r\n this.updateEmployeeShippingAddress(this.address);\r\n } else {\r\n this.frmAddress.get('useAddress').setValue(null)\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoUrl } from 'app/shared/models/security/dto-url.model';\r\nimport { IUser } from 'app/shared/models/user.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { RecruitmentService } from '../recruitment.service';\r\n\r\n@Component({\r\n selector: 'app-external-recruitment',\r\n templateUrl: 'external-recruitment.template.html'\r\n})\r\nexport class ExternalRecruitmentComponent implements OnInit {\r\n public nav: any;\r\n private authenticated = false;\r\n private errorMessages: any;\r\n private objUrl = {} as IDtoUrl;\r\n private id: number;\r\n constructor(private serviceSecurity: SecurityService\r\n , private configurationService: ConfigurationService\r\n , private route: ActivatedRoute\r\n , private router: Router\r\n , private config: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private serviceIdentity: IdentityService\r\n , private serviceRecruitment: RecruitmentService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe((params) => {\r\n if (params['url']) {\r\n if (this.configurationService.isReady) {\r\n let u = params['url'];\r\n this.getRouteByUrl(u);\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n let u = params['url'];\r\n this.getRouteByUrl(u);\r\n });\r\n }\r\n }\r\n });\r\n this.serviceSecurity.authenticationChallengeExternal$.subscribe((res) => {\r\n this.authenticated = res;\r\n if (this.authenticated) {\r\n this.serviceSecurity.GetRolesUser('external-recruitment', this.id.toString());\r\n this.spinner.hide();\r\n } else {\r\n this.spinner.hide();\r\n this.config.newToast('Validación', 'Datos incorrectos', 'error');\r\n }\r\n });\r\n }\r\n private getRouteByUrl(url: string): void {\r\n this.spinner.show()\r\n this.serviceIdentity.getRouteByUrl(url)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.spinner.hide();\r\n this.objUrl = x.data as IDtoUrl;\r\n this.getJobCandidateId(this.objUrl.route);\r\n } else {\r\n this.config.newToast('Error', x.message, 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private getJobCandidateId(url: string): void {\r\n this.spinner.show()\r\n this.serviceRecruitment.getJobCandidateId(url)\r\n .subscribe(\r\n (x) => {\r\n if (x != null) {\r\n this.spinner.hide();\r\n this.id = x;\r\n this.login();\r\n } else {\r\n this.config.newToast('Error', 'No existe un registro con los datos proporcionados o el estatus de la solicitud ha cambiado', 'error');\r\n //this.router.navigate(['/login'], { relativeTo: this.route });\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private login() {\r\n let user = {} as IUser;\r\n user.system = this.config.getConfig().name;\r\n user.username = this.objUrl.user;\r\n user.password = this.objUrl.password;\r\n this.serviceSecurity.GetAuthorizationExternalUser(user);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoUrl } from 'app/shared/models/security/dto-url.model';\r\nimport { IUser } from 'app/shared/models/user.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { RecruitmentService } from '../recruitment.service';\r\n\r\n@Component({\r\n selector: 'app-external-request-capture',\r\n templateUrl: 'external-request-capture.template.html'\r\n})\r\nexport class ExternalRequestCaptureComponent implements OnInit {\r\n public nav: any;\r\n private authenticated = false;\r\n private errorMessages: any;\r\n private objUrl = {} as IDtoUrl;\r\n private id: number;\r\n constructor(private serviceSecurity: SecurityService\r\n , private configurationService: ConfigurationService\r\n , private route: ActivatedRoute\r\n , private router: Router\r\n , private config: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private serviceIdentity: IdentityService\r\n , private serviceRecruitment: RecruitmentService) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.configurationService.isReady) {\r\n this.getUserRequestCapture();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getUserRequestCapture();\r\n });\r\n }\r\n this.serviceSecurity.authenticationChallengeExternal$.subscribe((res) => {\r\n this.authenticated = res;\r\n if (this.authenticated) {\r\n this.serviceSecurity.GetRolesUser('external-request-capture');\r\n this.spinner.hide();\r\n } else {\r\n this.spinner.hide();\r\n this.config.newToast('Validación', 'Datos incorrectos', 'error');\r\n }\r\n });\r\n }\r\n private getUserRequestCapture(): void {\r\n this.spinner.show()\r\n this.serviceIdentity.getUserRequestCapture()\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.spinner.hide();\r\n this.objUrl = x.data as IDtoUrl;\r\n this.login();\r\n } else {\r\n this.config.newToast('Error', x.message, 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private login() {\r\n let user = {} as IUser;\r\n user.system = this.config.getConfig().name;\r\n user.username = this.objUrl.user;\r\n user.password = this.objUrl.password;\r\n this.serviceSecurity.GetAuthorizationExternalUser(user);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { RecruitmentService } from '../recruitment.service';\r\nimport { IGeneralData } from 'app/shared/models/recruitment/general-data.model';\r\nimport { IRecruiterComment } from 'app/shared/models/recruitment/recruiter-comment.model';\r\nimport { IStudy } from 'app/shared/models/recruitment/study.model';\r\nimport { IAppearance } from 'app/shared/models/recruitment/appearance.model';\r\nimport { IEmploymentHistory } from 'app/shared/models/recruitment/employment-history.model';\r\nimport { IEmploymentHistoryItem } from 'app/shared/models/recruitment/employment-history-item.model';\r\nimport { IReference } from 'app/shared/models/recruitment/reference.model';\r\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-profile',\r\n styleUrls: ['./profile.style.scss'],\r\n templateUrl: 'profile.template.html'\r\n})\r\nexport class ProfileComponent implements OnInit {\r\n ngOnInit(): void {\r\n this.route.params.subscribe((params) => {\r\n if (params['id']) {\r\n this.module = params['module'];\r\n setTimeout(() => {\r\n this.spinner.show();\r\n this.getJobCandidatesById(Number(params['id']));\r\n }, 2);\r\n\r\n }\r\n });\r\n }\r\n\r\n private jobCandidate: IGeneralData;\r\n private jobCandidateComment: IRecruiterComment;\r\n private jobCandidateLevelEducation: IStudy;\r\n private jobCandidateAppearance: IAppearance;\r\n private jobCandidateHistory: IEmploymentHistory;\r\n private jobCandidateHistoryItem: IEmploymentHistoryItem[];\r\n private jobCandidateReferences: IReference[];\r\n private navigationSubscription: any;\r\n private module: string;\r\n public constructor(private recruitmentService: RecruitmentService\r\n , private spinner: NgxSpinnerService\r\n , private route: ActivatedRoute\r\n , private router: Router) {\r\n this.navigationSubscription = this.router.events.subscribe((e: any) => {\r\n if (e instanceof NavigationEnd) {\r\n this.initialiseRoute();\r\n }\r\n });\r\n }\r\n private initialiseRoute() {\r\n this.resetForm();\r\n }\r\n private resetForm() {\r\n this.jobCandidate = {} as IGeneralData;\r\n this.jobCandidateComment = {} as IRecruiterComment;\r\n this.jobCandidateLevelEducation = {} as IStudy;\r\n this.jobCandidateAppearance = {} as IAppearance;\r\n this.jobCandidateHistory = {} as IEmploymentHistory;\r\n this.jobCandidateHistoryItem = [];\r\n this.jobCandidateReferences = [];\r\n }\r\n private navigateToEdit(): void {\r\n this.router.navigate(['/recruitments/request',\r\n { id: this.jobCandidate.id, action: 'update' }], { relativeTo: this.route });\r\n }\r\n private getJobCandidatesById(id: number): void {\r\n this.recruitmentService.getJobCandidate(id).subscribe((res) => {\r\n console.log(res);\r\n if (res != null) {\r\n this.jobCandidate = res;\r\n this.jobCandidateComment = res.jobCandidateRecruiterComment;\r\n this.jobCandidateLevelEducation = res.jobCandidateLevelEducation;\r\n this.jobCandidateAppearance = res.jobCandidateAppearance;\r\n this.jobCandidateHistory = res.jobCandidateEmploymentHistory;\r\n this.jobCandidateHistoryItem = res.jobCandidateEmploymentHistory != null ? res.jobCandidateEmploymentHistory.jobCandidateEmploymentHistoryItem : null;\r\n this.jobCandidateReferences = res.jobCandidateReference;\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private convertBoolToString(value: boolean) {\r\n if (value != null) {\r\n if (value)\r\n return \"SI\";\r\n else\r\n return \"NO\";\r\n }\r\n }\r\n private calculateLaborOld(startDate: Date, endDate: Date, calculateYear: boolean): number {\r\n let old = 0;\r\n if (calculateYear)\r\n old = new Date(endDate).getFullYear() - new Date(startDate).getFullYear();\r\n else\r\n old = new Date(endDate).getMonth() - new Date(startDate).getMonth();\r\n return Math.abs(old);\r\n }\r\n private printPDF() {\r\n window.print();\r\n }\r\n}\r\n","module.exports = \"table#thl th {\\n font-size: 10px;\\n font-weight: bold;\\n}\\n\\ntable#thl td {\\n font-size: 10px;\\n border-top: 0px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVjcnVpdG1lbnQvcHJvZmlsZS9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHJlY3J1aXRtZW50XFxwcm9maWxlXFxwcm9maWxlLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlY3J1aXRtZW50L3Byb2ZpbGUvcHJvZmlsZS5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZUFBQTtFQUFpQixpQkFBQTtBQ0VyQjs7QURBQTtFQUNJLGVBQUE7RUFDQSxlQUFBO0FDR0oiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZWNydWl0bWVudC9wcm9maWxlL3Byb2ZpbGUuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbInRhYmxlI3RobCB0aCB7XHJcbiAgICBmb250LXNpemU6IDEwcHg7IGZvbnQtd2VpZ2h0OiBib2xkXHJcbiAgfVxyXG50YWJsZSN0aGwgdGQge1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgYm9yZGVyLXRvcDogMHB4O1xyXG59IiwidGFibGUjdGhsIHRoIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxudGFibGUjdGhsIHRkIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBib3JkZXItdG9wOiAwcHg7XG59Il19 */\"","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IReference } from 'app/shared/models/recruitment/reference.model';\r\nimport { IDtoJobCandidate } from 'app/shared/models/recruitment/dto-job-candidate.model';\r\nimport { IDtoJobCandidateFilter } from 'app/shared/models/recruitment/dto-job-candidate-filter.model';\r\nimport { IGeneralData } from 'app/shared/models/recruitment/general-data.model';\r\nimport { IDocument } from 'app/shared/models/recruitment/document.model';\r\nimport 'rxjs/add/observable/of';\r\nimport { IEmploymentHistoryItem } from 'app/shared/models/recruitment/employment-history-item.model';\r\nimport { IDtoEmployeeContract } from 'app/shared/models/recruitment/dto-employee-contract.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IRecruiterComment } from 'app/shared/models/recruitment/recruiter-comment.model';\r\nimport { IAppearance } from 'app/shared/models/recruitment/appearance.model';\r\nimport { IEmployeeTaxData } from 'app/shared/models/recruitment/employee-tax-data.model';\r\nimport { IDtoEmployeeUpdatePayroll } from 'app/shared/models/employee/dto-employee-update-payroll.model';\r\n\r\n@Injectable()\r\nexport class RecruitmentService {\r\n private recruitmentUrl = '';\r\n private documents: IDocument[] = [\r\n { documentName: 'ActaNacimiento', title: 'Acta de nacimiento (pdf)-2MB', type: '.pdf', required: true },\r\n { documentName: 'IdentificacionOficial', title: 'Identificación oficial (pdf)-2MB', type: '.pdf', required: true },\r\n { documentName: 'ComprobanteDomicilio', title: 'Comprobante de domicilio (pdf)-2MB', type: '.pdf', required: true },\r\n { documentName: 'Foto', title: 'Foto reciente (jpg, jpeg, png)-2MB', type: '.jpg,.jpeg,.png', required: true },\r\n { documentName: 'ComprobanteEstudios', title: 'Último comprobante de estudios (pdf)-2MB', type: '.pdf', required: false },\r\n { documentName: 'CURP', title: 'CURP (pdf)-2MB', type: '.pdf', required: true },\r\n { documentName: 'RFC', title: 'Constancia fiscal (pdf)-2MB', type: '.pdf', required: true },\r\n { documentName: 'IMSS', title: 'IMSS (pdf)-2MB', type: '.pdf', required: true },\r\n { documentName: 'AvisoRetencion', title: 'Aviso de retención (pdf)-2MB', type: '.pdf', required: false },\r\n ];\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x =>\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl);\r\n }\r\n }\r\n\r\n public addRecluitment(section: string, data: any): Observable {\r\n let url = '';\r\n switch (section) {\r\n case 'generalData':\r\n url = this.recruitmentUrl + 'api/generalData/';\r\n break;\r\n case 'study':\r\n url = this.recruitmentUrl + 'api/jobCandidateLevelEducation/';\r\n break;\r\n case 'reference':\r\n url = this.recruitmentUrl + 'api/jobCandidateReference/';\r\n break;\r\n case 'employmentHistory':\r\n url = this.recruitmentUrl + 'api/jobCandidateEmploymentHistoryes/';\r\n break;\r\n case 'recruiterComments':\r\n url = this.recruitmentUrl + 'api/recruiterComments/';\r\n break;\r\n }\r\n\r\n if (data.id === undefined || data.id === null) {\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n } else {\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n }\r\n public updateRecluitment(section: string, data: any): Observable {\r\n let url = '';\r\n switch (section) {\r\n case 'generalData':\r\n url = this.recruitmentUrl + 'api/generalData/';\r\n break;\r\n case 'study':\r\n url = this.recruitmentUrl + 'api/jobCandidateLevelEducation/';\r\n break;\r\n case 'reference':\r\n url = this.recruitmentUrl + 'api/jobCandidateReference/';\r\n break;\r\n case 'employmentHistory':\r\n url = this.recruitmentUrl + 'api/jobCandidateEmploymentHistoryes/';\r\n break;\r\n case 'recruiterComments':\r\n url = this.recruitmentUrl + 'api/recruiterComments/';\r\n break;\r\n }\r\n\r\n if (data.id === undefined || data.id === null) {\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n } else {\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n }\r\n /**\r\n * name\r\n */\r\n public deleteEmploymentHistoyItem(id: number) {\r\n const url = `${this.recruitmentUrl}api/JobCandidateEmploymentHistoryItems?id=${id}`;\r\n return this.service.delete(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public uploadFile(entidad: IDocument, fileToUpload: File): Observable {\r\n const formData = new FormData();\r\n formData.append('jobCandidateDocumentId', JSON.stringify(entidad));\r\n formData.append('files', fileToUpload);\r\n\r\n const url = `${this.recruitmentUrl}api/jobCandidateDocuments/uploadFile/`;\r\n return this.service.post(url, formData).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public deleteFile(documentId: number): Observable {\r\n\r\n const url = `${this.recruitmentUrl}api/jobCandidateDocuments/deleteFile?jobCandidateDocumentId=${documentId}`;\r\n return this.service.delete(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public downloadFile(documentId: number): Observable {\r\n\r\n const url = `${this.recruitmentUrl}api/jobCandidateDocuments/downloadFile?jobCandidateDocumentId=${documentId}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getRfc(firstName: string, lastName: string, secondLastName: string, birthDate: string) {\r\n const url = `${this.recruitmentUrl}api/generalData/getRFCByJobCandidate?firstName=${firstName}&lastName=${lastName}&secondLastName=${secondLastName}&birthDate=${birthDate}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCurp(firstName: string, lastName: string, secondLastName: string, gender: string, birthDate: string, stateBirthId: number) {\r\n const url = `${this.recruitmentUrl}api/generalData/getCURPByJobCandidate?firstName=${firstName}&lastName=${lastName}&secondLastName=${secondLastName}&gender=${gender}&birthDate=${birthDate}&stateBirthId=${stateBirthId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogDocumens(): Observable {\r\n return Observable.of(this.documents);\r\n }\r\n public getCatalogStates(): Observable {\r\n const url = this.recruitmentUrl + 'api/states/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogZones(): Observable {\r\n const url = this.recruitmentUrl + 'api/zones/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n // public getCatalogTrademarks(): Observable {\r\n // const url = this.recruitmentUrl + 'api/marks/';\r\n // return this.service.get(url)\r\n // .pipe(\r\n // map((res: any) => {\r\n // return res;\r\n // })\r\n // );\r\n // }\r\n public getCatalogSkills(): Observable {\r\n const url = this.recruitmentUrl + 'api/skills/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogMaritalStatus(): Observable {\r\n const url = this.recruitmentUrl + 'api/maritalstatus/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogSources(): Observable {\r\n const url = this.recruitmentUrl + 'api/recruitmentSources/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogSizes(): Observable {\r\n const url = this.recruitmentUrl + 'api/sizes/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPhysicalComplexions(): Observable {\r\n const url = this.recruitmentUrl + 'api/physicalComplexions/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogShirtSizes(): Observable {\r\n const url = this.recruitmentUrl + 'api/ShirtSizes/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPhoneCompanies(): Observable {\r\n const url = this.recruitmentUrl + 'api/PhoneCompanies/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogSchoolLevels(): Observable {\r\n const url = this.recruitmentUrl + 'api/schoolLevels/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogStatures(): Observable {\r\n const url = this.recruitmentUrl + 'api/statures/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogHairColors(): Observable {\r\n const url = this.recruitmentUrl + 'api/hairColors/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogEyeColors(): Observable {\r\n const url = this.recruitmentUrl + 'api/eyeColors/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogSkinColors(): Observable {\r\n const url = this.recruitmentUrl + 'api/skinColors/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogShoeSizes(): Observable {\r\n const url = this.recruitmentUrl + 'api/shoeSizes/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPositions(): Observable {\r\n const url = this.recruitmentUrl + 'api/positions/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogEducationLevels(): Observable {\r\n const url = this.recruitmentUrl + 'api/educationLevels/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogDocumentsReceived(): Observable {\r\n const url = this.recruitmentUrl + 'api/documentsReceived/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogAvailabilitys(): Observable {\r\n const url = this.recruitmentUrl + 'api/availabilitys/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogReasonsOfExit(): Observable {\r\n const url = this.recruitmentUrl + 'api/reasonsOfExit/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogTrackingStatus(): Observable {\r\n const url = this.recruitmentUrl + 'api/trackingStatus/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogRecruiters(): Observable {\r\n const url = this.recruitmentUrl + 'api/recruiters/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n /**Información de referencias del candidato */\r\n public getReferences(jobCandidateId: number): Observable {\r\n const url = this.recruitmentUrl + 'api/jobCandidateReference/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n /**Información de solicitues, filtro inicial */\r\n public getJobCandidates(): Observable {\r\n const url = this.recruitmentUrl + 'api/jobCandidates/getJobCandidatesFilter/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getJobCandidatesFilters(data: IDtoJobCandidateFilter): Observable {\r\n const url = this.recruitmentUrl + 'api/jobCandidates/GetJobCandidatesFilterByParam/';\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n /**Obtiene un candidato en base a su id */\r\n public getJobCandidate(jobCandidateId: number): Observable {\r\n const url = this.recruitmentUrl + 'api/generalData/GetById?jobCandidateId=' + jobCandidateId;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogTowns(id: string): Observable {\r\n const url = `${this.recruitmentUrl}api/towns/getTownsByStateId?stateId=${id}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogTownsByStateIdCodeNom(id: string): Observable {\r\n const url = `${this.recruitmentUrl}api/towns/getCatalogTownsByStateIdCodeNom?stateId=${id}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogTownsWithStructureByStateId(id: string): Observable {\r\n const url = `${this.recruitmentUrl}api/towns/getCatalogTownsWithStructureByStateId?stateId=${id}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogTownsByStateIdCodeNomStructure(id: string): Observable {\r\n const url = `${this.recruitmentUrl}api/towns/getCatalogTownsByStateIdCodeNomStructure?stateId=${id}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n /**Download excel */\r\n public getCandidatesExcel(data: IDtoJobCandidateFilter): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidateDocuments/DownloadExcel/`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n /**Update employment history item */\r\n public updateEmploymentHistoryItem(data: IEmploymentHistoryItem): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidateEmploymentHistoryItems/`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public jobCandidatesContract(data: IDtoEmployeeContract): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidates/jobCandidatesContract/`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public downloadFileEmployeeTxt(data: any): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidates/jobCandidateFileTXT/`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getJobCandidateDocumentsByJobCandidateId(jobCandidateId: number): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidateDocuments/getJobCandidateDocumentsByJobCandidateId?jobCandidateId=${jobCandidateId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPatrimonialRegimes(): Observable {\r\n const url = this.recruitmentUrl + 'api/PatrimonialRegimes/getCatalogPatrimonialRegimes';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCandidatePositionType(jobCandidateId: number): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidates/getCandidatePositionType?jobCandidateId=${jobCandidateId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getJobCandidateId(id: string): Observable {\r\n const url = `${this.recruitmentUrl}api/GeneralData/getJobCandidateId?id=${id}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCandidatesRechargeableByRequisitionId(requisitionId: number): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidates/getCandidatesRechargeableByRequisitionId?requisitionId=${requisitionId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateTrackingStatusJobCandidate(candidate: IRecruiterComment): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidates/updateTrackingStatusJobCandidate`;\r\n return this.service.putWithId(url, candidate)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCandidateHasInfonavit(jobCandidateId: number): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidates/getCandidateHasInfonavit?jobCandidateId=${jobCandidateId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getJobCandidateAppearanceByJobCandidateId(jobcandidateId: number): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidateAppearance/getJobCandidateAppearanceByJobCandidateId?jobcandidateId=${jobcandidateId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateJobCandidateAppearance(data: IAppearance): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidateAppearance/`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addJobCandidateAppearance(data: IAppearance): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidateAppearance/`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogPhonePlans(): Observable {\r\n const url = this.recruitmentUrl + 'api/PhonePlans/';\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public updateTaxDataEmployee(data: IDtoEmployeeUpdatePayroll): Observable {\r\n const url = `${this.recruitmentUrl}api/Employees/updateTaxDataEmployee`;\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCandidateInduction(jobCandidateId: number, requisitionId: number): Observable {\r\n const url = `${this.recruitmentUrl}api/JobCandidates/getCandidateInduction?jobCandidateId=${jobCandidateId}&RequisitionId=${requisitionId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getJobCandidateDocument(jobCandidateId: number, documentName: string): Observable {\r\n const url = `${this.recruitmentUrl}api/jobCandidateDocuments/getJobCandidateDocument?jobCandidateId=${jobCandidateId}&documentName=${documentName}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public uploadFileAndTaxDataEmployee(entidad: IResult, fileToUpload: File): Observable {\r\n const formData = new FormData();\r\n formData.append('result', JSON.stringify(entidad));\r\n formData.append('files', fileToUpload);\r\n\r\n const url = `${this.recruitmentUrl}api/jobCandidateDocuments/uploadFileAndTaxDataEmployee/`;\r\n return this.service.post(url, formData).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild, EventEmitter } from '@angular/core';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\n\r\nimport { RecruitmentService } from '../recruitment.service';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { IGeneralData } from 'app/shared/models/recruitment/general-data.model';\r\nimport { Observable } from 'rxjs';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { SnotifyService, SnotifyPosition, SnotifyToastConfig } from 'ng-snotify';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { IDtoJobCandidate } from 'app/shared/models/recruitment/dto-job-candidate.model';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IDtoJobCandidateFilter } from 'app/shared/models/recruitment/dto-job-candidate-filter.model';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ISlimScrollOptions, SlimScrollEvent } from 'ngx-slimscroll';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { StorageService } from 'app/shared/services/storage.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { ModalHireEmployeeComponet } from 'app/views/modales/recruitment/hire/modal-hire-employee.component';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\n@Component({\r\n selector: 'app-request-review',\r\n styleUrls: ['./request-review.style.scss'],\r\n templateUrl: 'request-review.template.html'\r\n})\r\nexport class RequestReviewComponent implements OnDestroy, OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formFilter: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n @ViewChild('addSwal', { static: false }) private addSwal: SwalComponent;\r\n @ViewChild('swalProcessListEmployeeTxt', { static: false }) private swalProcessListEmployeeTxt: SwalComponent;\r\n private generalData = {} as IGeneralData;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Listas */\r\n private jobCandidates: IDtoJobCandidate[];\r\n private jobCandidatesTemp: IDtoJobCandidate[];\r\n /**Catalogos */\r\n private catalogPositions: Observable;\r\n private catalogZones: Observable;\r\n private catalogStates: Observable;\r\n private catalogSchoolLevels: Observable;\r\n //private catalogTrademarks: Observable;\r\n private catalogAvailabilitys: Observable;\r\n private catalogPhysicalComplexion: Observable;\r\n private catalogSkills: Observable;\r\n private catalogTowns: Observable;\r\n /** */\r\n @ViewChild(DatatableComponent, { static: false }) tableJobCandidates: DatatableComponent;\r\n /** */\r\n private referenceTypeLabelsMap = {\r\n 'F': '

Familiar

',\r\n 'P': '

Personal

'\r\n };\r\n /**Variables */\r\n public nav: any;\r\n private zones: any;\r\n private now: number;\r\n /**Slim-control */\r\n optsSlim: ISlimScrollOptions;\r\n scrollEvents: EventEmitter;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private profile: string;\r\n private listIds = new Array();\r\n private search: string;\r\n public constructor(private modalService: BsModalService\r\n , private recruitmentService: RecruitmentService\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private storageService: StorageService\r\n , private identityService: IdentityService) {\r\n this.nav = document.querySelector('nav.navbar');\r\n this.configToast = configGeneral.getConfigToast();\r\n this.optsSlim = configGeneral.getConfigSlimScroll();\r\n this.initializeFormFilter();\r\n const showRoles = this.securityService.getUserRolesStorage();\r\n if (showRoles !== '') {\r\n this.zones = showRoles.listZones;\r\n }\r\n this.profile = this.securityService.getProfileStorage('RequestReviews');\r\n }\r\n\r\n public ngOnInit(): any {\r\n this.scrollEvents = new EventEmitter();\r\n this.now = Date.now();\r\n this.nav.className += ' white-bg';\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.obetenerCatalogos();\r\n this.initFilters();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.obetenerCatalogos();\r\n this.initFilters();\r\n });\r\n }\r\n }\r\n private initFilters(): void {\r\n const values = this.storageService.retrieve('recruitments.filters');\r\n if (values != null) {\r\n this.formFilter.patchValue(values);\r\n }\r\n const search = this.storageService.retrieve('recruitments.search');\r\n if (search != undefined) {\r\n this.search = search;\r\n }\r\n let getJobCandidates = false;\r\n Object.keys(this.formFilter.controls).forEach(field => {\r\n const control = this.formFilter.get(field);\r\n if (control.value != null) {\r\n getJobCandidates = true;\r\n return;\r\n }\r\n });\r\n if (getJobCandidates) {\r\n this.getJobCandidatesFilters(false);\r\n }\r\n else {\r\n this.getJobCandidatesFilters(true);\r\n }\r\n }\r\n private obetenerCatalogos(): void {\r\n this.catalogPositions = this.recruitmentService.getCatalogPositions();\r\n this.catalogZones = this.configureCatalogsZones();\r\n if (!this.isManager()) {\r\n this.catalogZones.subscribe((res) => {\r\n this.formFilter.get('zone').setValue(res[0].id);\r\n //this.getJobCandidatesFilters(true);\r\n });\r\n } else {\r\n //this.getJobCandidatesFilters(true);\r\n }\r\n this.catalogStates = this.recruitmentService.getCatalogStates();\r\n this.catalogSchoolLevels = this.recruitmentService.getCatalogSchoolLevels();\r\n //this.catalogTrademarks = this.recruitmentService.getCatalogTrademarks();\r\n this.catalogAvailabilitys = this.recruitmentService.getCatalogAvailabilitys();\r\n this.catalogPhysicalComplexion = this.recruitmentService.getCatalogPhysicalComplexions();\r\n this.catalogSkills = this.recruitmentService.getCatalogSkills();\r\n this.spinner.hide();\r\n }\r\n private configureCatalogsZones(): Observable {\r\n const zonas = new Array as ISelect[];\r\n const t = this.recruitmentService.getCatalogZones().pipe(\r\n map((res: any) => {\r\n this.zones.forEach(element => {\r\n const z = res.filter(x => x.id == element.zoneId)[0];\r\n zonas.push(z);\r\n });\r\n return zonas;\r\n })\r\n );\r\n return t;\r\n }\r\n private getCatalogTowns(id: string): void {\r\n this.catalogTowns = this.recruitmentService.getCatalogTowns(id);\r\n }\r\n private initializeFormFilter() {\r\n this.formFilter = this.formBuilder.group({\r\n position: [null],\r\n age: [null],\r\n zone: [null],\r\n state: [null],\r\n town: [null],\r\n suburb: [null],\r\n area: [null],\r\n schoolLevel: [null],\r\n trademark: [null],\r\n availability: [null],\r\n physicalComplexion: [null],\r\n skill: [null],\r\n company: [null],\r\n gender: [null],\r\n typePosition: [null],\r\n birthDate: [null],\r\n hasCar: [null],\r\n name: [null],\r\n lastName: [null],\r\n secondLastName: [null],\r\n ageFrom: [null],\r\n ageTo: [null],\r\n periodFrom: [null],\r\n periodTo: [null]\r\n });\r\n }\r\n private mapFilters(form: any, initialize: boolean, waiting: string): IDtoJobCandidateFilter {\r\n const data = {} as IDtoJobCandidateFilter;\r\n data.positionId = form.position;\r\n data.age = form.age;\r\n data.zoneId = form.zone;\r\n data.stateId = form.state;\r\n data.town = form.town;\r\n data.suburb = form.suburb;\r\n data.area = form.area;\r\n data.schoolLevelId = form.schoolLevel;\r\n data.markId = form.trademark;\r\n data.availabilityId = form.availability;\r\n data.physicalComplexionId = form.physicalComplexion;\r\n data.gender = form.gender;\r\n data.birthDate = form.birthDate;\r\n data.typePosition = form.typePosition;\r\n data.hasCar = form.hasCar;\r\n data.skillId = form.skill;\r\n data.company = form.company;\r\n data.name = form.name;\r\n data.lastName = form.lastName;\r\n data.secondLastName = form.secondLastName;\r\n data.ageFrom = form.ageFrom;\r\n data.ageTo = form.ageTo;\r\n data.periodFrom = form.periodFrom;\r\n data.periodTo = form.periodTo;\r\n data.role = this.securityService.getProfileStorage('RequestReviews');\r\n data.initialize = initialize;\r\n data.trackingStatus = waiting;\r\n return data;\r\n }\r\n private openModalHireEmployee(row: IDtoJobCandidate) {\r\n const initialState = {\r\n title: 'Contratación de empleado',\r\n jobCandidate: row\r\n };\r\n this.modalRef = this.modalService.show(ModalHireEmployeeComponet\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result.isCorrect) {\r\n this.configGeneral.newToast('Éxito', result.message, 'success');\r\n this.jobCandidates = [...this.removeItem(row.id)];\r\n this.jobCandidatesTemp = this.jobCandidates;\r\n this.addModuleLog(row.id);\r\n } else {\r\n this.configGeneral.newToast('Error', result.message, 'error');\r\n }\r\n });\r\n }\r\n private removeItem(id) {\r\n return this.jobCandidates.filter(function (element) {\r\n return element.id != id;\r\n });\r\n }\r\n private navigateTo(row: IDtoJobCandidate): void {\r\n const values = this.formFilter.value;\r\n this.storageService.store('recruitments.filters', values);\r\n this.storageService.store('recruitments.search', this.search);\r\n this.router.navigate(['/recruitments/request',\r\n { id: row.id, action: 'update' }], { relativeTo: this.route });\r\n }\r\n private navigateToProfile(row: IDtoJobCandidate): void {\r\n const values = this.formFilter.value;\r\n this.storageService.store('recruitments.filters', values);\r\n this.storageService.store('recruitments.search', this.search);\r\n this.router.navigate(['/recruitments/profile',\r\n { id: row.id }], { relativeTo: this.route });\r\n }\r\n private getJobCandidate(jobCandidateId: number): void {\r\n this.recruitmentService.getJobCandidate(jobCandidateId).subscribe((res) => {\r\n let r = res;\r\n });\r\n }\r\n private getJobCandidates(): void {\r\n this.recruitmentService.getJobCandidates().subscribe((res) => {\r\n this.jobCandidates = res;\r\n this.jobCandidatesTemp = this.jobCandidates;\r\n this.spinner.hide();\r\n });\r\n }\r\n private getJobCandidatesFilters(initialize: boolean): void {\r\n if (!this.isManager()) {\r\n if (this.formFilter.value.zone == null) {\r\n this.snotifyService.error('Seleccione una zona a visualizar'\r\n , 'Validación', this.configToast);\r\n return;\r\n }\r\n }\r\n this.spinner.show();\r\n const data = this.mapFilters(this.formFilter.value, initialize, null);\r\n this.recruitmentService.getJobCandidatesFilters(data).subscribe((res) => {\r\n this.jobCandidates = res;\r\n this.jobCandidatesTemp = this.jobCandidates;\r\n this.spinner.hide();\r\n if (this.search != undefined) {\r\n this.updateFilter();\r\n }\r\n });\r\n }\r\n private getJobCandidatesWaiting(): void {\r\n this.spinner.show();\r\n const data = this.mapFilters(this.formFilter.value, false, 'Waiting');\r\n this.recruitmentService.getJobCandidatesFilters(data).subscribe((res) => {\r\n this.jobCandidates = res;\r\n this.jobCandidatesTemp = this.jobCandidates;\r\n this.spinner.hide();\r\n });\r\n }\r\n private downloadFileEmployeeTxt(): void {\r\n this.listIds = new Array();\r\n this.jobCandidates.forEach(element => {\r\n this.listIds.push(element.id);\r\n });\r\n if (this.listIds.length > 0) {\r\n this.swalProcessListEmployeeTxt.title = `Se enviarán para descarga ${this.listIds.length} registros`;\r\n this.swalProcessListEmployeeTxt.show();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'No existen registros para procesar', 'warning');\r\n }\r\n }\r\n private processListDownloadFileEmployeeTxt(): void {\r\n this.spinner.show();\r\n this.recruitmentService.downloadFileEmployeeTxt(this.listIds).subscribe((res) => {\r\n if (res.isCorrect) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n this.spinner.hide();\r\n saveAs(blob, file.fileDownloadName);\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private isManager(): boolean {\r\n return this.profile === 'Gerente'\r\n }\r\n private calculateAge(birthDate: Date): number {\r\n let age = 0;\r\n const d = new Date(birthDate);\r\n if (d) {\r\n const timeDiff = Math.abs(Date.now() - d.getTime());\r\n age = Math.floor((timeDiff / (1000 * 3600 * 24)) / 365);\r\n }\r\n return age;\r\n }\r\n public ngOnDestroy(): any {\r\n this.nav.classList.remove('white-bg');\r\n }\r\n private getCandidatesExcel(): void {\r\n this.spinner.show();\r\n const data = this.mapFilters(this.formFilter.value, false, null);\r\n this.recruitmentService.getCandidatesExcel(data).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n this.spinner.hide();\r\n saveAs(blob, file.fileDownloadName);\r\n }\r\n });\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n\r\n const val = this.search.toLowerCase();\r\n const temp = this.jobCandidatesTemp.filter((x: any) => x.status.toLowerCase().startsWith(val)\r\n || x.firstName.toLowerCase().startsWith(val)\r\n || x.suburb.toLowerCase().startsWith(val)\r\n || x.townName.toLowerCase().startsWith(val)\r\n || x.registryDate.toLowerCase().startsWith(val));\r\n\r\n this.jobCandidates = temp;\r\n this.tableJobCandidates.offset = 0;\r\n }\r\n\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'JobCandidates';\r\n dto.module = \"requestReviews\";\r\n dto.action = 'hiring';\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) =>{});\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\n.scroll-window {\\n width: 100%;\\n height: 370px;\\n font-size: 13px;\\n padding: 10px 20px 10px 0;\\n font-size: 15px;\\n line-height: 20px;\\n color: #000;\\n}\\n\\n.form-group {\\n font-weight: 500;\\n font-size: 12px;\\n}\\n\\n.m-b-dowload-excel {\\n margin-bottom: -20px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVjcnVpdG1lbnQvcmVxdWVzdC1yZXZpZXcvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxyZWNydWl0bWVudFxccmVxdWVzdC1yZXZpZXdcXHJlcXVlc3QtcmV2aWV3LnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlY3J1aXRtZW50L3JlcXVlc3QtcmV2aWV3L3JlcXVlc3QtcmV2aWV3LnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxpQkFBQTtBQ0FGOztBREVBO0VBQ0UsV0FBQTtFQUNBLGFBQUE7RUFDQSxlQUFBO0VBQ0EseUJBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0FDQ0Y7O0FEQ0E7RUFDRSxnQkFBQTtFQUNBLGVBQUE7QUNFRjs7QURBQTtFQUNFLG9CQUFBO0FDR0YiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZWNydWl0bWVudC9yZXF1ZXN0LXJldmlldy9yZXF1ZXN0LXJldmlldy5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG59XHJcbi5zY3JvbGwtd2luZG93IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDM3MHB4O1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAwO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICBsaW5lLWhlaWdodDogMjBweDtcclxuICBjb2xvcjogIzAwMDtcclxufVxyXG4uZm9ybS1ncm91cCB7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBmb250LXNpemU6IDEycHg7XHJcbn1cclxuLm0tYi1kb3dsb2FkLWV4Y2VsIHtcclxuICBtYXJnaW4tYm90dG9tOiAtMjBweDtcclxufSIsIi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn1cblxuLnNjcm9sbC13aW5kb3cge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzNzBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogIzAwMDtcbn1cblxuLmZvcm0tZ3JvdXAge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5tLWItZG93bG9hZC1leGNlbCB7XG4gIG1hcmdpbi1ib3R0b206IC0yMHB4O1xufSJdfQ== */\"","import { Component, OnDestroy, OnInit, ViewChild, HostListener, ElementRef } from '@angular/core';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalEmploymentHistoryComponet } from 'app/views/modales/recruitment/employment-history/modal-employment-history.component';\r\nimport { ModalLanguageComponet } from 'app/views/modales/recruitment/language/modal-language.component';\r\nimport { ModalReferenceComponet } from 'app/views/modales/recruitment/reference/modal-reference.component';\r\nimport { ModalStudyComponet } from 'app/views/modales/recruitment/study/modal-study.component';\r\nimport { RecruitmentService } from '../recruitment.service';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { IGeneralData } from 'app/shared/models/recruitment/general-data.model';\r\nimport { Observable } from 'rxjs';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { ModalAppearanceComponet } from 'app/views/modales/recruitment/appearance/modal-appearance.component';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { IAppearance } from 'app/shared/models/recruitment/appearance.model';\r\nimport { IStudy } from 'app/shared/models/recruitment/study.model';\r\nimport { IEmploymentHistory } from 'app/shared/models/recruitment/employment-history.model';\r\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\r\nimport { IRecruiterComment } from 'app/shared/models/recruitment/recruiter-comment.model';\r\nimport { ISkillItem } from 'app/shared/models/recruitment/skill-item.model';\r\nimport { ITrademarkItem } from 'app/shared/models/recruitment/trademark-item.model';\r\nimport { IDocument } from 'app/shared/models/recruitment/document.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { OpeningService } from '../../opening/opening.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { DialogService } from '../../../../shared/services/dialog.service';\r\nimport { IEmploymentHistoryItem } from 'app/shared/models/recruitment/employment-history-item.model';\r\nimport { ModalEmploymentHistoryCommentsComponent } from 'app/views/modales/recruitment/employment-history/modal-employment-history-comments.component';\r\nimport { CustomerService } from '../../quote/customer.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\n@Component({\r\n selector: 'app-request',\r\n styleUrls: ['./request.style.scss'],\r\n templateUrl: 'request.template.html'\r\n})\r\nexport class RequestComponent implements OnDestroy, OnInit {\r\n\r\n @HostListener('window:beforeunload', ['$event'])\r\n doSomething($event) {\r\n if (this.formGeneralData.dirty || this.formDocuments.dirty || this.formEmploymentHistory.dirty\r\n || this.formRecruiterComments.dirty || this.formStudy.dirty)\r\n $event.returnValue = '';\r\n }\r\n canDeactivate(): Observable | boolean {\r\n if (this.formGeneralData.dirty || this.formDocuments.dirty || this.formEmploymentHistory.dirty\r\n || this.formRecruiterComments.dirty || this.formStudy.dirty) {\r\n const confirmation = window.confirm('No se han guardado los cambios ¿Desea continuar?');\r\n return Observable.of(confirmation);\r\n }\r\n return true;\r\n }\r\n\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Formularios */\r\n private formGeneralData: FormGroup;\r\n private formPhysicalComplexion: FormGroup;\r\n private formEmploymentHistory: FormGroup;\r\n private formStudy: FormGroup;\r\n private formRecruiterComments: FormGroup;\r\n private formDocuments: FormGroup;\r\n @ViewChild('addSwal', { static: false }) private addSwal: SwalComponent;\r\n @ViewChild('deleteSwal', { static: false }) private deleteSwal: SwalComponent;\r\n @ViewChild('selectRecruiter', { static: false }) private selectRecruiter: ElementRef;\r\n /**Catalogos */\r\n private catalogGenders: ISelect[];\r\n private catalogZones: ISelect[];\r\n private catalogMaritalStatus: ISelect[];\r\n private catalogSources: ISelect[];\r\n private catalogSizes: ISelect[];\r\n private catalogShirtSizes: ISelect[];\r\n private catalogPhoneCompanies: Observable;\r\n private catalogPhonePlans: Observable;\r\n private catalogGenderSizes: ISelect[];\r\n private catalogStates: ISelect[];\r\n private catalogPhysicalComplexion: ISelect[];\r\n private catalogSchoolLevels: ISelect[];\r\n private catalogStatures: ISelect[];\r\n private catalogShoeSizes: ISelect[];\r\n private catalogPositions: ISelect[];\r\n private catalogRequisitions: ISelect[];\r\n private catalogEducationLevels: ISelect[];\r\n private catalogDocumentsReceived: ISelect[];\r\n private catalogAvailabilitys: ISelect[];\r\n private catalogReasonsOfExit: ISelect[];\r\n private catalogTrademarks: Observable;\r\n private catalogPatrimonialRegimes: Observable;\r\n private catalogSkills: ISelect[];\r\n private catalogTrackingStatus: ISelect[];\r\n private catalogTowns: ISelect[];\r\n private catalogRecruiters: ISelect[];\r\n private catalogDocuments: Observable;\r\n private generalData = {} as IGeneralData;\r\n private study = {} as IStudy;\r\n private employmentHistory: IEmploymentHistory;\r\n private appearance: IAppearance;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Radios */\r\n private hasChildren: boolean;\r\n private isForeigner: number;\r\n private isFieldWork: number;\r\n private hasCar: boolean;\r\n private hasValidID: boolean;\r\n private hasFamilyWorking: boolean;\r\n private hasInfonavit: boolean;\r\n private hasTattoo: boolean;\r\n private hasPiercing: boolean;\r\n private hasDisease: boolean;\r\n private hasSurgery: boolean;\r\n private hasDebt: boolean;\r\n private gender: string;\r\n /**Listas */\r\n private workHistories = [];\r\n private tempWorkHistories = [];\r\n private tempReferences = [];\r\n private references = [];\r\n /** */\r\n @ViewChild(DatatableComponent, { static: false }) tableWorkHistories: DatatableComponent;\r\n @ViewChild(DatatableComponent, { static: false }) tableReferences: DatatableComponent;\r\n /** */\r\n @ViewChild('tab1', { static: false }) private tab1;\r\n @ViewChild('tab2', { static: false }) private tab2;\r\n @ViewChild('tab3', { static: false }) private tab3;\r\n @ViewChild('tab4', { static: false }) private tab4;\r\n @ViewChild('tab5', { static: false }) private tab5;\r\n @ViewChild('tab6', { static: false }) private tab6;\r\n private referenceTypeLabelsMap = {\r\n 'F': '

Familiar

',\r\n 'P': '

Personal

'\r\n };\r\n /**Variables */\r\n private now: number;\r\n private section: string;\r\n public nav: any;\r\n private action = 'new';\r\n private routeType: string;\r\n private file: File;\r\n private navigationSubscription: any;\r\n private employmentHistoryItem: IEmploymentHistoryItem;\r\n public constructor(private modalService: BsModalService\r\n , private recruitmentService: RecruitmentService\r\n , private openingService: OpeningService\r\n , private formBuilder: FormBuilder\r\n , public configGeneral: AppConfig\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private dialogService: DialogService\r\n , private customerService: CustomerService\r\n , private identityService: IdentityService) {\r\n this.nav = document.querySelector('nav.navbar');\r\n this.initializeFormGeneralData();\r\n this.initializeFormEmploymentHistory();\r\n this.initializeFormStudy();\r\n this.initializeFormRecruiterComments();\r\n this.initializeFormDocuments();\r\n this.navigationSubscription = this.router.events.subscribe((e: any) => {\r\n if (e instanceof NavigationEnd) {\r\n this.initialiseRoute();\r\n }\r\n });\r\n }\r\n private initialiseRoute() {\r\n this.resetForm();\r\n }\r\n public ngOnDestroy(): any {\r\n this.nav.classList.remove('white-bg');\r\n if (this.navigationSubscription) {\r\n this.navigationSubscription.unsubscribe();\r\n }\r\n }\r\n validarApellidos() {\r\n const apellidoPaterno = this.formGeneralData.get('lastName').value;\r\n const apellidoMaterno = this.formGeneralData.get('secondLastName').value;\r\n\r\n if (!apellidoPaterno && !apellidoMaterno) {\r\n return false;\r\n }\r\n\r\n const trimmedPaterno = apellidoPaterno ? apellidoPaterno.trim() : '';\r\n const trimmedMaterno = apellidoMaterno ? apellidoMaterno.trim() : '';\r\n\r\n if (trimmedPaterno.length === 0 && trimmedMaterno.length === 0) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public ngOnInit(): any {\r\n if (this.configurationService.isReady) {\r\n this.obetenerCatalogos();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.obetenerCatalogos();\r\n });\r\n }\r\n this.generalData.registryDate = new Date();\r\n this.generalData.lasUpdateDate = new Date();\r\n //this.nav.className += ' white-bg';\r\n\r\n this.route.params.subscribe((params) => {\r\n if (params['id']) {\r\n setTimeout(() => {\r\n this.spinner.show();\r\n this.getJobCandidate(Number(params['id']));\r\n this.action = params['action'];\r\n this.routeType = params['routeType'];\r\n if (this.selectRecruiter != undefined) {\r\n (this.selectRecruiter).setDisabledState(true);\r\n }\r\n }, 2);\r\n\r\n }\r\n });\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private access(): boolean {\r\n const profile = this.securityService.getProfileStorage('Request');\r\n return profile !== 'Usuario'\r\n }\r\n private accessWrite(): boolean {\r\n const profile = this.securityService.getProfileStorage('Request');\r\n return profile !== 'Consulta'\r\n }\r\n private accessComments(): boolean {\r\n const profile = this.securityService.getProfileStorage('Request');\r\n if (profile == 'Consulta' || profile == 'Usuario') {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n private handleFileInput(item: IDocument, files: FileList) {\r\n const file = files.item(0);\r\n let ext = file.name.split('.').pop().toLowerCase();;\r\n if (this.validateExt(ext, item.type)) {\r\n this.upload(item, file);\r\n } else {\r\n this.configGeneral.newToast('Validación', `Asegúrese de seleccionar el tipo de archivo correcto (${item.type})`, 'error');\r\n }\r\n }\r\n private validateExt(ext: string, listExts: string): boolean {\r\n const list = listExts.split(',').map(x => x.trim().toLowerCase());\r\n const e = list.filter(x => x === `.${ext}`)[0];\r\n if (e == undefined) {\r\n return false\r\n } else {\r\n return true;\r\n }\r\n }\r\n // private validateExtension(ext: string, item: IDocument): boolean {\r\n // switch (item.documentName) {\r\n // case 'Foto':\r\n // if (this.validateExt(ext, item.type)) {\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n // default:\r\n // if (this.validateExt(ext, item.type)) {\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n // }\r\n // }\r\n private upload(item: IDocument, file: File): void {\r\n this.spinner.show();\r\n if (this.generalData.id === undefined || this.generalData.id === 0) {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Validación', 'Capture y guarde información general primeramente', 'error');\r\n return;\r\n }\r\n //const file = files.item(0);\r\n if (file.size > 2097152) {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Validación', 'No es posible subir documentos con un peso mayor a 2MB', 'error');\r\n return;\r\n }\r\n item.fileName = file.name;\r\n item.jobCandidateId = this.generalData.id;\r\n item.id = 0;\r\n this.recruitmentService.uploadFile(item, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const doc = res.data as IDocument;\r\n item.fileName = doc.fileName;\r\n item.path = doc.path;\r\n item.id = doc.id;\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Éxito', 'Documento cargado correctamente', 'success');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.message, 'error');\r\n });\r\n }\r\n private deleteFile(item: IDocument): void {\r\n if (item.id == undefined) {\r\n return;\r\n }\r\n this.recruitmentService.deleteFile(item.id).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n item.fileName = undefined;\r\n item.path = undefined;\r\n item.id = undefined;\r\n this.configGeneral.newToast('Éxito', 'Documento eliminado correctamente', 'success');\r\n }\r\n });\r\n }\r\n private downloadFile(item: IDocument): void {\r\n if (item.id == undefined) {\r\n return;\r\n }\r\n this.recruitmentService.downloadFile(item.id).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n }\r\n });\r\n }\r\n private getJobCandidate(jobCandidateId: number): void {\r\n this.recruitmentService.getJobCandidate(jobCandidateId).subscribe((res) => {\r\n this.generalData = res;\r\n\r\n if (this.generalData.ageChildrens != null){\r\n const childrens = this.generalData.ageChildrens.split(\",\");\r\n const maxChildren = 5;\r\n\r\n const NameChildrenArray = [this.generalData.nameChildren1, this.generalData.nameChildren2, this.generalData.nameChildren3, this.generalData.nameChildren4, this.generalData.nameChildren5];\r\n const AgeChildrenArray = [this.generalData.ageChildren1, this.generalData.ageChildren2, this.generalData.ageChildren3, this.generalData.ageChildren4, this.generalData.ageChildren5];\r\n\r\n const assignNameAndAge = (nameIndex: number, ageIndex: number, name: string, age: number) => {\r\n NameChildrenArray[nameIndex] = name;\r\n AgeChildrenArray[ageIndex] = age;\r\n };\r\n\r\n for (let i = 0; i < Math.min(childrens.length, maxChildren); i++) {\r\n const child = childrens[i];\r\n const [name, ageString] = child.split(\" - \");\r\n let age = parseInt(ageString);\r\n if (isNaN(age)) {\r\n age = null;\r\n }\r\n assignNameAndAge(i, i, name.trim(), age);\r\n }\r\n\r\n [this.generalData.nameChildren1, this.generalData.nameChildren2, this.generalData.nameChildren3, this.generalData.nameChildren4, this.generalData.nameChildren5] = NameChildrenArray;\r\n [this.generalData.ageChildren1, this.generalData.ageChildren2, this.generalData.ageChildren3, this.generalData.ageChildren4, this.generalData.ageChildren5] = AgeChildrenArray;\r\n }\r\n\r\n this.getCatalogTowns(this.generalData.stateId);\r\n this.setJobCandidateGeneralData();\r\n this.setJobCandidateEmploymentHistory();\r\n this.setJobCandidateStudy();\r\n this.setJobCandidateRecruiterComment();\r\n if (this.generalData.jobCandidateDocuments != null) {\r\n if (this.generalData.jobCandidateDocuments.length > 0) {\r\n this.catalogDocuments.subscribe((docs) => {\r\n docs.forEach(element => {\r\n const d = this.generalData.jobCandidateDocuments.filter(x => x.documentName === element.documentName)[0];\r\n if (d !== undefined) {\r\n element.fileName = d.fileName;\r\n element.path = d.path;\r\n element.id = d.id;\r\n }\r\n });\r\n })\r\n }\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private navigateTo(): void {\r\n this.resetForm();\r\n this.router.navigate(['/recruitments/request'], { relativeTo: this.route });\r\n }\r\n private resetForm(): void {\r\n if (this.selectRecruiter != undefined) {\r\n (this.selectRecruiter).setDisabledState(false);\r\n }\r\n this.generalData = {} as IGeneralData;\r\n this.generalData.registryDate = new Date();\r\n this.generalData.lasUpdateDate = new Date();\r\n this.action = 'new';\r\n this.formGeneralData.reset();\r\n this.formEmploymentHistory.reset();\r\n this.formStudy.reset();\r\n this.formRecruiterComments.reset();\r\n this.workHistories = [];\r\n this.tempWorkHistories = [];\r\n this.tempReferences = [];\r\n this.references = [];\r\n this.appearance = null;\r\n if (this.catalogDocuments != undefined) {\r\n this.catalogDocuments.subscribe((docs) => {\r\n docs.forEach(element => {\r\n element.fileName = undefined;\r\n element.path = undefined;\r\n element.id = undefined;\r\n });\r\n })\r\n }\r\n }\r\n private isNew(): boolean {\r\n if (this.generalData.id === undefined || this.generalData.id === 0) {\r\n return true;\r\n }\r\n }\r\n private validateSectionReferences(): boolean {\r\n if (this.section === 'references') {\r\n if (this.references === undefined || this.references === null || this.references.length === 0) {\r\n this.tab3.nativeElement.checked = true;\r\n this.configGeneral.newToast('Validación', 'Debe capturar por lo menos 1 referencia personal y 1 familiar', 'warning');\r\n return false;\r\n }\r\n const numRefFam = this.references.filter(x => x.referenceType === 'F').length;\r\n const numRefPer = this.references.filter(x => x.referenceType === 'P').length;\r\n if (numRefFam < 1 || numRefPer < 1) {\r\n this.tab3.nativeElement.checked = true;\r\n this.configGeneral.newToast('Validación', 'Debe capturar por lo menos 1 referencia personal y 1 familiar', 'warning');\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n private setSectionGeneralData(): void {\r\n if (this.isNew()) {\r\n return;\r\n }\r\n if (this.validateSectionReferences()) {\r\n this.section = 'generalData';\r\n }\r\n }\r\n private setSectionEmploymentHistory(): void {\r\n if (this.isNew()) {\r\n return;\r\n }\r\n if (this.validateSectionReferences()) {\r\n this.section = 'employmentHistory';\r\n }\r\n }\r\n private setSectionReferences(): void {\r\n if (this.isNew()) {\r\n return;\r\n }\r\n if (this.access()) {\r\n return;\r\n }\r\n if (this.validateSectionReferences()) {\r\n this.section = 'references';\r\n }\r\n }\r\n private setSectionStudy(): void {\r\n if (this.isNew()) {\r\n return;\r\n }\r\n if (this.validateSectionReferences()) {\r\n this.section = 'study';\r\n }\r\n }\r\n private setSectionRecruiterComments(): void {\r\n if (this.isNew()) {\r\n return;\r\n }\r\n if (this.validateSectionReferences()) {\r\n this.section = 'recruiterComments';\r\n }\r\n }\r\n private setSectionDocuments(): void {\r\n if (this.isNew()) {\r\n return;\r\n }\r\n if (this.validateSectionReferences()) {\r\n this.section = 'documents';\r\n }\r\n }\r\n private obetenerCatalogos(): void {\r\n this.getCatalogStates();\r\n this.getCatalogZones();\r\n this.getCatalogMaritalStatus();\r\n this.getCatalogSources();\r\n this.getCatalogSizes();\r\n this.getCatalogShirtSizes();\r\n this.getCatalogPhoneCompanies();\r\n this.getCatalogPhonePlans();\r\n this.getCatalogPhysicalComplexions();\r\n this.getCatalogSchoolLevels();\r\n this.getCatalogMaritalStatus();\r\n this.getCatalogStatures();\r\n this.getCatalogShoeSizes();\r\n this.getCatalogPositions();\r\n //this.getCatalogRequisitions();\r\n this.getCatalogEducationLevels();\r\n this.getCatalogDocumentsReceived();\r\n this.getCatalogAvailabilitys();\r\n this.getCatalogReasonsOfExit();\r\n this.getCatalogSkills();\r\n this.getCatalogTrackingStatus();\r\n this.getCatalogRecruiters();\r\n this.catalogDocuments = this.recruitmentService.getCatalogDocumens();\r\n this.catalogTrademarks = this.customerService.getCatalogCustomers();\r\n this.catalogPatrimonialRegimes = this.recruitmentService.getCatalogPatrimonialRegimes();\r\n this.catalogDocuments.subscribe((docs) => {\r\n docs.forEach(element => {\r\n element.fileName = null;\r\n element.path = null;\r\n element.id = null;\r\n });\r\n });\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'hasChildren':\r\n this.hasChildren = $event.value;\r\n break;\r\n case 'typePosition':\r\n this.isFieldWork = $event.value;\r\n if (this.isFieldWork === 0) {\r\n this.openModalAppearance();\r\n }\r\n break;\r\n case 'nationality':\r\n this.isForeigner = $event.value;\r\n if (this.isForeigner === 1) {\r\n this.formGeneralData.get('nationalityName').setValidators([Validators.required, Validators.maxLength(100)]);\r\n } else {\r\n this.formGeneralData.get('nationalityName').setValidators(null);\r\n }\r\n this.formGeneralData.get('nationalityName').updateValueAndValidity();\r\n break;\r\n case 'hasCar':\r\n this.hasCar = $event.value;\r\n if (this.hasCar) {\r\n this.formRecruiterComments.get('carDescription').setValidators([Validators.required, Validators.maxLength(1000)]);\r\n } else {\r\n this.formRecruiterComments.get('carDescription').setValidators(null);\r\n }\r\n this.formRecruiterComments.get('carDescription').updateValueAndValidity();\r\n break;\r\n case 'hasValidID':\r\n this.hasValidID = $event.value;\r\n if (!this.hasValidID) {\r\n this.formRecruiterComments.get('idReason').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.formRecruiterComments.get('idReason').setValidators(null);\r\n }\r\n this.formRecruiterComments.get('idReason').updateValueAndValidity();\r\n break;\r\n case 'hasFamilyWorking':\r\n this.hasFamilyWorking = $event.value;\r\n if (this.hasFamilyWorking) {\r\n this.formRecruiterComments.get('familyName').setValidators([Validators.required, Validators.maxLength(150)]);\r\n this.formRecruiterComments.get('trademarkWork').setValidators([Validators.required, Validators.maxLength(200)]);\r\n this.formRecruiterComments.get('familyRelationship').setValidators([Validators.required, Validators.maxLength(200)]);\r\n } else {\r\n this.formRecruiterComments.get('familyName').setValidators(null);\r\n this.formRecruiterComments.get('trademarkWork').setValidators(null);\r\n this.formRecruiterComments.get('familyRelationship').setValidators(null);\r\n }\r\n this.formRecruiterComments.get('familyName').updateValueAndValidity();\r\n this.formRecruiterComments.get('trademarkWork').updateValueAndValidity();\r\n this.formRecruiterComments.get('familyRelationship').updateValueAndValidity();\r\n break;\r\n case 'hasInfonavit':\r\n this.hasInfonavit = $event.value;\r\n if (this.hasInfonavit) {\r\n this.formRecruiterComments.get('monthlyDiscount').setValidators([Validators.required]);\r\n } else {\r\n this.formRecruiterComments.get('monthlyDiscount').setValidators(null);\r\n }\r\n this.formRecruiterComments.get('monthlyDiscount').updateValueAndValidity();\r\n break;\r\n case 'hasTattoo':\r\n this.hasTattoo = $event.value;\r\n if (this.hasTattoo) {\r\n this.formRecruiterComments.get('tattooComments').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.formRecruiterComments.get('tattooComments').setValidators(null);\r\n }\r\n this.formRecruiterComments.get('tattooComments').updateValueAndValidity();\r\n break;\r\n case 'hasPiercing':\r\n this.hasPiercing = $event.value;\r\n if (this.hasPiercing) {\r\n this.formRecruiterComments.get('piercingComments').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.formRecruiterComments.get('piercingComments').setValidators(null);\r\n }\r\n this.formRecruiterComments.get('piercingComments').updateValueAndValidity();\r\n break;\r\n case 'hasDisease':\r\n this.hasDisease = $event.value;\r\n if (this.hasDisease) {\r\n this.formRecruiterComments.get('diseaseComments').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.formRecruiterComments.get('diseaseComments').setValidators(null);\r\n }\r\n this.formRecruiterComments.get('diseaseComments').updateValueAndValidity();\r\n break;\r\n case 'hasSurgery':\r\n this.hasSurgery = $event.value;\r\n if (this.hasSurgery) {\r\n this.formRecruiterComments.get('surgeryComments').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.formRecruiterComments.get('surgeryComments').setValidators(null);\r\n }\r\n this.formRecruiterComments.get('surgeryComments').updateValueAndValidity();\r\n break;\r\n case 'hasDebt':\r\n this.hasDebt = $event.value;\r\n if (this.hasDebt) {\r\n this.formRecruiterComments.get('debitBank').setValidators([Validators.required, Validators.maxLength(200)]);\r\n this.formRecruiterComments.get('debtAmount').setValidators([Validators.required]);\r\n } else {\r\n this.formRecruiterComments.get('debitBank').setValidators(null);\r\n this.formRecruiterComments.get('debtAmount').setValidators(null);\r\n }\r\n this.formRecruiterComments.get('debitBank').updateValueAndValidity();\r\n this.formRecruiterComments.get('debtAmount').updateValueAndValidity();\r\n break;\r\n case 'gender':\r\n this.gender = $event.value;\r\n this.catalogGenderSizes = this.catalogSizes.filter(x => x.additional === this.gender);\r\n break;\r\n }\r\n }\r\n public getError(controlName: string): any {\r\n let error = '';\r\n let obj = {} as any;\r\n const control = this.formGeneralData.get(controlName);\r\n switch (controlName) {\r\n case 'stateBirth':\r\n case 'state':\r\n case 'maritalStatus':\r\n case 'hasChildren':\r\n case 'schoolLevel':\r\n case 'typePosition':\r\n case 'interestPosition':\r\n case 'recruitmentSource':\r\n case 'patrimonialRegimeId':\r\n case 'phoneCompany':\r\n if (control.errors != null) {\r\n error = JSON.stringify(control.errors);\r\n obj = JSON.parse(error);\r\n }\r\n break;\r\n default:\r\n if (control.touched && control.errors != null) {\r\n error = JSON.stringify(control.errors);\r\n obj = JSON.parse(error);\r\n }\r\n break;\r\n }\r\n\r\n return obj;\r\n }\r\n private dateChange($event: Date) {\r\n this.formGeneralData.get('age').setValue(this.calculateAge($event));\r\n }\r\n private calculateAge(birthDate: Date): number {\r\n let age = 0;\r\n if (birthDate) {\r\n const timeDiff = Math.abs(Date.now() - birthDate.getTime());\r\n age = Math.floor((timeDiff / (1000 * 3600 * 24)) / 365);\r\n }\r\n return age;\r\n }\r\n private initializeFormGeneralData() {\r\n this.formGeneralData = this.formBuilder.group({\r\n firstName: [null, [Validators.required, Validators.maxLength(50)]],\r\n lastName: [null, [Validators.maxLength(40)]],\r\n secondLastName: [null, Validators.maxLength(40)],\r\n birthDate: [null, Validators.required],\r\n age: [null],\r\n stateBirth: [null, Validators.required],\r\n gender: [null, Validators.required],\r\n curp: [null, [Validators.required, Validators.minLength(18), Validators.maxLength(18)]],\r\n rfc: [null, [Validators.required, Validators.minLength(13), Validators.maxLength(13)]],\r\n imss: [null, [Validators.required, Validators.minLength(11), Validators.maxLength(11)]],\r\n typePosition: [null, Validators.required],\r\n interestPosition: [null, Validators.required],\r\n recruitmentSource: [null, Validators.required],\r\n sourceName: [null, [Validators.required, Validators.maxLength(100)]],\r\n personalNumber: [null, [Validators.required, Validators.minLength(10), Validators.maxLength(10)]],\r\n phone: [null, [Validators.required, Validators.minLength(10), Validators.maxLength(10)]],\r\n email: [null, [Validators.required, Validators.email, Validators.maxLength(100)]],\r\n maritalStatus: [null, Validators.required],\r\n hasChildren: [null, Validators.required],\r\n ageChildrens: [null],\r\n street: [null, [Validators.required, Validators.maxLength(100)]],\r\n interiorNumber: [null, Validators.maxLength(10)],\r\n externalNumber: [null, [Validators.required, Validators.maxLength(10)]],\r\n postalCode: [null, [Validators.required, Validators.minLength(5), Validators.maxLength(5)]],\r\n suburb: [null, [Validators.required, Validators.maxLength(50)]],\r\n state: [null, Validators.required],\r\n town: [null, Validators.required],\r\n nationality: [null, Validators.required],\r\n nationalityName: [null],\r\n schoolLevel: [null, Validators.required],\r\n recruiterId: [null, Validators.required],\r\n patrimonialRegimeId: [null],\r\n taxStreet: [null],\r\n taxInteriorNumber: [null],\r\n taxExternalNumber: [null],\r\n taxPostalCode: [null],\r\n taxSuburb: [null],\r\n taxState: [null],\r\n taxTown: [null],\r\n phoneCompanyId: [null, Validators.required],\r\n phonePlanId: [null, Validators.required],\r\n nameChildren1: [null],\r\n nameChildren2: [null],\r\n nameChildren3: [null],\r\n nameChildren4: [null],\r\n nameChildren5: [null],\r\n ageChildren1: [null],\r\n ageChildren2: [null],\r\n ageChildren3: [null],\r\n ageChildren4: [null],\r\n ageChildren5: [null],\r\n });\r\n }\r\n private initializeFormEmploymentHistory() {\r\n this.formEmploymentHistory = this.formBuilder.group({\r\n monthlySalary: [null, [Validators.required]],\r\n availability: [null, Validators.required],\r\n hasExperience: [null, Validators.required],\r\n comments: [null, [Validators.maxLength(1000)]]\r\n });\r\n }\r\n private initializeFormStudy() {\r\n this.formStudy = this.formBuilder.group({\r\n schoolLevel: [null, Validators.required],\r\n levelEducation: [null, Validators.required],\r\n institute: [null, [Validators.required, Validators.maxLength(100)]],\r\n documentReceived: [null, Validators.required],\r\n periodFrom: [null, Validators.required],\r\n periodTo: [null, Validators.required]\r\n });\r\n }\r\n private initializeFormDocuments() {\r\n this.formDocuments = this.formBuilder.group({\r\n tableDocuments: [null]\r\n });\r\n }\r\n private initializeFormRecruiterComments() {\r\n this.formRecruiterComments = this.formBuilder.group({\r\n positionNOM: [null, Validators.required],\r\n hasCar: [null, Validators.required],\r\n hasHouse: [null, Validators.required],\r\n carDescription: [null],\r\n hasDebt: [null, Validators.required],\r\n debitBank: [null],\r\n debtAmount: [null],\r\n monthlyExpense: [null, Validators.required],\r\n hasValidID: [null, Validators.required],\r\n hasFamilyWorking: [null, Validators.required],\r\n familyName: [null],\r\n trademarkWork: [null],\r\n hasInfonavit: [null, Validators.required],\r\n monthlyDiscount: [null],\r\n hasTattoo: [null, Validators.required],\r\n tattooComments: [null],\r\n hasPiercing: [null, Validators.required],\r\n piercingComments: [null],\r\n hasDisease: [null, Validators.required],\r\n diseaseComments: [null],\r\n hasSurgery: [null, Validators.required],\r\n alimony: [null, Validators.required],\r\n surgeryComments: [null],\r\n trackingStatus: [null],\r\n trademark: [null, Validators.required],\r\n skill: [null],\r\n additionalComments: [null, [Validators.maxLength(1000)]],\r\n responsableName: [null, [Validators.required, Validators.maxLength(150)]],\r\n responsablePositionId: [null, Validators.required],\r\n idReason: [null],\r\n trademarkId: [null, Validators.required],\r\n positionType: [null, Validators.required],\r\n availabilityTravel: [null, Validators.required],\r\n familyRelationship: [null],\r\n });\r\n }\r\n private openModalEmploymentmentHistory(item: any, action: string) {\r\n if (this.generalData.id === undefined || this.generalData.id === 0) {\r\n this.configGeneral.newToast('Validación', 'Capture y guarde información general primeramente', 'error');\r\n return;\r\n }\r\n const catalogs = new Array() as Array;\r\n catalogs.push(this.catalogReasonsOfExit);\r\n const initialState = {\r\n employmentHistoryItem: item,\r\n listCatalogs: catalogs,\r\n title: 'Alta de historial de candidato'\r\n };\r\n this.modalRef = this.modalService.show(ModalEmploymentHistoryComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n if (result.id > 0) {\r\n const index = this.workHistories.indexOf(item, 0);\r\n if (index > -1) {\r\n this.workHistories.splice(index, 1);\r\n }\r\n this.workHistories.push(result);\r\n this.workHistories = [...this.workHistories];\r\n } else {\r\n if (action === 'edit') {\r\n const index = this.workHistories.indexOf(item, 0);\r\n if (index > -1) {\r\n this.workHistories.splice(index, 1);\r\n }\r\n this.workHistories.push(result);\r\n this.workHistories = [...this.workHistories];\r\n } else {\r\n this.workHistories.push(result);\r\n this.workHistories = [...this.workHistories];\r\n }\r\n }\r\n this.configGeneral.newToast('Validación', 'Debe presionar Guardar datos para procesar correctamente la información', 'warning');\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private openModalHistoryComments(item: IEmploymentHistoryItem) {\r\n const initialState = {\r\n historyItem: item,\r\n title: 'Comentario laboral de reclutamiento'\r\n };\r\n this.modalRef = this.modalService.show(ModalEmploymentHistoryCommentsComponent\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n item.commentHistory = result.commentHistory;\r\n this.workHistories = [...this.workHistories]\r\n this.configGeneral.newToast('Éxito', 'Comentarios guardados correctamente', 'success');\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private openModalLanguage(item: any, accion: string) {\r\n const initialState = {\r\n title: 'Alta de idiomas del candidato'\r\n };\r\n this.modalRef = this.modalService.show(ModalLanguageComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n }\r\n private openModalReference(item: any, accion: string) {\r\n if (this.generalData.id === undefined || this.generalData.id === 0) {\r\n this.configGeneral.newToast('Validación', 'Capture y guarde información general primeramente', 'error');\r\n return;\r\n }\r\n const initialState = {\r\n jobCandidateId: this.generalData.id,\r\n title: 'Alta de referencia familiar/personal del candidato'\r\n };\r\n this.modalRef = this.modalService.show(ModalReferenceComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n if (this.references === null) {\r\n this.references = [];\r\n }\r\n this.references.push(result);\r\n this.references = [...this.references]\r\n this.configGeneral.newToast('Éxito', 'Registros guardados correctamente', 'success');\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos', 'error');\r\n }\r\n });\r\n }\r\n private openModalStudy(item: any, accion: string) {\r\n const initialState = {\r\n title: 'Alta de estudios del candidato'\r\n };\r\n this.modalRef = this.modalService.show(ModalStudyComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n }\r\n private openModalAppearance() {\r\n if (this.formGeneralData.controls['gender'].value === null) {\r\n this.configGeneral.newToast('Validación', 'Es necesario capturar primero su sexo', 'error');\r\n return;\r\n }\r\n const catalogs = new Array() as Array;\r\n catalogs.push(this.catalogGenderSizes);\r\n catalogs.push(this.catalogPhysicalComplexion);\r\n catalogs.push(this.catalogStatures);\r\n catalogs.push(this.catalogShoeSizes);\r\n catalogs.push(this.catalogShirtSizes);\r\n const initialState = {\r\n listCatalogs: catalogs,\r\n title: 'Información de complexión física del candidato',\r\n action: this.action,\r\n appearance: this.appearance\r\n };\r\n this.modalRef = this.modalService.show(ModalAppearanceComponet\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.appearance = result;\r\n }\r\n });\r\n }\r\n private submitDeleteEmploymentHistoryItem(item: IEmploymentHistoryItem) {\r\n this.employmentHistoryItem = item;\r\n this.deleteSwal.title = 'Se eliminará el historial laboral seleccionado.';\r\n this.deleteSwal.show();\r\n }\r\n private deleteEmploymentHistoryItem(): void {\r\n if (this.employmentHistoryItem.id > 0) {\r\n this.recruitmentService.deleteEmploymentHistoyItem(this.employmentHistoryItem.id).subscribe(\r\n (x) => {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n const index = this.workHistories.indexOf(this.employmentHistoryItem, 0);\r\n if (index > -1) {\r\n this.workHistories.splice(index, 1);\r\n }\r\n //this.workHistories = [...this.removeEmploymentHistoryItem(this.employmentHistoryItem.id)];\r\n this.workHistories = [...this.workHistories];\r\n });\r\n } else {\r\n const index = this.workHistories.indexOf(this.employmentHistoryItem, 0);\r\n if (index > -1) {\r\n this.workHistories.splice(index, 1);\r\n }\r\n this.workHistories = [...this.workHistories];\r\n }\r\n }\r\n private removeEmploymentHistoryItem(id) {\r\n return this.workHistories.filter(function (element) {\r\n return element.id != id;\r\n });\r\n }\r\n submitForm(formName: string, form: FormGroup) {\r\n this.section = formName;\r\n if (form.valid) {\r\n switch (this.section) {\r\n case 'generalData':\r\n if (this.formGeneralData.value.typePosition === 0) {\r\n if (this.appearance === null || this.appearance === undefined) {\r\n this.configGeneral.newToast('Validación', 'Es necesario capturar su información de apariencia para poder continuar', 'error');\r\n return;\r\n }\r\n }\r\n if (!this.validarApellidos()) {\r\n this.configGeneral.newToast('Validación', `Debe escribir al menos un apellido`, 'error');\r\n return;\r\n }\r\n break;\r\n case 'study':\r\n if (this.generalData.id === undefined || this.generalData.id === 0) {\r\n this.configGeneral.newToast('Validación', 'Capture y guarde información general primeramente para poder guardar esta sección', 'error');\r\n return;\r\n }\r\n break;\r\n case 'employmentHistory':\r\n if (this.generalData.id === undefined || this.generalData.id === 0) {\r\n this.configGeneral.newToast('Validación', 'Capture y guarde información general primeramente para poder guardar esta sección', 'error');\r\n return;\r\n }\r\n if (this.formEmploymentHistory.value.hasExperience) {\r\n if (this.workHistories.length === 0) {\r\n this.configGeneral.newToast('Validación', 'No existe historial laboral. Capture para poder guardar esta sección', 'warning');\r\n return;\r\n }\r\n }\r\n break;\r\n case 'recruiterComments':\r\n if (this.generalData.id === undefined || this.generalData.id === 0) {\r\n this.configGeneral.newToast('Validación', 'Capture y guarde información general primeramente para poder guardar esta sección', 'error');\r\n return;\r\n }\r\n break;\r\n }\r\n this.addSwal.title = 'Sus datos serán enviados a reclutamiento para su revisión.';\r\n this.addSwal.show();\r\n } else {\r\n this.touchedControls(form);\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continua', 'error');\r\n }\r\n }\r\n save(): void {\r\n let data: any;\r\n switch (this.section) {\r\n case 'generalData':\r\n data = this.mapGeneralData(this.formGeneralData.value);\r\n break;\r\n case 'study':\r\n data = this.mapStudy(this.formStudy.value);\r\n break;\r\n case 'employmentHistory':\r\n data = this.mapEmploymentHistory(this.formEmploymentHistory.value);\r\n break;\r\n case 'recruiterComments':\r\n data = this.mapRecruiterComments(this.formRecruiterComments.value);\r\n break;\r\n }\r\n switch (this.action) {\r\n case 'update':\r\n this.spinner.show();\r\n this.recruitmentService.updateRecluitment(this.section, data).subscribe(\r\n (x) => {\r\n this.result = x;\r\n if (this.result.isCorrect === true) {\r\n switch (this.section) {\r\n case 'generalData':\r\n break;\r\n case 'study':\r\n this.generalData.jobCandidateLevelEducation = this.result.data as IStudy;\r\n this.setJobCandidateStudy();\r\n break;\r\n case 'employmentHistory':\r\n this.generalData.jobCandidateEmploymentHistory = this.result.data as IEmploymentHistory;\r\n this.setJobCandidateEmploymentHistory();\r\n break;\r\n case 'recruiterComments':\r\n this.generalData.jobCandidateRecruiterComment = this.result.data as IRecruiterComment;\r\n this.setJobCandidateRecruiterComment();\r\n break;\r\n }\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Éxito', 'Registros guardados correctamente', 'success');\r\n this.addModuleLog();\r\n } else {\r\n this.configGeneral.newToast('Error', this.result.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n break;\r\n case 'new':\r\n this.spinner.show();\r\n this.recruitmentService.addRecluitment(this.section, data).subscribe(\r\n (x) => {\r\n this.result = x;\r\n if (this.result.isCorrect === true) {\r\n switch (this.section) {\r\n case 'generalData':\r\n this.generalData = this.result.data as IGeneralData;\r\n this.setJobCandidateGeneralData();\r\n this.tab2.nativeElement.checked = true;\r\n break;\r\n case 'study':\r\n this.generalData.jobCandidateLevelEducation = this.result.data as IStudy;\r\n this.setJobCandidateStudy();\r\n this.tab4.nativeElement.checked = true;\r\n break;\r\n case 'employmentHistory':\r\n this.generalData.jobCandidateEmploymentHistory = this.result.data as IEmploymentHistory;\r\n this.setJobCandidateEmploymentHistory();\r\n this.tab3.nativeElement.checked = true;\r\n break;\r\n case 'recruiterComments':\r\n this.generalData.jobCandidateRecruiterComment = this.result.data as IRecruiterComment;\r\n this.setJobCandidateRecruiterComment();\r\n break;\r\n }\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Éxito', 'Registros guardados correctamente', 'success');\r\n this.addModuleLog();\r\n } else {\r\n this.configGeneral.newToast('Error', this.result.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n break;\r\n }\r\n }\r\n private addModuleLog(): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = \"JobCandidates\";\r\n dto.module = \"Request\";\r\n dto.action = this.action;\r\n dto.registryAffectedId = this.generalData.id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n private touchedControls(form: FormGroup): void {\r\n Object.keys(form.controls).forEach(field => {\r\n const control = form.get(field);\r\n control.markAsTouched({ onlySelf: true });\r\n });\r\n }\r\n private mapGeneralData(form: any): IGeneralData {\r\n const data = {} as IGeneralData;\r\n data.firstName = form.firstName.trim();\r\n if (form.lastName != null){\r\n data.lastName = form.lastName.trim();\r\n }\r\n else{\r\n data.lastName = '';\r\n };\r\n if (form.secondLastName != null){\r\n data.secondLastName = form.secondLastName.trim();}\r\n else{\r\n data.secondLastName = '';\r\n };\r\n data.birthDate = new Date(this.configGeneral.dateFormat(form.birthDate, 'mm/dd/yyyy'));\r\n data.age = form.age;\r\n data.stateBirthId = form.stateBirth;\r\n data.gender = form.gender;\r\n data.curp = form.curp.trim();\r\n data.rfc = form.rfc.trim();\r\n data.imss = form.imss.trim();\r\n data.typePosition = form.typePosition;\r\n data.interestPositionId = form.interestPosition;\r\n data.recruitmentSourceId = form.recruitmentSource;\r\n data.sourceName = form.sourceName.trim();\r\n data.personalNumber = form.personalNumber;\r\n data.phone = form.phone;\r\n data.email = form.email.trim();\r\n data.maritalStatusId = form.maritalStatus;\r\n data.patrimonialRegimeId = form.patrimonialRegimeId;\r\n data.hasChildren = form.hasChildren;\r\n\r\n// Crea una lista de los valores formateados\r\nconst childrenInfo = [\r\n { name: form.nameChildren1, age: form.ageChildren1 },\r\n { name: form.nameChildren2, age: form.ageChildren2 },\r\n { name: form.nameChildren3, age: form.ageChildren3 },\r\n { name: form.nameChildren4, age: form.ageChildren4 },\r\n { name: form.nameChildren5, age: form.ageChildren5 }\r\n];\r\n\r\n// Filtra los valores vacíos y crea la cadena formateada\r\nconst formattedChildrenInfo = childrenInfo\r\n .filter(child => child.name && child.age) // Filtra campos vacíos\r\n .map(child => `${child.name} - ${child.age} años`) // Formatea cada entrada\r\n .join(', '); // Une las entradas con coma\r\n\r\n// Asigna la cadena formateada a data.ageChildrens\r\n\r\n data.ageChildrens = formattedChildrenInfo\r\n\r\n\r\n\r\n data.street = form.street.trim();\r\n data.interiorNumber = form.interiorNumber;\r\n data.externalNumber = form.externalNumber.trim();\r\n data.suburb = form.suburb.trim();\r\n data.postalCode = form.postalCode;\r\n data.country = 'México';\r\n data.stateId = form.state;\r\n data.townId = form.town;\r\n data.nationality = form.nationality;\r\n data.nationalityName = form.nationalityName;\r\n data.schoolLevelId = form.schoolLevel;\r\n data.registryDate = new Date();\r\n data.lasUpdateDate = new Date();\r\n data.isActive = true;\r\n data.isVisible = true;\r\n data.jobCandidateStatusId = this.generalData.jobCandidateStatusId === undefined ? 1 : this.generalData.jobCandidateStatusId;\r\n data.id = this.generalData.id;\r\n if (this.generalData.jobCandidateAppearance != undefined || this.generalData.jobCandidateAppearance != null) {\r\n this.appearance.id = this.generalData.jobCandidateAppearance.id;\r\n }\r\n if (this.appearance != null) {\r\n data.jobCandidateAppearance = this.appearance;\r\n this.appearance.jobCandidateId = this.generalData.id;\r\n }\r\n data.profile = this.securityService.getProfileStorage('Request');\r\n data.recruiterId = form.recruiterId;\r\n data.phoneCompanyId = form.phoneCompanyId;\r\n data.phonePlanId = form.phonePlanId;\r\n return data;\r\n }\r\n private setJobCandidateGeneralData(): void {\r\n /**Datos generales */\r\n this.formGeneralData.get('firstName').setValue(this.generalData.firstName);\r\n this.formGeneralData.get('lastName').setValue(this.generalData.lastName);\r\n this.formGeneralData.get('secondLastName').setValue(this.generalData.secondLastName);\r\n this.generalData.birthDate = new Date(this.generalData.birthDate);\r\n this.formGeneralData.get('birthDate').setValue(this.generalData.birthDate);\r\n this.formGeneralData.get('age').setValue(this.calculateAge(this.generalData.birthDate));\r\n this.formGeneralData.get('stateBirth').setValue(this.generalData.stateBirthId.toString());\r\n this.formGeneralData.get('gender').setValue(this.generalData.gender);\r\n this.catalogGenderSizes = this.catalogSizes.filter(x => x.additional === this.generalData.gender);\r\n this.formGeneralData.get('curp').setValue(this.generalData.curp);\r\n this.formGeneralData.get('rfc').setValue(this.generalData.rfc);\r\n this.formGeneralData.get('imss').setValue(this.generalData.imss);\r\n this.formGeneralData.get('typePosition').setValue(Number(this.generalData.typePosition));\r\n this.isFieldWork = Number(this.generalData.typePosition);\r\n this.formGeneralData.get('interestPosition').setValue(this.generalData.interestPositionId.toString());\r\n this.formGeneralData.get('recruitmentSource').setValue(this.generalData.recruitmentSourceId.toString());\r\n this.formGeneralData.get('sourceName').setValue(this.generalData.sourceName);\r\n this.formGeneralData.get('personalNumber').setValue(this.generalData.personalNumber);\r\n this.formGeneralData.get('phone').setValue(this.generalData.phone);\r\n this.formGeneralData.get('email').setValue(this.generalData.email);\r\n this.formGeneralData.get('maritalStatus').setValue(this.generalData.maritalStatusId.toString());\r\n this.formGeneralData.get('patrimonialRegimeId').setValue(this.generalData.patrimonialRegimeId);\r\n this.formGeneralData.get('hasChildren').setValue(this.generalData.hasChildren);\r\n this.hasChildren = this.generalData.hasChildren;\r\n this.formGeneralData.get('ageChildrens').setValue(this.generalData.ageChildrens);\r\n this.formGeneralData.get('street').setValue(this.generalData.street);\r\n this.formGeneralData.get('interiorNumber').setValue(this.generalData.interiorNumber);\r\n this.formGeneralData.get('externalNumber').setValue(this.generalData.externalNumber);\r\n this.formGeneralData.get('suburb').setValue(this.generalData.suburb);\r\n this.formGeneralData.get('postalCode').setValue(this.generalData.postalCode);\r\n this.formGeneralData.get('state').setValue(this.generalData.stateId.toString());\r\n this.formGeneralData.get('town').setValue(this.generalData.townId);\r\n this.formGeneralData.get('nationality').setValue(Number(this.generalData.nationality));\r\n this.isForeigner = Number(this.generalData.nationality);\r\n this.formGeneralData.get('nationalityName').setValue(this.generalData.nationalityName);\r\n this.formGeneralData.get('schoolLevel').setValue(this.generalData.schoolLevelId.toString());\r\n\r\n this.formGeneralData.get('nameChildren1').setValue(this.generalData.nameChildren1);\r\n this.formGeneralData.get('nameChildren2').setValue(this.generalData.nameChildren2);\r\n this.formGeneralData.get('nameChildren3').setValue(this.generalData.nameChildren3);\r\n this.formGeneralData.get('nameChildren4').setValue(this.generalData.nameChildren4);\r\n this.formGeneralData.get('nameChildren5').setValue(this.generalData.nameChildren5);\r\n this.formGeneralData.get('ageChildren1').setValue(this.generalData.ageChildren1);\r\n this.formGeneralData.get('ageChildren2').setValue(this.generalData.ageChildren2);\r\n this.formGeneralData.get('ageChildren3').setValue(this.generalData.ageChildren3);\r\n this.formGeneralData.get('ageChildren4').setValue(this.generalData.ageChildren4);\r\n this.formGeneralData.get('ageChildren5').setValue(this.generalData.ageChildren5);\r\n\r\n\r\n if (this.generalData.phoneCompanyId != null) {\r\n this.formGeneralData.get('phoneCompanyId').setValue(this.generalData.phoneCompanyId.toString());\r\n }\r\n if (this.generalData.phonePlanId != null) {\r\n this.formGeneralData.get('phonePlanId').setValue(this.generalData.phonePlanId.toString());\r\n }\r\n if (this.generalData.recruiterId != null) {\r\n this.formGeneralData.get('recruiterId').setValue(this.generalData.recruiterId.toString());\r\n }\r\n if (this.generalData.employeeTaxData != null && this.generalData.employeeTaxData.length > 0) {\r\n let taxData = this.generalData.employeeTaxData[0];\r\n this.formGeneralData.get('taxStreet').setValue(taxData.street);\r\n this.formGeneralData.get('taxInteriorNumber').setValue(taxData.interiorNumber);\r\n this.formGeneralData.get('taxExternalNumber').setValue(taxData.externalNumber);\r\n this.formGeneralData.get('taxSuburb').setValue(taxData.suburb);\r\n this.formGeneralData.get('taxPostalCode').setValue(taxData.postalCode);\r\n this.formGeneralData.get('taxState').setValue(taxData.state);\r\n this.formGeneralData.get('taxTown').setValue(taxData.town);\r\n }\r\n /**Apariencia */\r\n this.appearance = this.generalData.jobCandidateAppearance;\r\n /**Referencias */\r\n this.references = this.generalData.jobCandidateReference;\r\n this.tempReferences = this.generalData.jobCandidateReference;\r\n }\r\n private setJobCandidateEmploymentHistory(): void {\r\n /**Historial laboral */\r\n /**Items historial laboral */\r\n if (this.generalData.jobCandidateEmploymentHistory !== null) {\r\n this.formEmploymentHistory.get('monthlySalary').setValue(this.generalData.jobCandidateEmploymentHistory.monthlySalaryDesired);\r\n this.formEmploymentHistory.get('availability').setValue(this.generalData.jobCandidateEmploymentHistory.availabilityId.toString());\r\n this.formEmploymentHistory.get('hasExperience').setValue(this.generalData.jobCandidateEmploymentHistory.hasExperience);\r\n this.formEmploymentHistory.get('comments').setValue(this.generalData.jobCandidateEmploymentHistory.comments);\r\n if (this.generalData.jobCandidateEmploymentHistory.jobCandidateEmploymentHistoryItem !== undefined) {\r\n this.generalData.jobCandidateEmploymentHistory.jobCandidateEmploymentHistoryItem.forEach(element => {\r\n element.reasonOfExit = this.catalogReasonsOfExit.filter(x => x.id === element.reasonOfExitId.toString())[0].text;\r\n });\r\n }\r\n this.workHistories = this.generalData.jobCandidateEmploymentHistory.jobCandidateEmploymentHistoryItem;\r\n this.tempWorkHistories = this.generalData.jobCandidateEmploymentHistory.jobCandidateEmploymentHistoryItem;\r\n }\r\n }\r\n private setJobCandidateStudy(): void {\r\n /**Datos de estudio */\r\n if (this.generalData.jobCandidateLevelEducation !== null) {\r\n this.formStudy.get('schoolLevel').setValue(this.generalData.jobCandidateLevelEducation.schoolLevelId.toString());\r\n this.formStudy.get('levelEducation').setValue(this.generalData.jobCandidateLevelEducation.educationLevelId.toString());\r\n this.formStudy.get('institute').setValue(this.generalData.jobCandidateLevelEducation.institute);\r\n this.formStudy.get('documentReceived').setValue(this.generalData.jobCandidateLevelEducation.documentReceivedId.toString());\r\n this.generalData.jobCandidateLevelEducation.periodFrom = new Date(this.generalData.jobCandidateLevelEducation.periodFrom);\r\n this.formStudy.get('periodFrom').setValue(this.generalData.jobCandidateLevelEducation.periodFrom);\r\n this.generalData.jobCandidateLevelEducation.periodTo = new Date(this.generalData.jobCandidateLevelEducation.periodTo);\r\n this.formStudy.get('periodTo').setValue(this.generalData.jobCandidateLevelEducation.periodTo);\r\n }\r\n }\r\n private setJobCandidateRecruiterComment(): void {\r\n /**Datos de estudio */\r\n if (this.generalData.jobCandidateRecruiterComment !== null) {\r\n //this.formRecruiterComments.get('positionNOM').setValue(this.generalData.jobCandidateRecruiterComment.positionId.toString());\r\n this.formRecruiterComments.get('hasHouse').setValue(this.generalData.jobCandidateRecruiterComment.liveInOwnHouse);\r\n this.formRecruiterComments.get('hasCar').setValue(this.generalData.jobCandidateRecruiterComment.hasCar);\r\n this.hasCar = this.generalData.jobCandidateRecruiterComment.hasCar;\r\n this.formRecruiterComments.get('carDescription').setValue(this.generalData.jobCandidateRecruiterComment.featuresOfTheCar);\r\n this.formRecruiterComments.get('hasDebt').setValue(this.generalData.jobCandidateRecruiterComment.hasDebt);\r\n this.hasDebt = this.generalData.jobCandidateRecruiterComment.hasDebt;\r\n this.formRecruiterComments.get('debitBank').setValue(this.generalData.jobCandidateRecruiterComment.debitBank);\r\n this.formRecruiterComments.get('debtAmount').setValue(this.generalData.jobCandidateRecruiterComment.debtAmount);\r\n this.formRecruiterComments.get('monthlyExpense').setValue(this.generalData.jobCandidateRecruiterComment.monthlyExpense);\r\n this.formRecruiterComments.get('hasValidID').setValue(this.generalData.jobCandidateRecruiterComment.hasValidID);\r\n this.hasValidID = this.generalData.jobCandidateRecruiterComment.hasValidID;\r\n this.formRecruiterComments.get('idReason').setValue(this.generalData.jobCandidateRecruiterComment.idReason);\r\n this.formRecruiterComments.get('hasFamilyWorking').setValue(this.generalData.jobCandidateRecruiterComment.hasFamilyWorking);\r\n this.hasFamilyWorking = this.generalData.jobCandidateRecruiterComment.hasFamilyWorking;\r\n this.formRecruiterComments.get('familyName').setValue(this.generalData.jobCandidateRecruiterComment.familyName);\r\n this.formRecruiterComments.get('familyRelationship').setValue(this.generalData.jobCandidateRecruiterComment.familyRelationship);\r\n this.formRecruiterComments.get('trademarkWork').setValue(this.generalData.jobCandidateRecruiterComment.trademarkWork);\r\n this.formRecruiterComments.get('hasInfonavit').setValue(this.generalData.jobCandidateRecruiterComment.hasInfonavit);\r\n this.hasInfonavit = this.generalData.jobCandidateRecruiterComment.hasInfonavit;\r\n this.formRecruiterComments.get('monthlyDiscount').setValue(this.generalData.jobCandidateRecruiterComment.monthlyDiscount);\r\n this.formRecruiterComments.get('hasTattoo').setValue(this.generalData.jobCandidateRecruiterComment.hasTattoo);\r\n this.hasTattoo = this.generalData.jobCandidateRecruiterComment.hasTattoo;\r\n this.formRecruiterComments.get('tattooComments').setValue(this.generalData.jobCandidateRecruiterComment.tattooComments);\r\n this.formRecruiterComments.get('hasPiercing').setValue(this.generalData.jobCandidateRecruiterComment.hasPiercing);\r\n this.hasPiercing = this.generalData.jobCandidateRecruiterComment.hasPiercing;\r\n this.formRecruiterComments.get('piercingComments').setValue(this.generalData.jobCandidateRecruiterComment.piercingComments);\r\n this.formRecruiterComments.get('hasDisease').setValue(this.generalData.jobCandidateRecruiterComment.chronicConditions);\r\n this.hasDisease = this.generalData.jobCandidateRecruiterComment.chronicConditions;\r\n this.formRecruiterComments.get('diseaseComments').setValue(this.generalData.jobCandidateRecruiterComment.chronicConditionsComment);\r\n this.formRecruiterComments.get('hasSurgery').setValue(this.generalData.jobCandidateRecruiterComment.hasSurgery);\r\n this.hasSurgery = this.generalData.jobCandidateRecruiterComment.hasSurgery;\r\n this.formRecruiterComments.get('alimony').setValue(this.generalData.jobCandidateRecruiterComment.alimony);\r\n this.formRecruiterComments.get('positionType').setValue(this.generalData.jobCandidateRecruiterComment.positionType);\r\n this.formRecruiterComments.get('surgeryComments').setValue(this.generalData.jobCandidateRecruiterComment.surgeryComments);\r\n this.formRecruiterComments.get('trackingStatus').setValue(this.generalData.jobCandidateRecruiterComment.trackingStatusId.toString());\r\n this.formRecruiterComments.get('additionalComments').setValue(this.generalData.jobCandidateRecruiterComment.additionalComments);\r\n this.formRecruiterComments.get('responsablePositionId').setValue(this.generalData.jobCandidateRecruiterComment.responsablePositionId.toString());\r\n this.formRecruiterComments.get('responsableName').setValue(this.generalData.jobCandidateRecruiterComment.responsableName);\r\n this.formRecruiterComments.get('availabilityTravel').setValue(this.generalData.jobCandidateRecruiterComment.availabilityTravel);\r\n this.formRecruiterComments\r\n .get('trademark').setValue(this.patchTrademarks(this.generalData.jobCandidateRecruiterComment.jobCandidateTrademarkItem));\r\n this.formRecruiterComments\r\n .get('skill').setValue(this.patchSkills(this.generalData.jobCandidateRecruiterComment.jobCandidateSkillItem));\r\n this.formRecruiterComments.get('trademarkId').setValue(this.generalData.jobCandidateRecruiterComment.trademarkId);\r\n let dtoTrademark = { id: this.generalData.jobCandidateRecruiterComment.trademarkId } as IDtoCatalog\r\n this.getCatalogRequisitions(dtoTrademark);\r\n }\r\n }\r\n private mapStudy(form: any): IStudy {\r\n const data = {} as IStudy;\r\n data.institute = form.institute;\r\n data.periodFrom = form.periodFrom;\r\n data.periodTo = form.periodTo;\r\n data.documentReceivedId = form.documentReceived;\r\n data.educationLevelId = form.levelEducation;\r\n data.schoolLevelId = form.schoolLevel;\r\n data.jobCandidateId = this.generalData.id;\r\n if (this.generalData.jobCandidateLevelEducation !== null) {\r\n data.id = this.generalData.jobCandidateLevelEducation.id === undefined ? 0 : this.generalData.jobCandidateLevelEducation.id;\r\n }\r\n return data;\r\n }\r\n private mapEmploymentHistory(form: any): IEmploymentHistory {\r\n const data = {} as IEmploymentHistory;\r\n data.monthlySalaryDesired = form.monthlySalary;\r\n data.availabilityId = form.availability;\r\n data.hasExperience = form.hasExperience;\r\n data.comments = form.comments;\r\n data.isActive = true;\r\n data.isVisible = true;\r\n data.jobCandidateId = this.generalData.id;\r\n if (this.generalData.jobCandidateEmploymentHistory !== null) {\r\n data.id = this.generalData.jobCandidateEmploymentHistory.id === undefined ? 0 : this.generalData.jobCandidateEmploymentHistory.id;\r\n }\r\n data.jobCandidateEmploymentHistoryItem = this.workHistories;\r\n return data;\r\n }\r\n private mapRecruiterComments(form: any): IRecruiterComment {\r\n const data = {} as IRecruiterComment;\r\n data.positionId = form.positionNOM;\r\n data.liveInOwnHouse = form.hasHouse;\r\n data.hasCar = form.hasCar;\r\n data.featuresOfTheCar = form.carDescription === null ? '' : form.carDescription;\r\n data.hasDebt = form.hasDebt;\r\n data.debitBank = form.debitBank;\r\n data.debtAmount = form.debtAmount;\r\n data.monthlyExpense = form.monthlyExpense;\r\n data.hasValidID = form.hasValidID;\r\n data.idReason = form.idReason;\r\n data.hasFamilyWorking = form.hasFamilyWorking;\r\n data.familyName = form.familyName;\r\n data.familyRelationship = form.familyRelationship;\r\n data.trademarkWork = form.trademarkWork === null ? '' : form.trademarkWork;\r\n data.hasInfonavit = form.hasInfonavit;\r\n data.monthlyDiscount = form.monthlyDiscount === null ? 0 : form.monthlyDiscount;\r\n data.hasTattoo = form.hasTattoo;\r\n data.tattooComments = form.tattooComments;\r\n data.hasPiercing = form.hasPiercing;\r\n data.piercingComments = form.piercingComments;\r\n data.chronicConditions = form.hasDisease;\r\n data.chronicConditionsComment = form.diseaseComments;\r\n data.hasSurgery = form.hasSurgery;\r\n data.alimony = form.alimony;\r\n data.positionType = form.positionType;\r\n data.surgeryComments = form.surgeryComments;\r\n data.trackingStatusId = form.trackingStatus == undefined ? 1 : form.trackingStatus;\r\n data.additionalComments = form.additionalComments;\r\n data.responsablePositionId = form.responsablePositionId;\r\n data.responsableName = form.responsableName;\r\n data.availabilityTravel = form.availabilityTravel;\r\n data.jobCandidateSkillItem = this.setSkills(form.skill);\r\n data.jobCandidateTrademarkItem = this.setTrademarks(form.trademark);\r\n data.jobCandidateId = this.generalData.id;\r\n if (this.generalData.jobCandidateRecruiterComment !== null) {\r\n data.id = this.generalData.jobCandidateRecruiterComment.id === undefined ? 0 : this.generalData.jobCandidateRecruiterComment.id;\r\n }\r\n data.trademarkId = form.trademarkId;\r\n return data;\r\n }\r\n private setSkills(skills: any): ISkillItem[] {\r\n const data = [];\r\n skills.forEach((element: any) => {\r\n const obj = {} as ISkillItem;\r\n obj.skillId = Number(element);\r\n obj.jobCandidateRecruiterCommentId = this.generalData.jobCandidateRecruiterComment === null ? 0\r\n : this.generalData.jobCandidateRecruiterComment.id\r\n data.push(obj);\r\n });\r\n return data;\r\n }\r\n private patchSkills(skills: ISkillItem[]): string[] {\r\n const data = [];\r\n if (skills != null) {\r\n skills.forEach(element => {\r\n data.push(element.skillId.toString());\r\n });\r\n }\r\n return data;\r\n }\r\n private setTrademarks(trademarks: ITrademarkItem[]): ITrademarkItem[] {\r\n const data = [];\r\n trademarks.forEach(element => {\r\n const obj = {} as ITrademarkItem;\r\n obj.trademarkId = Number(element);\r\n obj.jobCandidateRecruiterCommentId = this.generalData.jobCandidateRecruiterComment === null ? 0\r\n : this.generalData.jobCandidateRecruiterComment.id\r\n data.push(obj);\r\n });\r\n return data;\r\n }\r\n private patchTrademarks(trademarks: ITrademarkItem[]): string[] {\r\n const data = [];\r\n if (trademarks != null) {\r\n trademarks.forEach(element => {\r\n data.push(element.trademarkId);\r\n });\r\n }\r\n return data;\r\n }\r\n private getRfc(): void {\r\n const firstName = this.formGeneralData.get('firstName');\r\n const lastName = this.formGeneralData.get('lastName');\r\n const secondLastName = this.formGeneralData.get('secondLastName');\r\n const birthDate = this.formGeneralData.get('birthDate');\r\n\r\n if (firstName.errors !== null\r\n || birthDate.errors !== null) {\r\n this.configGeneral.newToast('Validación', 'Nombres, apellidos, fecha de nacimiento requeridos para consultar su RFC', 'warning');\r\n firstName.markAsTouched({ onlySelf: true });\r\n secondLastName.markAsTouched({ onlySelf: true });\r\n birthDate.markAsTouched({ onlySelf: true });\r\n return;\r\n }\r\n const date = `${(birthDate.value.getMonth() + 1)}/${birthDate.value.getDate()}/${birthDate.value.getFullYear()}`;\r\n this.recruitmentService.getRfc(firstName.value, lastName.value, secondLastName.value, date).subscribe((res) => {\r\n this.formGeneralData.get('rfc').setValue(res);\r\n });\r\n }\r\n private getCurp(): void {\r\n const firstName = this.formGeneralData.get('firstName');\r\n const lastName = this.formGeneralData.get('lastName');\r\n const secondLastName = this.formGeneralData.get('secondLastName');\r\n const gender = this.formGeneralData.get('gender');\r\n const birthDate = this.formGeneralData.get('birthDate');\r\n const stateBirth = this.formGeneralData.get('stateBirth');\r\n\r\n if (firstName.errors !== null\r\n || lastName.errors !== null\r\n || secondLastName.errors !== null\r\n || gender.errors !== null\r\n || birthDate.errors !== null\r\n || stateBirth.errors !== null) {\r\n this.configGeneral.newToast('Validación', 'Nombres, apellidos, fecha nacimiento, sexo, estado donde nació requeridos para consultar su CURP', 'warning');\r\n firstName.markAsTouched({ onlySelf: true });\r\n lastName.markAsTouched({ onlySelf: true });\r\n secondLastName.markAsTouched({ onlySelf: true });\r\n gender.markAsTouched({ onlySelf: true });\r\n birthDate.markAsTouched({ onlySelf: true });\r\n stateBirth.markAsTouched({ onlySelf: true });\r\n return;\r\n }\r\n const date = `${(birthDate.value.getMonth() + 1)}/${birthDate.value.getDate()}/${birthDate.value.getFullYear()}`;\r\n this.recruitmentService.getCurp(firstName.value\r\n , lastName.value\r\n , secondLastName.value\r\n , gender.value\r\n , date\r\n , stateBirth.value).subscribe((res) => {\r\n this.formGeneralData.get('curp').setValue(res);\r\n });\r\n }\r\n private getCatalogStates(): void {\r\n this.recruitmentService.getCatalogStates().subscribe((res) => {\r\n this.catalogStates = res;\r\n });\r\n }\r\n private getCatalogZones(): void {\r\n this.recruitmentService.getCatalogZones().subscribe((res) => {\r\n this.catalogZones = res;\r\n });\r\n }\r\n private getCatalogMaritalStatus(): void {\r\n this.recruitmentService.getCatalogMaritalStatus().subscribe((res) => {\r\n this.catalogMaritalStatus = res;\r\n });\r\n }\r\n private getCatalogSources(): void {\r\n this.recruitmentService.getCatalogSources().subscribe((res) => {\r\n this.catalogSources = res;\r\n });\r\n }\r\n private getCatalogSizes(): void {\r\n this.recruitmentService.getCatalogSizes().subscribe((res) => {\r\n this.catalogSizes = res;\r\n });\r\n }\r\n private getCatalogPhysicalComplexions(): void {\r\n this.recruitmentService.getCatalogPhysicalComplexions().subscribe((res) => {\r\n this.catalogPhysicalComplexion = res;\r\n });\r\n }\r\n private getCatalogShirtSizes(): void {\r\n this.recruitmentService.getCatalogShirtSizes().subscribe((res) => {\r\n this.catalogShirtSizes = res;\r\n });\r\n }\r\n private getCatalogPhoneCompanies(): void {\r\n this.catalogPhoneCompanies = this.recruitmentService.getCatalogPhoneCompanies();\r\n }\r\n private getCatalogPhonePlans(): void {\r\n this.catalogPhonePlans = this.recruitmentService.getCatalogPhonePlans();\r\n }\r\n private getCatalogSchoolLevels(): void {\r\n this.recruitmentService.getCatalogSchoolLevels().subscribe((res) => {\r\n this.catalogSchoolLevels = res;\r\n });\r\n }\r\n private getCatalogStatures(): void {\r\n this.recruitmentService.getCatalogStatures().subscribe((res) => {\r\n this.catalogStatures = res;\r\n });\r\n }\r\n private getCatalogShoeSizes(): void {\r\n this.recruitmentService.getCatalogShoeSizes().subscribe((res) => {\r\n this.catalogShoeSizes = res;\r\n });\r\n }\r\n private getCatalogPositions(): void {\r\n this.recruitmentService.getCatalogPositions().subscribe((res) => {\r\n this.catalogPositions = res;\r\n });\r\n }\r\n private getCatalogEducationLevels(): void {\r\n this.recruitmentService.getCatalogEducationLevels().subscribe((res) => {\r\n this.catalogEducationLevels = res;\r\n });\r\n }\r\n private getCatalogDocumentsReceived(): void {\r\n this.recruitmentService.getCatalogDocumentsReceived().subscribe((res) => {\r\n this.catalogDocumentsReceived = res;\r\n });\r\n }\r\n private getCatalogAvailabilitys(): void {\r\n this.recruitmentService.getCatalogAvailabilitys().subscribe((res) => {\r\n this.catalogAvailabilitys = res;\r\n });\r\n }\r\n private getCatalogReasonsOfExit(): void {\r\n this.recruitmentService.getCatalogReasonsOfExit().subscribe((res) => {\r\n this.catalogReasonsOfExit = res;\r\n });\r\n }\r\n private getCatalogSkills(): void {\r\n this.recruitmentService.getCatalogSkills().subscribe((res) => {\r\n this.catalogSkills = res;\r\n });\r\n }\r\n private getCatalogTrackingStatus(): void {\r\n this.recruitmentService.getCatalogTrackingStatus().subscribe((res) => {\r\n this.catalogTrackingStatus = res;\r\n });\r\n }\r\n private getCatalogRecruiters(): void {\r\n this.recruitmentService.getCatalogRecruiters().subscribe((res) => {\r\n this.catalogRecruiters = res;\r\n });\r\n }\r\n // private getCatalogRequisitions(): void {\r\n // this.openingService.getCatalogRequisitions().subscribe((res) => {\r\n // this.catalogRequisitions = res.data as ISelect[];\r\n // });\r\n // }\r\n private getCatalogTowns(id: string): void {\r\n this.recruitmentService.getCatalogTowns(id).subscribe((res) => {\r\n this.formGeneralData.get('town').setValue(null);\r\n this.catalogTowns = res;\r\n if (this.action === 'update') {\r\n this.formGeneralData.get('town').setValue(this.generalData.townId.toString());\r\n }\r\n });\r\n }\r\n private changeMaritalStatus(dto: ISelect): void {\r\n if (dto == undefined) {\r\n this.formGeneralData.get('patrimonialRegimeId').setValidators(null);\r\n this.formGeneralData.get('patrimonialRegimeId').setValue(null);\r\n return;\r\n }\r\n if (dto.text != 'CASADO') {\r\n this.formGeneralData.get('patrimonialRegimeId').setValidators(null);\r\n this.formGeneralData.get('patrimonialRegimeId').setValue(null);\r\n } else {\r\n this.formGeneralData.get('patrimonialRegimeId').setValidators([Validators.required]);\r\n }\r\n this.formGeneralData.get('patrimonialRegimeId').updateValueAndValidity();\r\n }\r\n private statusNotAllowed(item: ISelect): void {\r\n if (item == null) {\r\n return;\r\n }\r\n let status = this.catalogTrackingStatus.filter(x => x.id == item.id)[0];\r\n if (status.id == '13') {\r\n this.configGeneral.newToast('Estatus', `Estatus ${status.text} no disponible`, 'warning');\r\n\r\n this.formRecruiterComments.get('trackingStatus').setValue(null);\r\n }\r\n }\r\n private getCatalogRequisitions(dto: IDtoCatalog): void {\r\n this.catalogRequisitions = null;\r\n this.formRecruiterComments.get('positionNOM').setValue(null);\r\n if (dto === undefined) {\r\n return;\r\n }\r\n this.openingService.getCatalogRequisitionsByTrademarkId(dto.id).subscribe((res) => {\r\n this.catalogRequisitions = res.data as ISelect[];\r\n if (this.catalogRequisitions.length > 0 && this.action === 'update') {\r\n this.formRecruiterComments.get('positionNOM').setValue(this.generalData.jobCandidateRecruiterComment.positionId.toString());\r\n }\r\n });\r\n }\r\n validarNombre(event: any) {\r\n let regex = /^[A-Za-z. ]*$/;\r\n let value = event.target.value;\r\n\r\n if (!regex.test(value)) {\r\n this.formGeneralData.get('firstName')!.setValue(value.slice(0, -1));\r\n }\r\n\r\n // Convertir el valor a mayúsculas\r\n this.formGeneralData.get('firstName')!.setValue(value.toUpperCase());\r\n }\r\n}\r\n","module.exports = \"/* stylelint-disable order/properties-alphabetical-order */\\n/* stylelint-enable */\\n.uppercase {\\n text-transform: uppercase;\\n}\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n/* colors */\\n/* tab setting */\\n/* breakpoints */\\n/* selectors relative to radio inputs */\\nhtml {\\n width: 100%;\\n height: 100%;\\n}\\nbody {\\n background: #efefef;\\n color: #333;\\n font-family: \\\"Raleway\\\";\\n height: 100%;\\n}\\nbody h1 {\\n text-align: center;\\n color: #1ab394;\\n font-weight: 300;\\n padding: 40px 0 20px 0;\\n margin: 0;\\n}\\n.tabs {\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n position: relative;\\n padding-bottom: 40px;\\n}\\n.tabs input[name=tab-control] {\\n display: none;\\n}\\n.tabs .content section h2,\\n.tabs ul li label {\\n font-weight: bold;\\n font-size: 15px;\\n color: #1ab394;\\n}\\n.tabs ul {\\n list-style-type: none;\\n padding-left: 0;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n margin-bottom: 10px;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n -webkit-box-align: end;\\n align-items: flex-end;\\n flex-wrap: wrap;\\n}\\n.tabs ul li {\\n box-sizing: border-box;\\n -webkit-box-flex: 1;\\n flex: 1;\\n width: 16.6666666667%;\\n padding: 0 10px;\\n text-align: center;\\n}\\n.tabs ul li label {\\n -webkit-transition: all 0.3s ease-in-out;\\n transition: all 0.3s ease-in-out;\\n color: #676767;\\n padding: 5px auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n cursor: pointer;\\n -webkit-transition: all 0.2s ease-in-out;\\n transition: all 0.2s ease-in-out;\\n white-space: nowrap;\\n -webkit-touch-callout: none;\\n}\\n.tabs ul li label br {\\n display: none;\\n}\\n.tabs ul li label svg {\\n fill: #676767;\\n height: 1.2em;\\n vertical-align: bottom;\\n margin-right: 0.2em;\\n -webkit-transition: all 0.2s ease-in-out;\\n transition: all 0.2s ease-in-out;\\n}\\n.tabs ul li label:hover, .tabs ul li label:focus, .tabs ul li label:active {\\n outline: 0;\\n color: #8d8d8d;\\n}\\n.tabs ul li label:hover svg, .tabs ul li label:focus svg, .tabs ul li label:active svg {\\n fill: #8d8d8d;\\n}\\n.tabs .slider {\\n position: relative;\\n width: 16.6666666667%;\\n -webkit-transition: all 0.33s cubic-bezier(0.38, 0.8, 0.32, 1.07);\\n transition: all 0.33s cubic-bezier(0.38, 0.8, 0.32, 1.07);\\n}\\n.tabs .slider .indicator {\\n position: relative;\\n width: 50px;\\n max-width: 100%;\\n margin: 0 auto;\\n height: 4px;\\n background: #1ab394;\\n border-radius: 1px;\\n}\\n.tabs .content {\\n margin-top: 30px;\\n}\\n.tabs .content section {\\n display: none;\\n -webkit-animation-name: content;\\n animation-name: content;\\n -webkit-animation-direction: normal;\\n animation-direction: normal;\\n -webkit-animation-duration: 0.3s;\\n animation-duration: 0.3s;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n line-height: 1.4;\\n}\\n.tabs .content section h2 {\\n color: #1ab394;\\n display: none;\\n}\\n.tabs .content section h2::after {\\n content: \\\"\\\";\\n position: relative;\\n display: block;\\n width: 30px;\\n height: 3px;\\n background: #1ab394;\\n margin-top: 5px;\\n left: 1px;\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ .slider {\\n -webkit-transform: translateX(0%);\\n transform: translateX(0%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ .content > section:nth-child(1) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ .slider {\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ .content > section:nth-child(2) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ .slider {\\n -webkit-transform: translateX(200%);\\n transform: translateX(200%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ .content > section:nth-child(3) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ .slider {\\n -webkit-transform: translateX(300%);\\n transform: translateX(300%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ .content > section:nth-child(4) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(5):checked ~ ul > li:nth-child(5) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(5):checked ~ ul > li:nth-child(5) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(5):checked ~ ul > li:nth-child(5) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(5):checked ~ .slider {\\n -webkit-transform: translateX(400%);\\n transform: translateX(400%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(5):checked ~ .content > section:nth-child(5) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(6):checked ~ ul > li:nth-child(6) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(6):checked ~ ul > li:nth-child(6) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 900px) {\\n .tabs input[name=tab-control]:nth-of-type(6):checked ~ ul > li:nth-child(6) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(6):checked ~ .slider {\\n -webkit-transform: translateX(500%);\\n transform: translateX(500%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(6):checked ~ .content > section:nth-child(6) {\\n display: block;\\n}\\n@-webkit-keyframes content {\\n from {\\n opacity: 0;\\n -webkit-transform: translateY(5%);\\n transform: translateY(5%);\\n }\\n to {\\n opacity: 1;\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n }\\n}\\n@keyframes content {\\n from {\\n opacity: 0;\\n -webkit-transform: translateY(5%);\\n transform: translateY(5%);\\n }\\n to {\\n opacity: 1;\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n }\\n}\\n@media (max-width: 1500px) {\\n .tabs ul li label {\\n white-space: initial;\\n }\\n .tabs ul li label br {\\n display: initial;\\n }\\n .tabs ul li label svg {\\n height: 1.5em;\\n }\\n}\\n@media (max-width: 900px) {\\n .tabs ul li label {\\n padding: 5px;\\n border-radius: 5px;\\n }\\n .tabs ul li label span {\\n display: none;\\n }\\n .tabs .slider {\\n display: none;\\n }\\n .tabs .content {\\n margin-top: 20px;\\n }\\n .tabs .content section h2 {\\n display: block;\\n }\\n}\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n.overflow-visible {\\n white-space: initial;\\n}\\n.disableDiv {\\n pointer-events: none;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVjcnVpdG1lbnQvcmVxdWVzdC9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHJlY3J1aXRtZW50XFxyZXF1ZXN0XFxyZXF1ZXN0LnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlY3J1aXRtZW50L3JlcXVlc3QvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zdGRpbiIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVjcnVpdG1lbnQvcmVxdWVzdC9yZXF1ZXN0LnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0JBLDBEQUFBO0FBT0EscUJBQUE7QUN4QkE7RUFDRSx5QkFBQTtBQ0FGO0FER0E7RUFDRSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7QUNBRjtBREdBO0VBVUUscUJBQUE7RUFDRSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsMEJBQUE7RUFDQSxlQUFBO0VBQ0Esc0JBQUE7RUFDQSw2QkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTtBQ1RKO0FEWUE7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0FDVEY7QURZQSxXQUFBO0FBVUEsZ0JBQUE7QUFLQSxnQkFBQTtBQU9BLHVDQUFBO0FBMkJBO0VBQ0UsV0FBQTtFQUNBLFlBQUE7QUN0REY7QUR5REE7RUFDRSxtQkFBQTtFQUNBLFdBckRLO0VBc0RMLHNCQUFBO0VBQ0EsWUFBQTtBQ3RERjtBRHdERTtF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RUFSRjtJQVNJLCtCQUFBO0VDUFI7QUFDRjtBRC9KTTtFQUNFLG1DQUFBO1VBQUEsMkJBQUE7QUNpS1I7QUQ5Sk07RUFDRSxjQUFBO0FDZ0tSO0FEVE07RUFDRSxlQUFBO0VBQ0EsY0FuTUQ7QUM4TVA7QURUUTtFQUNFLGFBdE1IO0FDaU5QO0FEUlE7RUFSRjtJQVNJLCtCQUFBO0VDV1I7QUFDRjtBRGpMTTtFQUNFLG1DQUFBO1VBQUEsMkJBQUE7QUNtTFI7QURoTE07RUFDRSxjQUFBO0FDa0xSO0FEWkU7RUFDRTtJQUNFLFVBQUE7SUFDQSxpQ0FBQTtZQUFBLHlCQUFBO0VDY0o7RURaRTtJQUNFLFVBQUE7SUFDQSxpQ0FBQTtZQUFBLHlCQUFBO0VDY0o7QUFDRjtBRHRCRTtFQUNFO0lBQ0UsVUFBQTtJQUNBLGlDQUFBO1lBQUEseUJBQUE7RUNjSjtFRFpFO0lBQ0UsVUFBQTtJQUNBLGlDQUFBO1lBQUEseUJBQUE7RUNjSjtBQUNGO0FEWEU7RUFDRTtJQUNFLG9CQUFBO0VDYUo7RURYSTtJQUNFLGdCQUFBO0VDYU47RURWSTtJQUNFLGFBQUE7RUNZTjtBQUNGO0FEUkU7RUFDRTtJQUNFLFlBQUE7SUFDQSxrQkFBQTtFQ1VKO0VEUkk7SUFDRSxhQUFBO0VDVU47RURORTtJQUNFLGFBQUE7RUNRSjtFRExFO0lBQ0UsZ0JBQUE7RUNPSjtFRE5JO0lBQ0UsY0FBQTtFQ1FOO0FBQ0Y7QURIQTtFQUNFLGlCQUFBO0FDTUY7QURKQTtFQUNFLG9CQUFBO0FDT0Y7QURMQTtFQUNFLG9CQUFBO0FDUUYiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZWNydWl0bWVudC9yZXF1ZXN0L3JlcXVlc3Quc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE91dHB1dHMgdGhlIGBvdmVyZmxvdy13cmFwYCBwcm9wZXJ0eSBhbmQgaXRzIGxlZ2FjeSBuYW1lIGB3b3JkLXdyYXBgIHRvXG4vLy8gc3VwcG9ydCBicm93c2VycyB0aGF0IGRvIG5vdCB5ZXQgdXNlIGBvdmVyZmxvdy13cmFwYC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7c3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIEFjY2VwdGVkIENTUyB2YWx1ZXMgYXJlIGBub3JtYWxgLCBgYnJlYWstd29yZGAsIGBpbmhlcml0YCwgYGluaXRpYWxgLFxuLy8vICAgb3IgYHVuc2V0YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgb3ZlcmZsb3ctd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL3Byb3BlcnRpZXMtYWxwaGFiZXRpY2FsLW9yZGVyICovXG5cbkBtaXhpbiBvdmVyZmxvdy13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0IFwiLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vY29yZS9ib3VyYm9uXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2NvcmUvbmVhdFwiO1xyXG5cclxuLnVwcGVyY2FzZXtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmJ0bnVwIHtcclxuICAvLyBib3JkZXI6IDJweCBzb2xpZCBncmF5O1xyXG4gIC8vIGNvbG9yOiBncmF5O1xyXG4gIC8vIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIC8vIC8vcGFkZGluZzogOHB4IDIwcHg7XHJcbiAgLy8gLy9ib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgLy8gLy9mb250LXNpemU6IDIwcHg7XHJcbiAgLy8gZm9udC13ZWlnaHQ6IGJvbGQ7XHJcblxyXG5cclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBwYWRkaW5nOiA2cHggMTJweDtcclxuICAgIGZvbnQtc2l6ZTogOXB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG59XHJcblxyXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIgaW5wdXRbdHlwZT1maWxlXSB7XHJcbiAgZm9udC1zaXplOiAxMDBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgb3BhY2l0eTogMDtcclxufVxyXG5cclxuLyogY29sb3JzICovXHJcbiRibHVlOiAjMWFiMzk0O1xyXG4kcmVkOiAjRkY0QTUzO1xyXG4kZGFyazogIzMzMztcclxuXHJcbiRhY2NlbnQ6ICRibHVlO1xyXG4kYWNjZW50LWluYWN0aXZlOiBkZXNhdHVyYXRlKCRhY2NlbnQsIDg1JSk7XHJcbiRzZWNvbmRhcnk6ICRhY2NlbnQtaW5hY3RpdmU7XHJcblxyXG5cclxuLyogdGFiIHNldHRpbmcgKi9cclxuJHRhYi1jb3VudDogNjtcclxuJGluZGljYXRvci13aWR0aDogNTBweDtcclxuJGluZGljYXRvci1oZWlnaHQ6IDRweDtcclxuXHJcbi8qIGJyZWFrcG9pbnRzICovXHJcbiRicmVha3BvaW50czogKFxyXG4gIG1lZGl1bTogI3skdGFiLWNvdW50KjI1MHB4fSxcclxuICBzbWFsbDogI3skdGFiLWNvdW50KjE1MHB4fVxyXG4pO1xyXG5cclxuXHJcbi8qIHNlbGVjdG9ycyByZWxhdGl2ZSB0byByYWRpbyBpbnB1dHMgKi9cclxuJGxhYmVsLXNlbGVjdG9yOiBcIn4gdWwgPiBsaVwiO1xyXG4kc2xpZGVyLXNlbGVjdG9yOiBcIn4gLnNsaWRlclwiO1xyXG4kY29udGVudC1zZWxlY3RvcjogXCJ+IC5jb250ZW50ID4gc2VjdGlvblwiO1xyXG5cclxuQG1peGluIHRhYnMoXHJcbiAgJGxhYmVsLXNlbGVjdG9yOiAkbGFiZWwtc2VsZWN0b3IsXHJcbiAgJHNsaWRlci1zZWxlY3RvcjogJHNsaWRlci1zZWxlY3RvcixcclxuICAkY29udGVudC1zZWxlY3RvcjogJGNvbnRlbnQtc2VsZWN0b3IpIHtcclxuICAgIFxyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHRhYi1jb3VudCB7XHJcbiAgICAmOm50aC1vZi10eXBlKCN7JGl9KTpjaGVja2VkIHtcclxuICAgICAgI3skbGFiZWwtc2VsZWN0b3J9Om50aC1jaGlsZCgjeyRpfSkge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAjeyRzbGlkZXItc2VsZWN0b3J9IHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoI3sxMDAlICogKCRpIC0gMSl9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgI3skY29udGVudC1zZWxlY3Rvcn06bnRoLWNoaWxkKCN7JGl9KSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmh0bWwge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgYmFja2dyb3VuZDogI2VmZWZlZjtcclxuICBjb2xvcjogJGRhcms7XHJcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBcclxuICBoMSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogJGFjY2VudDtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICBwYWRkaW5nOiA0MHB4IDAgMjBweCAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLnRhYnMge1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIC8vIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIC8vIHBhZGRpbmc6IDQwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcbiAgLy8gYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG4gIC8vIG1pbi13aWR0aDogI3skdGFiLWNvdW50ICogNjBweH07XHJcbiAgaW5wdXRbbmFtZT1cInRhYi1jb250cm9sXCJdIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIFxyXG4gIC5jb250ZW50IHNlY3Rpb24gaDIsXHJcbiAgdWwgbGkgbGFiZWwge1xyXG4gICAgLy9mb250LWZhbWlseTogXCJNb250c2VycmF0XCI7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgIGNvbG9yOiAkYWNjZW50O1xyXG4gIH1cclxuICBcclxuICB1bCB7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBcclxuICAgIGxpIHtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgZmxleDogMTtcclxuICAgICAgd2lkdGg6ICN7MTAwJS8kdGFiLWNvdW50fTtcclxuICAgICAgcGFkZGluZzogMCAxMHB4O1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIFxyXG4gICAgICBsYWJlbCB7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XHJcbiAgICAgICAgcGFkZGluZzogNXB4IGF1dG87XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XHJcbiAgICAgICAgLy8gQGluY2x1ZGUgdXNlci1zZWxlY3Qobm9uZSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgYnIge1xyXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3ZnIHtcclxuICAgICAgICAgIGZpbGw6ICRzZWNvbmRhcnk7XHJcbiAgICAgICAgICBoZWlnaHQ6IDEuMmVtO1xyXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcclxuICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yZW07XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzLFxyXG4gICAgICAgICY6YWN0aXZlIHtcclxuICAgICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICAgICAgICBjb2xvcjogbGlnaHRlbigkc2Vjb25kYXJ5LCAxNSUpO1xyXG4gICAgICAgICAgc3ZnIHtcclxuICAgICAgICAgICAgZmlsbDogbGlnaHRlbigkc2Vjb25kYXJ5LCAxNSUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAuc2xpZGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAjezEwMCUvJHRhYi1jb3VudH07XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zM3MgY3ViaWMtYmV6aWVyKDAuMzgsIDAuOCwgMC4zMiwgMS4wNyk7XHJcbiAgICAuaW5kaWNhdG9yIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB3aWR0aDogJGluZGljYXRvci13aWR0aDtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgaGVpZ2h0OiAkaW5kaWNhdG9yLWhlaWdodDtcclxuICAgICAgYmFja2dyb3VuZDogJGFjY2VudDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMXB4OyAgICAgXHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBcclxuICAuY29udGVudCB7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgXHJcbiAgICBzZWN0aW9uIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgYW5pbWF0aW9uOiB7XHJcbiAgICAgICAgbmFtZTogY29udGVudDtcclxuICAgICAgICBkaXJlY3Rpb246IG5vcm1hbDtcclxuICAgICAgICBkdXJhdGlvbjogMC4zcztcclxuICAgICAgICB0aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xyXG4gICAgICAgIGl0ZXJhdGlvbi1jb3VudDogMTtcclxuICAgICAgfVxyXG4gICAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgICBcclxuICAgICAgaDIge1xyXG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgd2lkdGg6IDMwcHg7XHJcbiAgICAgICAgICBoZWlnaHQ6IDNweDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRhY2NlbnQ7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgICAgICAgICBsZWZ0OiAxcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGlucHV0W25hbWU9XCJ0YWItY29udHJvbFwiXSB7XHJcbiAgICBAaW5jbHVkZSB0YWJzIHtcclxuICAgICAgPiBsYWJlbCB7XHJcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xyXG4gICAgICAgIFxyXG4gICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICBmaWxsOiAkYWNjZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsIHNtYWxsKSkge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgY29udGVudCB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUlKTtcclxuICAgIH1cclxuICAgIHRvIHtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBtZWRpdW0pKSB7XHJcbiAgICB1bCBsaSBsYWJlbCB7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBpbml0aWFsO1xyXG4gICAgICBcclxuICAgICAgYnIge1xyXG4gICAgICAgIGRpc3BsYXk6IGluaXRpYWw7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIHN2ZyB7XHJcbiAgICAgICAgaGVpZ2h0OiAxLjVlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBAbWVkaWEgKG1heC13aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsIHNtYWxsKSkge1xyXG4gICAgdWwgbGkgbGFiZWwge1xyXG4gICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLnNsaWRlciB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5jb250ZW50IHtcclxuICAgICAgbWFyZ2luLXRvcDogMjBweDsgXHJcbiAgICAgIHNlY3Rpb24gaDIge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufVxyXG4ub3ZlcmZsb3ctdmlzaWJsZSB7XHJcbiAgd2hpdGUtc3BhY2U6IGluaXRpYWw7XHJcbn1cclxuLmRpc2FibGVEaXZ7XHJcbiAgcG9pbnRlci1ldmVudHM6bm9uZTtcclxufSIsIi8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL3Byb3BlcnRpZXMtYWxwaGFiZXRpY2FsLW9yZGVyICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4udXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnVwbG9hZC1idG51cC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5idG51cCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIgaW5wdXRbdHlwZT1maWxlXSB7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4vKiBjb2xvcnMgKi9cbi8qIHRhYiBzZXR0aW5nICovXG4vKiBicmVha3BvaW50cyAqL1xuLyogc2VsZWN0b3JzIHJlbGF0aXZlIHRvIHJhZGlvIGlucHV0cyAqL1xuaHRtbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xuICBjb2xvcjogIzMzMztcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5ib2R5IGgxIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzFhYjM5NDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgcGFkZGluZzogNDBweCAwIDIwcHggMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4udGFicyB7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRhYnMgLmNvbnRlbnQgc2VjdGlvbiBoMixcbi50YWJzIHVsIGxpIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgY29sb3I6ICMxYWIzOTQ7XG59XG4udGFicyB1bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnRhYnMgdWwgbGkge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4OiAxO1xuICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnRhYnMgdWwgbGkgbGFiZWwge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgY29sb3I6ICM2NzY3Njc7XG4gIHBhZGRpbmc6IDVweCBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbn1cbi50YWJzIHVsIGxpIGxhYmVsIGJyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50YWJzIHVsIGxpIGxhYmVsIHN2ZyB7XG4gIGZpbGw6ICM2NzY3Njc7XG4gIGhlaWdodDogMS4yZW07XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIG1hcmdpbi1yaWdodDogMC4yZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xufVxuLnRhYnMgdWwgbGkgbGFiZWw6aG92ZXIsIC50YWJzIHVsIGxpIGxhYmVsOmZvY3VzLCAudGFicyB1bCBsaSBsYWJlbDphY3RpdmUge1xuICBvdXRsaW5lOiAwO1xuICBjb2xvcjogIzhkOGQ4ZDtcbn1cbi50YWJzIHVsIGxpIGxhYmVsOmhvdmVyIHN2ZywgLnRhYnMgdWwgbGkgbGFiZWw6Zm9jdXMgc3ZnLCAudGFicyB1bCBsaSBsYWJlbDphY3RpdmUgc3ZnIHtcbiAgZmlsbDogIzhkOGQ4ZDtcbn1cbi50YWJzIC5zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMzNzIGN1YmljLWJlemllcigwLjM4LCAwLjgsIDAuMzIsIDEuMDcpO1xufVxuLnRhYnMgLnNsaWRlciAuaW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNTBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQ6ICMxYWIzOTQ7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cbi50YWJzIC5jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cbi50YWJzIC5jb250ZW50IHNlY3Rpb24ge1xuICBkaXNwbGF5OiBub25lO1xuICBhbmltYXRpb24tbmFtZTogY29udGVudDtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuLnRhYnMgLmNvbnRlbnQgc2VjdGlvbiBoMiB7XG4gIGNvbG9yOiAjMWFiMzk0O1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRhYnMgLmNvbnRlbnQgc2VjdGlvbiBoMjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6ICMxYWIzOTQ7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbGVmdDogMXB4O1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMSk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDEpID4gbGFiZWwge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGNvbG9yOiAjMWFiMzk0O1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMSk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDEpID4gbGFiZWwgc3ZnIHtcbiAgZmlsbDogIzFhYjM5NDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAudGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgxKTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoMSkgPiBsYWJlbCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgfVxufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMSk6Y2hlY2tlZCB+IC5zbGlkZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMSk6Y2hlY2tlZCB+IC5jb250ZW50ID4gc2VjdGlvbjpudGgtY2hpbGQoMSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDIpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgyKSA+IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogIzFhYjM5NDtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDIpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgyKSA+IGxhYmVsIHN2ZyB7XG4gIGZpbGw6ICMxYWIzOTQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMik6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDIpID4gbGFiZWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIH1cbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDIpOmNoZWNrZWQgfiAuc2xpZGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMik6Y2hlY2tlZCB+IC5jb250ZW50ID4gc2VjdGlvbjpudGgtY2hpbGQoMikge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDMpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgzKSA+IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogIzFhYjM5NDtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDMpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgzKSA+IGxhYmVsIHN2ZyB7XG4gIGZpbGw6ICMxYWIzOTQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMyk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDMpID4gbGFiZWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIH1cbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDMpOmNoZWNrZWQgfiAuc2xpZGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMyk6Y2hlY2tlZCB+IC5jb250ZW50ID4gc2VjdGlvbjpudGgtY2hpbGQoMykge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDQpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCg0KSA+IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogIzFhYjM5NDtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDQpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCg0KSA+IGxhYmVsIHN2ZyB7XG4gIGZpbGw6ICMxYWIzOTQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoNCk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDQpID4gbGFiZWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIH1cbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDQpOmNoZWNrZWQgfiAuc2xpZGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwMCUpO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoNCk6Y2hlY2tlZCB+IC5jb250ZW50ID4gc2VjdGlvbjpudGgtY2hpbGQoNCkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDUpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCg1KSA+IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogIzFhYjM5NDtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDUpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCg1KSA+IGxhYmVsIHN2ZyB7XG4gIGZpbGw6ICMxYWIzOTQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoNSk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDUpID4gbGFiZWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIH1cbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDUpOmNoZWNrZWQgfiAuc2xpZGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMCUpO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoNSk6Y2hlY2tlZCB+IC5jb250ZW50ID4gc2VjdGlvbjpudGgtY2hpbGQoNSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDYpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCg2KSA+IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogIzFhYjM5NDtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDYpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCg2KSA+IGxhYmVsIHN2ZyB7XG4gIGZpbGw6ICMxYWIzOTQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoNik6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDYpID4gbGFiZWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIH1cbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDYpOmNoZWNrZWQgfiAuc2xpZGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwMCUpO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoNik6Y2hlY2tlZCB+IC5jb250ZW50ID4gc2VjdGlvbjpudGgtY2hpbGQoNikge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBrZXlmcmFtZXMgY29udGVudCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUlKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTUwMHB4KSB7XG4gIC50YWJzIHVsIGxpIGxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogaW5pdGlhbDtcbiAgfVxuICAudGFicyB1bCBsaSBsYWJlbCBiciB7XG4gICAgZGlzcGxheTogaW5pdGlhbDtcbiAgfVxuICAudGFicyB1bCBsaSBsYWJlbCBzdmcge1xuICAgIGhlaWdodDogMS41ZW07XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAudGFicyB1bCBsaSBsYWJlbCB7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgfVxuICAudGFicyB1bCBsaSBsYWJlbCBzcGFuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC50YWJzIC5zbGlkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnRhYnMgLmNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cbiAgLnRhYnMgLmNvbnRlbnQgc2VjdGlvbiBoMiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuXG4ub3ZlcmZsb3ctdmlzaWJsZSB7XG4gIHdoaXRlLXNwYWNlOiBpbml0aWFsO1xufVxuXG4uZGlzYWJsZURpdiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufSJdfQ== */\"","import { Component, OnDestroy, OnInit, SimpleChanges, Input, OnChanges } from '@angular/core';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\n\r\n@Component({\r\n selector: '[employee]',\r\n styleUrls: ['./employee.style.scss'],\r\n templateUrl: 'employee.template.html'\r\n})\r\nexport class EmployeeComponent implements OnDestroy, OnInit {\r\n @Input() private employee: IDtoEmployee;\r\n @Input() private module: string;\r\n constructor () { \r\n }\r\n ngOnInit(): void {\r\n }\r\n ngOnDestroy(): void {\r\n }\r\n}\r\n","module.exports = \"td.border {\\n background-color: #F7A54A;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9lbXBsb3llZS9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHJlcXVlc3RcXGVtcGxveWVlXFxlbXBsb3llZS5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2VtcGxveWVlL2VtcGxveWVlLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx5QkFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9lbXBsb3llZS9lbXBsb3llZS5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsidGQuYm9yZGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGN0E1NEE7XHJcbiAgfSIsInRkLmJvcmRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGN0E1NEE7XG59Il19 */\"","import { Injectable } from '@angular/core';\r\nimport { saveAs } from 'file-saver';\r\nimport { DatePipe } from '@angular/common';\r\ndeclare var require: any\r\n@Injectable()\r\nexport class ExcelService {\r\n\r\n constructor(private datePipe: DatePipe) {\r\n\r\n }\r\n\r\n private dataFormatInabilities(data) {\r\n let d = [];\r\n data.forEach(e => {\r\n let a = new Array();\r\n a.push(e.creationDate);\r\n a.push(e.dateApplication);\r\n a.push(e.dischargeDate);\r\n a.push(e.employeeNum);\r\n a.push(e.employeeName);\r\n a.push(e.employeeMarkName);\r\n a.push(e.employeePositionId);\r\n a.push(e.employeeJob);\r\n a.push(e.employerRegister);\r\n a.push(e.inabilityKey);\r\n a.push(e.zone);\r\n a.push(e.employeeTownName);\r\n a.push(e.startDate);\r\n a.push(e.endDate);\r\n a.push(e.numberDays);\r\n a.push(e.periodKey);\r\n a.push(e.lineInsurance);\r\n a.push(e.typeRisk);\r\n a.push(e.lingeringIssuesKey);\r\n a.push(e.inabilityControlKey);\r\n a.push(e.requiresInability);\r\n a.push(e.comments);\r\n d.push(a);\r\n });\r\n return d;\r\n }\r\n private dataFormatWorkLeave(data) {\r\n let d = [];\r\n data.forEach(e => {\r\n let a = new Array();\r\n a.push(e.employeeNum);\r\n a.push(e.employeeName);\r\n a.push(e.employeeMarkName);\r\n a.push(e.employeeDate);\r\n a.push(e.positionNo);\r\n a.push(e.dismissalDate);\r\n a.push(e.paymentType);\r\n a.push(e.dailySalary);\r\n a.push(e.companyPay);\r\n d.push(a);\r\n });\r\n return d;\r\n }\r\n private dataFormatHolidays(data) {\r\n let d = [];\r\n data.forEach(e => {\r\n let a = new Array();\r\n a.push(e.employeeNum);\r\n a.push(e.employeeName);\r\n a.push(e.employeeCompany);\r\n a.push(e.initDate);\r\n a.push(e.finalDate);\r\n a.push(e.totalDays);\r\n a.push(e.comments);\r\n d.push(a);\r\n });\r\n return d;\r\n }\r\n private dataFormatRelocations(data) {\r\n let d = [];\r\n data.forEach(e => {\r\n let a = new Array();\r\n a.push(e.employeeNum);\r\n a.push(e.employeeName);\r\n a.push(e.trademark);\r\n a.push(e.relocationDate);\r\n a.push(e.generateVacancy);\r\n a.push(e.position);\r\n a.push(e.reasonName);\r\n a.push(e.town);\r\n a.push(e.companyPay);\r\n d.push(a);\r\n });\r\n return d;\r\n }\r\n public generateExcelInabilities(list: any) {\r\n //Excel Title, Header, Data\r\n const title = 'Reporte de incapacidades';\r\n const header = [\"Fecha de captura\",\r\n \"Fecha de aplicación\"\r\n , \"Fecha de terminación\"\r\n , \"Clave de trabajador\"\r\n , \"Nombre completo\"\r\n , \"Marca\"\r\n , \"Clave del puesto\"\r\n , \"Puesto\"\r\n , \"Registro IMSS\"\r\n , \"Folio\"\r\n , \"Zona\"\r\n , \"Ciudad\"\r\n , \"Fecha inicial\"\r\n , \"Fecha final\"\r\n , \"Número de días\"\r\n , \"Clave del periodo\"\r\n , \"Ramo del seguro\"\r\n , \"Tipo de riesgo\"\r\n , \"Secuelas\"\r\n , \"Control de incapacidad\"\r\n , \"Requiere cubre incapacitante\"\r\n , \"Observaciones\"]\r\n const data = this.dataFormatInabilities(list);\r\n\r\n //Create workbook and worksheet\r\n const Excel = require('exceljs');\r\n const workbook = new Excel.Workbook();\r\n let worksheet = workbook.addWorksheet('Incapacidades');\r\n\r\n //Add Row and formatting\r\n let titleRow = worksheet.addRow([title]);\r\n titleRow.font = { name: 'Arial', family: 4, size: 12, underline: 'double', bold: true }\r\n worksheet.addRow([]);\r\n let subTitleRow = worksheet.addRow(['Fecha de creación: ' + this.datePipe.transform(new Date(), 'medium')])\r\n\r\n worksheet.mergeCells('A1:D2');\r\n\r\n //Blank Row\r\n worksheet.addRow([]);\r\n\r\n //Add Header Row\r\n let headerRow = worksheet.addRow(header);\r\n\r\n // Cell Style : Fill and Border\r\n headerRow.eachCell((cell, number) => {\r\n cell.fill = {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: { argb: 'DEDADA' },\r\n bgColor: { argb: 'FF0000FF' }\r\n }\r\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\r\n })\r\n // worksheet.addRows(data);\r\n\r\n // Add Data and Conditional Formatting\r\n data.forEach(d => {\r\n let row = worksheet.addRow(d);\r\n });\r\n\r\n worksheet.getColumn(3).width = 30;\r\n worksheet.getColumn(4).width = 30;\r\n worksheet.addRow([]);\r\n\r\n //Generate Excel File with given name\r\n workbook.xlsx.writeBuffer().then((data) => {\r\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n saveAs.saveAs(blob, 'Incapacidades.xlsx');\r\n })\r\n }\r\n public generateExcelWorkLeave(list: any) {\r\n\r\n //Excel Title, Header, Data\r\n const title = 'Reporte de bajas';\r\n const header = [\"No. Empleado\"\r\n , \"Nombre completo\"\r\n , \"Marca\"\r\n , \"Fecha alta\"\r\n , \"Posición\"\r\n , \"Fecha baja Nóminas\"\r\n , \"Forma de pago\"\r\n , \"Salario\"\r\n , \"Compaañia\"]\r\n const data = this.dataFormatWorkLeave(list);\r\n\r\n //Create workbook and worksheet\r\n const Excel = require('exceljs');\r\n const workbook = new Excel.Workbook();\r\n let worksheet = workbook.addWorksheet('Bajas');\r\n\r\n //Add Row and formatting\r\n let titleRow = worksheet.addRow([title]);\r\n titleRow.font = { name: 'Arial', family: 4, size: 12, underline: 'double', bold: true }\r\n worksheet.addRow([]);\r\n let subTitleRow = worksheet.addRow(['Fecha de creación: ' + this.datePipe.transform(new Date(), 'medium')])\r\n\r\n worksheet.mergeCells('A1:D2');\r\n\r\n //Blank Row\r\n worksheet.addRow([]);\r\n\r\n //Add Header Row\r\n let headerRow = worksheet.addRow(header);\r\n\r\n // Cell Style : Fill and Border\r\n headerRow.eachCell((cell, number) => {\r\n cell.fill = {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: { argb: 'DEDADA' },\r\n bgColor: { argb: 'FF0000FF' }\r\n }\r\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\r\n })\r\n // worksheet.addRows(data);\r\n\r\n // Add Data and Conditional Formatting\r\n data.forEach(d => {\r\n let row = worksheet.addRow(d);\r\n });\r\n\r\n worksheet.getColumn(3).width = 30;\r\n worksheet.getColumn(4).width = 30;\r\n worksheet.addRow([]);\r\n\r\n //Generate Excel File with given name\r\n workbook.xlsx.writeBuffer().then((data) => {\r\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n saveAs.saveAs(blob, 'Bajas.xlsx');\r\n })\r\n }\r\n /**\r\n * generateExcelHolidays list: any */\r\n public generateExcelHolidays(list: any) {\r\n //Excel Title, Header, Data\r\n const title = 'Reporte de vacaciones';\r\n const header = [\"No. empleado\"\r\n , \"Nombre completo\"\r\n , \"Marca\"\r\n , \"Fecha inicio\"\r\n , \"Fecha fin\"\r\n , \"No. de días\"\r\n , \"Comentario empleado\"]\r\n const data = this.dataFormatHolidays(list);\r\n\r\n //Create workbook and worksheet\r\n const Excel = require('exceljs');\r\n const workbook = new Excel.Workbook();\r\n let worksheet = workbook.addWorksheet('Vacaciones');\r\n\r\n //Add Row and formatting\r\n let titleRow = worksheet.addRow([title]);\r\n titleRow.font = { name: 'Arial', family: 4, size: 12, underline: 'double', bold: true }\r\n worksheet.addRow([]);\r\n let subTitleRow = worksheet.addRow(['Fecha de creación: ' + this.datePipe.transform(new Date(), 'medium')])\r\n\r\n worksheet.mergeCells('A1:D2');\r\n\r\n //Blank Row\r\n worksheet.addRow([]);\r\n\r\n //Add Header Row\r\n let headerRow = worksheet.addRow(header);\r\n\r\n // Cell Style : Fill and Border\r\n headerRow.eachCell((cell, number) => {\r\n cell.fill = {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: { argb: 'DEDADA' },\r\n bgColor: { argb: 'FF0000FF' }\r\n }\r\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\r\n })\r\n // worksheet.addRows(data);\r\n\r\n // Add Data and Conditional Formatting\r\n data.forEach(d => {\r\n let row = worksheet.addRow(d);\r\n });\r\n\r\n worksheet.getColumn(3).width = 30;\r\n worksheet.getColumn(4).width = 30;\r\n worksheet.addRow([]);\r\n\r\n //Generate Excel File with given name\r\n workbook.xlsx.writeBuffer().then((data) => {\r\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n saveAs.saveAs(blob, 'Vacaciones.xlsx');\r\n })\r\n }\r\n public generateCsv(data: any) {\r\n const replacer = (key, value) => value === null ? '' : value; // specify how you want to handle null values here\r\n const header = Object.keys(data[0]);\r\n let csv = data.map(row => header.map(fieldName => JSON.stringify(row[fieldName], replacer)).join(','));\r\n csv.unshift(header.join(','));\r\n let csvArray = csv.join('\\r\\n');\r\n\r\n var blob = new Blob([csvArray], { type: 'text/csv;charset=utf-8;' })\r\n saveAs.saveAs(blob, \"bajas.csv\");\r\n }\r\n public generateExcelRelocations(list: any) {\r\n\r\n //Excel Title, Header, Data\r\n const title = 'Reporte de reubicaciones';\r\n const header = [\"No. Empleado\"\r\n , \"Nombre completo\"\r\n , \"Marca\"\r\n , \"Fecha reubicación\"\r\n , \"Genera vacante\"\r\n , \"Posición\"\r\n , \"Tipo reubicación\"\r\n , \"Ciudad\"\r\n , \"Compaañia\"]\r\n const data = this.dataFormatRelocations(list);\r\n\r\n //Create workbook and worksheet\r\n const Excel = require('exceljs');\r\n const workbook = new Excel.Workbook();\r\n let worksheet = workbook.addWorksheet('Reubicaciones');\r\n\r\n //Add Row and formatting\r\n let titleRow = worksheet.addRow([title]);\r\n titleRow.font = { name: 'Arial', family: 4, size: 12, underline: 'double', bold: true }\r\n worksheet.addRow([]);\r\n let subTitleRow = worksheet.addRow(['Fecha de creación: ' + this.datePipe.transform(new Date(), 'medium')])\r\n\r\n worksheet.mergeCells('A1:D2');\r\n\r\n //Blank Row\r\n worksheet.addRow([]);\r\n\r\n //Add Header Row\r\n let headerRow = worksheet.addRow(header);\r\n\r\n // Cell Style : Fill and Border\r\n headerRow.eachCell((cell, number) => {\r\n cell.fill = {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: { argb: 'DEDADA' },\r\n bgColor: { argb: 'FF0000FF' }\r\n }\r\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\r\n })\r\n // worksheet.addRows(data);\r\n\r\n // Add Data and Conditional Formatting\r\n data.forEach(d => {\r\n let row = worksheet.addRow(d);\r\n });\r\n\r\n worksheet.getColumn(3).width = 30;\r\n worksheet.getColumn(4).width = 30;\r\n worksheet.addRow([]);\r\n\r\n //Generate Excel File with given name\r\n workbook.xlsx.writeBuffer().then((data) => {\r\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n saveAs.saveAs(blob, 'Reubicaciones.xlsx');\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoEmployeeFilter } from 'app/shared/models/request/holiday/dto-employee-filter.model';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoHoliday } from 'app/shared/models/request/holiday/dto-holiday.model';\r\n\r\n@Injectable()\r\nexport class HolidayService {\r\n private requestUrl = '';\r\n private recruitmentUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n });\r\n }\r\n }\r\n public getCatalogEmployeesByFilter(list: IDtoEmployeeFilter): Observable {\r\n const url =`${this.requestUrl}api/Employees/getCatalogsEmployeesByFilter/`;\r\n return this.service.post(url, list).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getEmployeesByBoss(bossId: string): Observable {\r\n const url =`${this.recruitmentUrl}api/Employees/getEmployeesByBoss?bossId=${bossId}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n } \r\n public getEmployeeData(id: string): Observable {\r\n const url = `${this.requestUrl}api/employees/getEmployeesById?id=${id}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getHolidayRequestsByEmployeeId(id: string, requisitionId: number): Observable {\r\n const url = `${this.requestUrl}api/Holidays/GetListHolidayRequestsByEmployeeId?employeeId=${id}&requisitionId=${requisitionId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getHolidayLaborOldByEmployeeId(id: string): Observable {\r\n const url = `${this.requestUrl}api/Holidays/GetListHolidayLaborOldByEmployeeId?employeeId=${id}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addHoliday(holiday: IDtoHoliday): Observable {\r\n const url =`${this.requestUrl}api/Holidays/`;\r\n return this.service.post(url, holiday).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateHoliday(holiday: IDtoHoliday): Observable {\r\n const url =`${this.requestUrl}api/Holidays/`;\r\n return this.service.putWithId(url, holiday).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getHolidaysRequest(list: IDtoEmployeeFilter): Observable {\r\n const url =`${this.requestUrl}api/holidays/getRequestHolidays/`;\r\n return this.service.post(url, list).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n } \r\n public getCatalogRequestStatus(): Observable {\r\n const url = `${this.requestUrl}api/holidays/getCatalogStatus/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogFederalHoliday(): Observable {\r\n const url = `${this.requestUrl}api/FederalHolidays/getCatalogFederalHoliday/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { BsModalRef, BsModalService, PageChangedEvent } from 'ngx-bootstrap';\r\nimport { ModalReasonRejectionComponent } from 'app/views/modales/request/holiday/modal-reason-rejection.component';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { HolidayService } from '../holiday.service';\r\nimport { IDtoEmployeeFilter } from 'app/shared/models/request/holiday/dto-employee-filter.model';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IDtoHoliday } from 'app/shared/models/request/holiday/dto-holiday.model';\r\nimport { KeyedCollection } from 'app/shared/models/employee/dto-employee.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ModalReasonCancelComponent } from 'app/views/modales/request/holiday/modal-reason-cancel.component';\r\nimport { IMyDateModel } from 'angular-mydatepicker';\r\nimport { ExcelService } from '../excel.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\n\r\n@Component({\r\n selector: 'app-holiday-approval',\r\n styleUrls: ['holiday-approval.style.scss'],\r\n templateUrl: 'holiday-approval.template.html'\r\n})\r\nexport class HolidayApprovalComponent implements OnDestroy, OnInit {\r\n @ViewChild('addSwal', { static: false }) private addSwal: SwalComponent;\r\n @ViewChild('coverHolidaySwal', { static: false }) private coverHolidaySwal: SwalComponent;\r\n /**Variables */\r\n private showRoles: any;\r\n private zones: any;\r\n private marks: any;\r\n public nav: any;\r\n private request: IDtoHoliday;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n /**Catalogos */\r\n private catalogRequestStatus: ISelect[];\r\n /**Pagination */\r\n private page: number;\r\n private itemsPage: number = 5;\r\n private listRequestFilter: IDtoHoliday[] = [];\r\n private listRequestFilterNameEmployee: IDtoHoliday[] = [];\r\n private listRequestTotal: IDtoHoliday[] = [];\r\n private status: number;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private employeeIniId: string;\r\n private profile: string;\r\n private locale: string = 'es';\r\n private start: IMyDateModel;\r\n private end: IMyDateModel;\r\n public constructor(private modalService: BsModalService\r\n , private configGeneral: AppConfig\r\n , private holidayService: HolidayService\r\n , private securityService: SecurityService\r\n , private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private excelService: ExcelService\r\n , private identityService: IdentityService) {\r\n this.nav = document.querySelector('nav.navbar');\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n this.profile = this.securityService.getProfileStorage('HolidayApproval');\r\n if (this.showRoles !== '') {\r\n this.employeeIniId = this.showRoles.employeeId;\r\n this.zones = this.showRoles.listZones === undefined ? [] : this.showRoles.listZones;\r\n this.marks = this.showRoles.listMarks === undefined ? [] : this.showRoles.listMarks;\r\n }\r\n }\r\n\r\n ngOnInit(): any {\r\n this.nav.className += ' white-bg';\r\n if (this.configurationService.isReady) {\r\n this.getCatalogRequestStatus();\r\n this.getNewRequest();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getCatalogRequestStatus();\r\n this.getNewRequest();\r\n });\r\n }\r\n let d: Date = new Date();\r\n this.start = { isRange: false, singleDate: { jsDate: d }, dateRange: null };\r\n this.end = { isRange: false, singleDate: { jsDate: d }, dateRange: null };\r\n }\r\n public ngOnDestroy(): any {\r\n this.nav.classList.remove('white-bg');\r\n }\r\n private generateExcel() {\r\n if (this.listRequestTotal != undefined) {\r\n this.excelService.generateExcelHolidays(this.listRequestTotal);\r\n }\r\n }\r\n private getCatalogRequestStatus(): void {\r\n this.holidayService.getCatalogRequestStatus().subscribe((res) => {\r\n this.catalogRequestStatus = res;\r\n });\r\n }\r\n private getNewRequest(): void {\r\n this.spinner.show();\r\n const list = this.filters(0);\r\n this.holidayService.getHolidaysRequest(list).subscribe((res) => {\r\n if (res.isCorrect) {\r\n this.listRequestTotal = res.data as IDtoHoliday[];\r\n this.listRequestFilterNameEmployee = this.listRequestTotal;\r\n this.showItems(this.listRequestFilterNameEmployee);\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private getApprovedRequest(): void {\r\n this.spinner.show();\r\n const list = this.filters(1);\r\n this.holidayService.getHolidaysRequest(list).subscribe((res) => {\r\n if (res.isCorrect) {\r\n this.listRequestTotal = res.data as IDtoHoliday[];\r\n this.listRequestFilterNameEmployee = this.listRequestTotal;\r\n this.showItems(this.listRequestFilterNameEmployee);\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private getRejectedRequest(): void {\r\n this.spinner.show();\r\n const list = this.filters(2);\r\n this.holidayService.getHolidaysRequest(list).subscribe((res) => {\r\n if (res.isCorrect) {\r\n this.listRequestTotal = res.data as IDtoHoliday[];\r\n this.listRequestFilterNameEmployee = this.listRequestTotal;\r\n this.showItems(this.listRequestFilterNameEmployee);\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private getCancelRequest(): void {\r\n this.spinner.show();\r\n const list = this.filters(3);\r\n this.holidayService.getHolidaysRequest(list).subscribe((res) => {\r\n if (res.isCorrect) {\r\n this.listRequestTotal = res.data as IDtoHoliday[];\r\n this.listRequestFilterNameEmployee = this.listRequestTotal;\r\n this.showItems(this.listRequestFilterNameEmployee);\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private filters(status: number): IDtoEmployeeFilter {\r\n const list = {} as IDtoEmployeeFilter;\r\n list.statusId = status;\r\n list.employeeId = this.employeeIniId;\r\n list.profile = this.profile;\r\n list.startDate = this.getDate(this.start);\r\n list.endDate = this.getDate(this.end);\r\n this.status = status;\r\n return list;\r\n }\r\n private openModalReasonRejection(request: IDtoHoliday): void {\r\n const initialState = {\r\n title: 'Motivo de rechazo',\r\n request: request\r\n };\r\n this.modalRef = this.modalService.show(ModalReasonRejectionComponent\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.getNewRequest();\r\n }\r\n });\r\n }\r\n private openModalReasonCancel(request: IDtoHoliday): void {\r\n const initialState = {\r\n title: 'Motivo de cancelación',\r\n request: request\r\n };\r\n this.modalRef = this.modalService.show(ModalReasonCancelComponent\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.getApprovedRequest();\r\n }\r\n });\r\n }\r\n private isCoverHoliday(request: IDtoHoliday): void {\r\n this.request = request;\r\n this.coverHolidaySwal.title = 'Indique si el periodo vacacional a aprobar requiere ser cubierto o no.';\r\n this.coverHolidaySwal.show();\r\n }\r\n private submitForm(): void {\r\n this.addSwal.title = 'Seguro que desea aprobar el periodo vacacional seleccionado.';\r\n this.addSwal.show();\r\n }\r\n private yesRequired(): void {\r\n this.request.coverHoliday = true;\r\n this.submitForm();\r\n }\r\n private noRequired(): void {\r\n this.request.coverHoliday = false;\r\n this.submitForm();\r\n }\r\n private update(): void {\r\n this.spinner.show();\r\n this.request.status = 1;\r\n this.holidayService.updateHoliday(this.request)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.getNewRequest();\r\n this.addModuleLog(this.request.id)\r\n this.spinner.hide();\r\n } else {\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private showItems(data: IDtoHoliday[]): void {\r\n const startItem = (1 - 1) * this.itemsPage;\r\n const endItem = 1 * this.itemsPage;\r\n this.listRequestFilter = data.slice(startItem, endItem);\r\n this.page = 1;\r\n }\r\n private pageChanged(event: PageChangedEvent): void {\r\n const startItem = (event.page - 1) * event.itemsPerPage;\r\n const endItem = event.page * event.itemsPerPage;\r\n this.listRequestFilter = this.listRequestFilterNameEmployee.slice(startItem, endItem);\r\n }\r\n private getDate(event?: IMyDateModel) {\r\n if (event === undefined) {\r\n return null;\r\n }\r\n return event.singleDate.jsDate;\r\n }\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Holidays';\r\n dto.module = 'holidayApproval';\r\n dto.action = 'approved';\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n private filterNameEmployee(name: string): void {\r\n let result: IDtoHoliday[] = [];\r\n const uppercaseName = name.toUpperCase();\r\n if (name != ''){\r\n result = this.listRequestTotal.filter(a => a.employeeName.includes(uppercaseName));\r\n this.listRequestFilterNameEmployee = result;\r\n }\r\n else{\r\n result = this.listRequestTotal;\r\n this.listRequestFilterNameEmployee = result;\r\n }\r\n this.showItems(result);\r\n }\r\n}\r\n","module.exports = \"/* stylelint-disable order/properties-alphabetical-order */\\n/* stylelint-enable */\\n/* colors */\\n/* tab setting */\\n/* breakpoints */\\n/* selectors relative to radio inputs */\\nhtml {\\n width: 100%;\\n height: 100%;\\n}\\nbody {\\n background: #efefef;\\n color: #333;\\n font-family: \\\"Raleway\\\";\\n height: 100%;\\n}\\nbody h1 {\\n text-align: center;\\n color: #1ab394;\\n font-weight: 300;\\n padding: 40px 0 20px 0;\\n margin: 0;\\n}\\n.tabs {\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n position: relative;\\n padding-bottom: 40px;\\n}\\n.tabs input[name=tab-control] {\\n display: none;\\n}\\n.tabs .content section h2,\\n.tabs ul li label {\\n font-weight: bold;\\n font-size: 15px;\\n color: #1ab394;\\n}\\n.tabs ul {\\n list-style-type: none;\\n padding-left: 0;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n margin-bottom: 10px;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n -webkit-box-align: end;\\n align-items: flex-end;\\n flex-wrap: wrap;\\n}\\n.tabs ul li {\\n box-sizing: border-box;\\n -webkit-box-flex: 1;\\n flex: 1;\\n width: 25%;\\n padding: 0 10px;\\n text-align: center;\\n}\\n.tabs ul li label {\\n -webkit-transition: all 0.3s ease-in-out;\\n transition: all 0.3s ease-in-out;\\n color: #676767;\\n padding: 5px auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n cursor: pointer;\\n -webkit-transition: all 0.2s ease-in-out;\\n transition: all 0.2s ease-in-out;\\n white-space: nowrap;\\n -webkit-touch-callout: none;\\n}\\n.tabs ul li label br {\\n display: none;\\n}\\n.tabs ul li label svg {\\n fill: #676767;\\n height: 1.2em;\\n vertical-align: bottom;\\n margin-right: 0.2em;\\n -webkit-transition: all 0.2s ease-in-out;\\n transition: all 0.2s ease-in-out;\\n}\\n.tabs ul li label:hover, .tabs ul li label:focus, .tabs ul li label:active {\\n outline: 0;\\n color: #8d8d8d;\\n}\\n.tabs ul li label:hover svg, .tabs ul li label:focus svg, .tabs ul li label:active svg {\\n fill: #8d8d8d;\\n}\\n.tabs .slider {\\n position: relative;\\n width: 25%;\\n -webkit-transition: all 0.33s cubic-bezier(0.38, 0.8, 0.32, 1.07);\\n transition: all 0.33s cubic-bezier(0.38, 0.8, 0.32, 1.07);\\n}\\n.tabs .slider .indicator {\\n position: relative;\\n width: 50px;\\n max-width: 100%;\\n margin: 0 auto;\\n height: 4px;\\n background: #1ab394;\\n border-radius: 1px;\\n}\\n.tabs .content {\\n margin-top: 30px;\\n}\\n.tabs .content section {\\n display: none;\\n -webkit-animation-name: content;\\n animation-name: content;\\n -webkit-animation-direction: normal;\\n animation-direction: normal;\\n -webkit-animation-duration: 0.3s;\\n animation-duration: 0.3s;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n line-height: 1.4;\\n}\\n.tabs .content section h2 {\\n color: #1ab394;\\n display: none;\\n}\\n.tabs .content section h2::after {\\n content: \\\"\\\";\\n position: relative;\\n display: block;\\n width: 30px;\\n height: 3px;\\n background: #1ab394;\\n margin-top: 5px;\\n left: 1px;\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 600px) {\\n .tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ .slider {\\n -webkit-transform: translateX(0%);\\n transform: translateX(0%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ .content > section:nth-child(1) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 600px) {\\n .tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ .slider {\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ .content > section:nth-child(2) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 600px) {\\n .tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ .slider {\\n -webkit-transform: translateX(200%);\\n transform: translateX(200%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ .content > section:nth-child(3) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label {\\n cursor: default;\\n color: #1ab394;\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label svg {\\n fill: #1ab394;\\n}\\n@media (max-width: 600px) {\\n .tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ .slider {\\n -webkit-transform: translateX(300%);\\n transform: translateX(300%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ .content > section:nth-child(4) {\\n display: block;\\n}\\n@-webkit-keyframes content {\\n from {\\n opacity: 0;\\n -webkit-transform: translateY(5%);\\n transform: translateY(5%);\\n }\\n to {\\n opacity: 1;\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n }\\n}\\n@keyframes content {\\n from {\\n opacity: 0;\\n -webkit-transform: translateY(5%);\\n transform: translateY(5%);\\n }\\n to {\\n opacity: 1;\\n -webkit-transform: translateY(0%);\\n transform: translateY(0%);\\n }\\n}\\n@media (max-width: 1000px) {\\n .tabs ul li label {\\n white-space: initial;\\n }\\n .tabs ul li label br {\\n display: initial;\\n }\\n .tabs ul li label svg {\\n height: 1.5em;\\n }\\n}\\n@media (max-width: 600px) {\\n .tabs ul li label {\\n padding: 5px;\\n border-radius: 5px;\\n }\\n .tabs ul li label span {\\n display: none;\\n }\\n .tabs .slider {\\n display: none;\\n }\\n .tabs .content {\\n margin-top: 20px;\\n }\\n .tabs .content section h2 {\\n display: block;\\n }\\n}\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n.m-b-dowload-excel {\\n margin-bottom: -30px;\\n margin-top: -10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9ob2xpZGF5L0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccmVxdWVzdFxcaG9saWRheVxcaG9saWRheS1hcHByb3ZhbC5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2hvbGlkYXkvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zdGRpbiIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9ob2xpZGF5L2hvbGlkYXktYXBwcm92YWwuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsMERBQUE7QUFPQSxxQkFBQTtBQ3hCQSxXQUFBO0FBVUEsZ0JBQUE7QUFLQSxnQkFBQTtBQU9BLHVDQUFBO0FBMkJBO0VBQ0UsV0FBQTtFQUNBLFlBQUE7QUM3Q0Y7QURnREE7RUFDRSxtQkFBQTtFQUNBLFdBckRLO0VBc0RMLHNCQUFBO0VBQ0EsWUFBQTtBQzdDRjtBRCtDRTtFQUNFLGtCQUFBO0VBQ0EsY0E3REc7RUE4REgsZ0JBQUE7RUFDQSxzQkFBQTtFQUNBLFNBQUE7QUM3Q0o7QURpREE7RUFDRSxTQUFBO0VBQ0EsbUNBQUE7VUFBQSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7QUM5Q0Y7QUQrQ0U7RUFDRSxhQUFBO0FDN0NKO0FEZ0RFOztFQUVFLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGNBakZHO0FDbUNQO0FEaURFO0VBQ0UscUJBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7RUFBQSxhQUFBO0VBQ0EsOEJBQUE7RUFBQSw2QkFBQTtVQUFBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0VBQ0Esc0JBQUE7VUFBQSxxQkFBQTtF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QUFBO0FDZEY7QURnQkE7RUFDRSxvQkFBQTtFQUNBLGlCQUFBO0FDYkYiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2hvbGlkYXkvaG9saWRheS1hcHByb3ZhbC5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gT3V0cHV0cyB0aGUgYG92ZXJmbG93LXdyYXBgIHByb3BlcnR5IGFuZCBpdHMgbGVnYWN5IG5hbWUgYHdvcmQtd3JhcGAgdG9cbi8vLyBzdXBwb3J0IGJyb3dzZXJzIHRoYXQgZG8gbm90IHlldCB1c2UgYG92ZXJmbG93LXdyYXBgLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtzdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgQWNjZXB0ZWQgQ1NTIHZhbHVlcyBhcmUgYG5vcm1hbGAsIGBicmVhay13b3JkYCwgYGluaGVyaXRgLCBgaW5pdGlhbGAsXG4vLy8gICBvciBgdW5zZXRgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSBvdmVyZmxvdy13cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgb3JkZXIvcHJvcGVydGllcy1hbHBoYWJldGljYWwtb3JkZXIgKi9cblxuQG1peGluIG92ZXJmbG93LXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgd29yZC13cmFwOiAkd3JhcDtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgXCIuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9jb3JlL2JvdXJib25cIjtcclxuQGltcG9ydCBcIi4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvY29yZS9uZWF0XCI7XHJcblxyXG4vKiBjb2xvcnMgKi9cclxuJGJsdWU6ICMxYWIzOTQ7XHJcbiRyZWQ6ICNGRjRBNTM7XHJcbiRkYXJrOiAjMzMzO1xyXG5cclxuJGFjY2VudDogJGJsdWU7XHJcbiRhY2NlbnQtaW5hY3RpdmU6IGRlc2F0dXJhdGUoJGFjY2VudCwgODUlKTtcclxuJHNlY29uZGFyeTogJGFjY2VudC1pbmFjdGl2ZTtcclxuXHJcblxyXG4vKiB0YWIgc2V0dGluZyAqL1xyXG4kdGFiLWNvdW50OiA0O1xyXG4kaW5kaWNhdG9yLXdpZHRoOiA1MHB4O1xyXG4kaW5kaWNhdG9yLWhlaWdodDogNHB4O1xyXG5cclxuLyogYnJlYWtwb2ludHMgKi9cclxuJGJyZWFrcG9pbnRzOiAoXHJcbiAgbWVkaXVtOiAjeyR0YWItY291bnQqMjUwcHh9LFxyXG4gIHNtYWxsOiAjeyR0YWItY291bnQqMTUwcHh9XHJcbik7XHJcblxyXG5cclxuLyogc2VsZWN0b3JzIHJlbGF0aXZlIHRvIHJhZGlvIGlucHV0cyAqL1xyXG4kbGFiZWwtc2VsZWN0b3I6IFwifiB1bCA+IGxpXCI7XHJcbiRzbGlkZXItc2VsZWN0b3I6IFwifiAuc2xpZGVyXCI7XHJcbiRjb250ZW50LXNlbGVjdG9yOiBcIn4gLmNvbnRlbnQgPiBzZWN0aW9uXCI7XHJcblxyXG5AbWl4aW4gdGFicyhcclxuICAkbGFiZWwtc2VsZWN0b3I6ICRsYWJlbC1zZWxlY3RvcixcclxuICAkc2xpZGVyLXNlbGVjdG9yOiAkc2xpZGVyLXNlbGVjdG9yLFxyXG4gICRjb250ZW50LXNlbGVjdG9yOiAkY29udGVudC1zZWxlY3Rvcikge1xyXG4gICAgXHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkdGFiLWNvdW50IHtcclxuICAgICY6bnRoLW9mLXR5cGUoI3skaX0pOmNoZWNrZWQge1xyXG4gICAgICAjeyRsYWJlbC1zZWxlY3Rvcn06bnRoLWNoaWxkKCN7JGl9KSB7XHJcbiAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICN7JHNsaWRlci1zZWxlY3Rvcn0ge1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgjezEwMCUgKiAoJGkgLSAxKX0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAjeyRjb250ZW50LXNlbGVjdG9yfTpudGgtY2hpbGQoI3skaX0pIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuaHRtbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG5ib2R5IHtcclxuICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xyXG4gIGNvbG9yOiAkZGFyaztcclxuICBmb250LWZhbWlseTogXCJSYWxld2F5XCI7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIFxyXG4gIGgxIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiAkYWNjZW50O1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIHBhZGRpbmc6IDQwcHggMCAyMHB4IDA7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG59XHJcblxyXG4udGFicyB7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcbiAgaW5wdXRbbmFtZT1cInRhYi1jb250cm9sXCJdIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIFxyXG4gIC5jb250ZW50IHNlY3Rpb24gaDIsXHJcbiAgdWwgbGkgbGFiZWwge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBjb2xvcjogJGFjY2VudDtcclxuICB9XHJcbiAgXHJcbiAgdWwge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgXHJcbiAgICBsaSB7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIGZsZXg6IDE7XHJcbiAgICAgIHdpZHRoOiAjezEwMCUvJHRhYi1jb3VudH07XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBcclxuICAgICAgbGFiZWwge1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xyXG4gICAgICAgIHBhZGRpbmc6IDVweCBhdXRvO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgICAgIGJyIHtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICBmaWxsOiAkc2Vjb25kYXJ5O1xyXG4gICAgICAgICAgaGVpZ2h0OiAxLjJlbTtcclxuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMmVtO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyxcclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICBvdXRsaW5lOiAwO1xyXG4gICAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJHNlY29uZGFyeSwgMTUlKTtcclxuICAgICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgIGZpbGw6IGxpZ2h0ZW4oJHNlY29uZGFyeSwgMTUlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLnNsaWRlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogI3sxMDAlLyR0YWItY291bnR9O1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMzNzIGN1YmljLWJlemllcigwLjM4LCAwLjgsIDAuMzIsIDEuMDcpO1xyXG4gICAgLmluZGljYXRvciB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgd2lkdGg6ICRpbmRpY2F0b3Itd2lkdGg7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgIGhlaWdodDogJGluZGljYXRvci1oZWlnaHQ7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRhY2NlbnQ7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsgICAgIFxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgbWFyZ2luLXRvcDogMzBweDtcclxuICAgIFxyXG4gICAgc2VjdGlvbiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIGFuaW1hdGlvbjoge1xyXG4gICAgICAgIG5hbWU6IGNvbnRlbnQ7XHJcbiAgICAgICAgZGlyZWN0aW9uOiBub3JtYWw7XHJcbiAgICAgICAgZHVyYXRpb246IDAuM3M7XHJcbiAgICAgICAgdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuICAgICAgICBpdGVyYXRpb24tY291bnQ6IDE7XHJcbiAgICAgIH1cclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICAgICAgXHJcbiAgICAgIGgyIHtcclxuICAgICAgICBjb2xvcjogJGFjY2VudDtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAzcHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjZW50O1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgICAgICAgbGVmdDogMXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBpbnB1dFtuYW1lPVwidGFiLWNvbnRyb2xcIl0ge1xyXG4gICAgQGluY2x1ZGUgdGFicyB7XHJcbiAgICAgID4gbGFiZWwge1xyXG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICBjb2xvcjogJGFjY2VudDtcclxuICAgICAgICBcclxuICAgICAgICBzdmcge1xyXG4gICAgICAgICAgZmlsbDogJGFjY2VudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBzbWFsbCkpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIGNvbnRlbnQge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1JSk7XHJcbiAgICB9XHJcbiAgICB0byB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAtZ2V0KCRicmVha3BvaW50cywgbWVkaXVtKSkge1xyXG4gICAgdWwgbGkgbGFiZWwge1xyXG4gICAgICB3aGl0ZS1zcGFjZTogaW5pdGlhbDtcclxuICAgICAgXHJcbiAgICAgIGJyIHtcclxuICAgICAgICBkaXNwbGF5OiBpbml0aWFsO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBzdmcge1xyXG4gICAgICAgIGhlaWdodDogMS41ZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBzbWFsbCkpIHtcclxuICAgIHVsIGxpIGxhYmVsIHtcclxuICAgICAgcGFkZGluZzogNXB4O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICAgIFxyXG4gICAgICBzcGFuIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5zbGlkZXIge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY29udGVudCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7IFxyXG4gICAgICBzZWN0aW9uIGgyIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn1cclxuLm0tYi1kb3dsb2FkLWV4Y2VsIHtcclxuICBtYXJnaW4tYm90dG9tOiAtMzBweDtcclxuICBtYXJnaW4tdG9wOiAtMTBweDtcclxufSIsIi8qIHN0eWxlbGludC1kaXNhYmxlIG9yZGVyL3Byb3BlcnRpZXMtYWxwaGFiZXRpY2FsLW9yZGVyICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBjb2xvcnMgKi9cbi8qIHRhYiBzZXR0aW5nICovXG4vKiBicmVha3BvaW50cyAqL1xuLyogc2VsZWN0b3JzIHJlbGF0aXZlIHRvIHJhZGlvIGlucHV0cyAqL1xuaHRtbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xuICBjb2xvcjogIzMzMztcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5ib2R5IGgxIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzFhYjM5NDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgcGFkZGluZzogNDBweCAwIDIwcHggMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4udGFicyB7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRhYnMgLmNvbnRlbnQgc2VjdGlvbiBoMixcbi50YWJzIHVsIGxpIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgY29sb3I6ICMxYWIzOTQ7XG59XG4udGFicyB1bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnRhYnMgdWwgbGkge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4OiAxO1xuICB3aWR0aDogMjUlO1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi50YWJzIHVsIGxpIGxhYmVsIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIGNvbG9yOiAjNjc2NzY3O1xuICBwYWRkaW5nOiA1cHggYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG59XG4udGFicyB1bCBsaSBsYWJlbCBiciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGFicyB1bCBsaSBsYWJlbCBzdmcge1xuICBmaWxsOiAjNjc2NzY3O1xuICBoZWlnaHQ6IDEuMmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBtYXJnaW4tcmlnaHQ6IDAuMmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbn1cbi50YWJzIHVsIGxpIGxhYmVsOmhvdmVyLCAudGFicyB1bCBsaSBsYWJlbDpmb2N1cywgLnRhYnMgdWwgbGkgbGFiZWw6YWN0aXZlIHtcbiAgb3V0bGluZTogMDtcbiAgY29sb3I6ICM4ZDhkOGQ7XG59XG4udGFicyB1bCBsaSBsYWJlbDpob3ZlciBzdmcsIC50YWJzIHVsIGxpIGxhYmVsOmZvY3VzIHN2ZywgLnRhYnMgdWwgbGkgbGFiZWw6YWN0aXZlIHN2ZyB7XG4gIGZpbGw6ICM4ZDhkOGQ7XG59XG4udGFicyAuc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMjUlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zM3MgY3ViaWMtYmV6aWVyKDAuMzgsIDAuOCwgMC4zMiwgMS4wNyk7XG59XG4udGFicyAuc2xpZGVyIC5pbmRpY2F0b3Ige1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZDogIzFhYjM5NDtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuLnRhYnMgLmNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuLnRhYnMgLmNvbnRlbnQgc2VjdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFuaW1hdGlvbi1uYW1lOiBjb250ZW50O1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG4udGFicyAuY29udGVudCBzZWN0aW9uIGgyIHtcbiAgY29sb3I6ICMxYWIzOTQ7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGFicyAuY29udGVudCBzZWN0aW9uIGgyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDNweDtcbiAgYmFja2dyb3VuZDogIzFhYjM5NDtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBsZWZ0OiAxcHg7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgxKTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoMSkgPiBsYWJlbCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6ICMxYWIzOTQ7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgxKTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoMSkgPiBsYWJlbCBzdmcge1xuICBmaWxsOiAjMWFiMzk0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDEpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgxKSA+IGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICB9XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgxKTpjaGVja2VkIH4gLnNsaWRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgxKTpjaGVja2VkIH4gLmNvbnRlbnQgPiBzZWN0aW9uOm50aC1jaGlsZCgxKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMik6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDIpID4gbGFiZWwge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGNvbG9yOiAjMWFiMzk0O1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMik6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDIpID4gbGFiZWwgc3ZnIHtcbiAgZmlsbDogIzFhYjM5NDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAudGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgyKTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoMikgPiBsYWJlbCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgfVxufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMik6Y2hlY2tlZCB+IC5zbGlkZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgyKTpjaGVja2VkIH4gLmNvbnRlbnQgPiBzZWN0aW9uOm50aC1jaGlsZCgyKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMyk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDMpID4gbGFiZWwge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGNvbG9yOiAjMWFiMzk0O1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMyk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDMpID4gbGFiZWwgc3ZnIHtcbiAgZmlsbDogIzFhYjM5NDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAudGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgzKTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoMykgPiBsYWJlbCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgfVxufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMyk6Y2hlY2tlZCB+IC5zbGlkZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwJSk7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgzKTpjaGVja2VkIH4gLmNvbnRlbnQgPiBzZWN0aW9uOm50aC1jaGlsZCgzKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoNCk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDQpID4gbGFiZWwge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGNvbG9yOiAjMWFiMzk0O1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoNCk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDQpID4gbGFiZWwgc3ZnIHtcbiAgZmlsbDogIzFhYjM5NDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAudGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSg0KTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoNCkgPiBsYWJlbCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgfVxufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoNCk6Y2hlY2tlZCB+IC5zbGlkZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzAwJSk7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSg0KTpjaGVja2VkIH4gLmNvbnRlbnQgPiBzZWN0aW9uOm50aC1jaGlsZCg0KSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQGtleWZyYW1lcyBjb250ZW50IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNSUpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDAwcHgpIHtcbiAgLnRhYnMgdWwgbGkgbGFiZWwge1xuICAgIHdoaXRlLXNwYWNlOiBpbml0aWFsO1xuICB9XG4gIC50YWJzIHVsIGxpIGxhYmVsIGJyIHtcbiAgICBkaXNwbGF5OiBpbml0aWFsO1xuICB9XG4gIC50YWJzIHVsIGxpIGxhYmVsIHN2ZyB7XG4gICAgaGVpZ2h0OiAxLjVlbTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC50YWJzIHVsIGxpIGxhYmVsIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICB9XG4gIC50YWJzIHVsIGxpIGxhYmVsIHNwYW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnRhYnMgLnNsaWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAudGFicyAuY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuICAudGFicyAuY29udGVudCBzZWN0aW9uIGgyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5cbi5tLWItZG93bG9hZC1leGNlbCB7XG4gIG1hcmdpbi1ib3R0b206IC0zMHB4O1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbn0iXX0= */\"","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { BsDatepickerConfig } from 'ngx-bootstrap';\r\nimport { HolidayRange } from 'app/shared/models/request/holiday/range-holiday.class';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { HolidayService } from '../holiday.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { IDtoEmployeeFilter } from 'app/shared/models/request/holiday/dto-employee-filter.model';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoHoliday } from 'app/shared/models/request/holiday/dto-holiday.model';\r\nimport { IDtoHistory } from 'app/shared/models/request/holiday/dto-history.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { CustomerService } from '../../quote/customer.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { PayrollService } from '../../payroll.service';\r\nimport { IDtoPayroll } from 'app/shared/models/payroll/dto-payroll.model';\r\nimport { TH } from 'angular-mydatepicker';\r\nimport { IDtoPeriod } from 'app/shared/models/payroll/dto-period.model';\r\n@Component({\r\n selector: 'app-holiday-request',\r\n styleUrls: ['holiday-request.style.scss'],\r\n templateUrl: 'holiday-request.template.html'\r\n})\r\nexport class HolidayRequestComponent implements OnDestroy, OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Variables */\r\n public nav: any;\r\n private eventFormatted = false;\r\n private showRoles: any;\r\n /**Formularios */\r\n private formHoliday: FormGroup;\r\n /**Catalogos */\r\n private catalogEmployees: ISelect[];\r\n private catalogEmployeesTemp: ISelect[];\r\n private catalogTrademarks: Observable;\r\n /**Listas */\r\n private listHolidayRequests: IDtoHoliday[] = [];\r\n private listHolidayLaborOlds: IDtoHistory[] = [];\r\n @ViewChild('addSwal', { static: false }) private addSwal: SwalComponent;\r\n private rangeHoliday = new HolidayRange(null, 0, new Date(), new Date(), null);\r\n private zones: any;\r\n private marks: any;\r\n private employee = {} as IDtoEmployee;\r\n private employeeIniId: string;\r\n private festiveDays: ISelect[];\r\n private minDate: Date;\r\n private period = {} as IDtoPeriod;\r\n public constructor(private configurationService: ConfigurationService\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private holidayService: HolidayService\r\n , private spinner: NgxSpinnerService\r\n , private securityService: SecurityService\r\n , private identityService: IdentityService\r\n , private customerService: CustomerService\r\n , private payrollService: PayrollService) {\r\n this.nav = document.querySelector('nav.navbar');\r\n this.initializeFormHoliday();\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n if (this.showRoles !== '') {\r\n this.employeeIniId = this.showRoles.employeeId;\r\n this.zones = this.showRoles.listZones === undefined ? [] : this.showRoles.listZones;\r\n this.marks = this.showRoles.listClients === undefined ? [] : this.showRoles.listClients;\r\n }\r\n }\r\n ngOnInit(): any {\r\n this.nav.className += ' white-bg';\r\n if (this.configurationService.isReady) {\r\n this.initialize();\r\n this.spinner.show();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.initialize();\r\n this.spinner.show();\r\n });\r\n }\r\n }\r\n private initialize(): void {\r\n this.getEmployeeData(this.employeeIniId);\r\n this.getCatalogEmployeesByFilter();\r\n this.getCatalogFederalHoliday();\r\n this.catalogTrademarks = this.customerService.getCatalogCustomers();\r\n }\r\n private getEmployeesByTrademark(dto: IDtoCatalog): void {\r\n this.employeeIniId = null;\r\n this.catalogEmployees = this.catalogEmployeesTemp.filter(e => e.additional == dto.id.toString());\r\n }\r\n private getCatalogEmployeesByFilter(): void {\r\n this.holidayService.getEmployeesByBoss(this.employeeIniId).subscribe(x => {\r\n this.catalogEmployeesTemp = x;\r\n this.catalogEmployees = x;\r\n })\r\n }\r\n private getCatalogFederalHoliday(): void {\r\n this.holidayService.getCatalogFederalHoliday().subscribe(x => {\r\n this.festiveDays = x;\r\n })\r\n }\r\n private initializeFormHoliday() {\r\n this.formHoliday = this.formBuilder.group({\r\n holidayPeriod: [null, Validators.required],\r\n comments: [null, [Validators.required, Validators.maxLength(500)]]\r\n });\r\n }\r\n public ngOnDestroy(): any {\r\n this.nav.classList.remove('white-bg');\r\n }\r\n private selectHoliday(values: Date[]): void {\r\n if (values !== null) {\r\n if (this.employee.availableDays === 0) {\r\n this.configGeneral.newToast('Validación', 'Usted no tiene dias disponibles para tomar vacaciones', 'warning');\r\n return;\r\n }\r\n this.eventFormatted = true;\r\n let initDate = new Date(values[0].getFullYear(),\r\n values[0].getMonth(),\r\n values[0].getDate(), 0, 0, 0, 0);\r\n\r\n let finalDate = new Date(values[1].getFullYear(),\r\n values[1].getMonth(),\r\n values[1].getDate(), 23, 59, 59, 0);\r\n const availableDays = 10;\r\n this.rangeHoliday = new HolidayRange(this.employee.nonWorkingDays, availableDays, initDate, finalDate, this.festiveDays);\r\n this.rangeHoliday.totalDays = this.rangeHoliday.differenceDateNum - this.rangeHoliday.discardedDays\r\n const availableDaysTmp = this.rangeHoliday.availableDays - this.rangeHoliday.totalDays;\r\n this.rangeHoliday.availableDays = !isNaN(availableDaysTmp) ? (availableDaysTmp >= 0 ? availableDaysTmp : 0) : 0;\r\n this.getDateRangeToString();\r\n if (this.rangeHoliday.totalDays > this.employee.availableDays) {\r\n this.configGeneral.newToast('Validación', 'Los dias seleccionados sobre pasan los disponibles', 'error');\r\n }\r\n }\r\n }\r\n private discard(): void {\r\n this.eventFormatted = false;\r\n this.rangeHoliday = new HolidayRange(null, 0, new Date(), new Date(), null);\r\n this.formHoliday.reset();\r\n }\r\n private getDateRangeToString(): void {\r\n this.rangeHoliday.listDiscardedDays.forEach((element) => {\r\n this.rangeHoliday.listDiscardedDaysToString.push(this.getLocaleDateString(element));\r\n });\r\n }\r\n private getLocaleDateString(date: any): string {\r\n const dt = new Date(date);\r\n const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };\r\n return dt.toLocaleDateString('es-MX', options);\r\n }\r\n private submitForm(): void {\r\n if (this.formHoliday.valid) {\r\n this.addSwal.title = 'El periodo vacacional seleccionado sera enviado a su jefe inmediato para su aprobación.';\r\n this.addSwal.show();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n this.configGeneral.touchedControls(this.formHoliday);\r\n }\r\n }\r\n private save(): void {\r\n this.spinner.show();\r\n const holiday = {} as IDtoHoliday;\r\n holiday.employeeId = this.employeeIniId;\r\n holiday.employeeNum = this.employee.employeeNum;\r\n holiday.availableDays = this.employee.availableDays;\r\n holiday.employeeDate = this.employee.employeeDate;\r\n holiday.laborSeniorityDate = this.employee.laborSeniorityDate;\r\n holiday.initDate = this.configGeneral.getLocalISOTime(this.rangeHoliday.initDate);\r\n holiday.finalDate = this.configGeneral.getLocalISOTime(this.rangeHoliday.finalDate);\r\n holiday.totalDays = this.rangeHoliday.totalDays;\r\n holiday.comments = this.formHoliday.value.comments;\r\n holiday.createdDate = null;\r\n holiday.priorBalance = this.employee.availableDays;\r\n holiday.discardedDays = this.rangeHoliday.discardedDays;\r\n holiday.codeNomPayroll = this.employee.employeeTypePayrollId;\r\n holiday.codeNomcompanyPay = this.employee.employeeCompanyId;\r\n holiday.positionId = this.employee.employeePositionId;\r\n this.holidayService.addHoliday(holiday)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.getEmployeeData(this.employeeIniId);\r\n let h = x.data as IDtoHoliday\r\n this.addModuleLog(h.id);\r\n this.formHoliday.reset();\r\n } else\r\n {\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n\r\n private getEmployeeData(id: string): void {\r\n this.spinner.show();\r\n this.eventFormatted = false;\r\n this.formHoliday.reset();\r\n this.holidayService.getEmployeeData(id).subscribe((res) => {\r\n this.employee = res.data as IDtoEmployee;\r\n const availableDays = this.employee.availableDays == null ? 0 : this.employee.availableDays;\r\n this.rangeHoliday = new HolidayRange(this.employee.nonWorkingDays, availableDays, new Date(), new Date(), this.festiveDays);\r\n this.getHolidayRequestsByEmployeeId(id, this.employee.requisitionId);\r\n this.getHolidayLaborOldByEmployeeId(id);\r\n this.getLastActivePeriod(this.employee);\r\n this.spinner.hide();\r\n });\r\n }\r\n private getLastActivePeriod(dto: IDtoEmployee): void {\r\n const date: Date = new Date();\r\n this.payrollService.getLastActivePeriod(dto.employeeCompanyId, dto.payrollTypeId.toString().padStart(5, '0') ).subscribe((res) => {\r\n this.period = res.data as IDtoPeriod;\r\n if(this.period.status == 'Cerrada')\r\n this.minDate = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n else{\r\n this.minDate = new Date(this.period.initDate);\r\n }\r\n });\r\n }\r\n\r\n private getHolidayRequestsByEmployeeId(id: string, requisitionId: number): void {\r\n this.holidayService.getHolidayRequestsByEmployeeId(id, requisitionId).subscribe((res) => {\r\n this.listHolidayRequests = res.data as IDtoHoliday[];\r\n });\r\n }\r\n private getHolidayLaborOldByEmployeeId(id: string): void {\r\n this.holidayService.getHolidayLaborOldByEmployeeId(id).subscribe((res) => {\r\n this.listHolidayLaborOlds = res.data as IDtoHistory[];\r\n });\r\n }\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Holidays';\r\n dto.module = 'holidayRequest';\r\n dto.action = 'new';\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \"th {\\n font-size: 10px;\\n font-weight: bold;\\n}\\n\\ntd {\\n font-size: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9ob2xpZGF5L0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccmVxdWVzdFxcaG9saWRheVxcaG9saWRheS1yZXF1ZXN0LnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvaG9saWRheS9ob2xpZGF5LXJlcXVlc3Quc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGVBQUE7RUFBaUIsaUJBQUE7QUNFckI7O0FEQUE7RUFDSSxlQUFBO0FDR0oiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2hvbGlkYXkvaG9saWRheS1yZXF1ZXN0LnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJ0aCB7XHJcbiAgICBmb250LXNpemU6IDEwcHg7IGZvbnQtd2VpZ2h0OiBib2xkXHJcbn1cclxudGQge1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG59IiwidGgge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG50ZCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn0iXX0= */\"","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoInability } from 'app/shared/models/request/inability/dto-inability.model';\r\nimport { IDtoInabilityFilter } from 'app/shared/models/request/inability/dto-inability-filter.model';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\n\r\n@Injectable()\r\nexport class InabilityService {\r\n private requestUrl = '';\r\n private recruitmentUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.recruitmentUrl = this.configurationService.serverSettings.recruitmentUrl;\r\n });\r\n }\r\n }\r\n public getCatalogLineInsurances(): Observable {\r\n const url = `${this.requestUrl}api/Inabilities/getLineInsurance/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogTypeRisks(lineInsuranceId: string): Observable {\r\n const url = `${this.requestUrl}api/Inabilities/getTypeRisk?lineInsuranceId=${lineInsuranceId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogLingeringIssuesKeys(typeRiskId: string): Observable {\r\n const url = `${this.requestUrl}api/Inabilities/getLingeringIssuesKey?typeRiskId=${typeRiskId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogInabilityControlKey(lingeringIssuesKeyId: string): Observable {\r\n const url = `${this.requestUrl}api/Inabilities/getInabilityControlKey?lingeringIssuesKeyId=${lingeringIssuesKeyId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getListEmployeeActive(): Observable {\r\n const url = `${this.recruitmentUrl}api/Employees/getListEmployeesActives`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getListActiveEmployeesByBossId(bossId: string): Observable {\r\n const url = `${this.recruitmentUrl}api/Employees/getListActiveEmployeesByBossId?bossId=${bossId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n } \r\n public addInability(inability: IDtoInability): Observable {\r\n const url =`${this.requestUrl}api/Inabilities/`;\r\n return this.service.post(url, inability).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getInabilitiesbyFilters(data: IDtoInabilityFilter): Observable {\r\n const url =`${this.requestUrl}api/Inabilities/getInabilitiesbyFilter/`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public uploadFile(item: IDtoInability, fileToUpload: File): Observable {\r\n const formData = new FormData();\r\n formData.append('inability', JSON.stringify(item));\r\n formData.append('files', fileToUpload);\r\n\r\n const url = `${this.requestUrl}api/InabilityDocuments/uploadFile/`;\r\n return this.service.post(url, formData).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public downloadFile(documentId: number): Observable {\r\n\r\n const url = `${this.requestUrl}api/InabilityDocuments/downloadFile?inabilityDocumentId=${documentId}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public uploadFileHospitalDischarge(fileToUpload: File, item: IDtoDocument): Observable {\r\n const formData = new FormData();\r\n formData.append('document', JSON.stringify(item));\r\n formData.append('files', fileToUpload);\r\n\r\n const url = `${this.requestUrl}api/InabilityDocuments/uploadFileHospitalDischarge/`;\r\n return this.service.post(url, formData).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public downloadFileHospitalDischarge(referenceId: number, module: string, name: string): Observable {\r\n\r\n const url = `${this.requestUrl}api/InabilityDocuments/downloadFileHospitalDischarge?referenceId=${referenceId}&module=${module}&name=${name}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n}\r\n","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { InabilityService } from '../inability.service';\r\nimport { IDtoInabilityFilter } from 'app/shared/models/request/inability/dto-inability-filter.model';\r\nimport { IDtoInabilityEmployee } from 'app/shared/models/request/inability/dto-inability-employee.model';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ExcelService } from '../excel.service';\r\nimport { IMyDateModel } from 'angular-mydatepicker';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { saveAs } from 'file-saver';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\n\r\n@Component({\r\n selector: 'app-inability-records',\r\n styleUrls: ['inability-records.style.scss'],\r\n templateUrl: 'inability-records.template.html'\r\n})\r\nexport class InabilityRecordsComponent implements OnInit {\r\n /**Formularios */\r\n private locale: string = 'es';\r\n private filters = {} as IDtoInabilityFilter;\r\n /**Notificaciones */\r\n private listInabilities: IDtoInabilityEmployee[]\r\n private listInabilitiesTemp: IDtoInabilityEmployee[]\r\n private search: string;\r\n private start: IMyDateModel;\r\n private end: IMyDateModel;\r\n private listEmployees: IDtoEmployee[]\r\n private inabilityEmployee: IDtoInabilityEmployee;\r\n private showRoles: any;\r\n private employeeIniId: number;\r\n private profile: string;\r\n @ViewChild(DatatableComponent, { static: false }) tableInabilities: DatatableComponent;\r\n constructor(private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private inabilityService: InabilityService\r\n , private excelService: ExcelService\r\n , private datePipe: DatePipe\r\n , private identityService: IdentityService\r\n , private securityService: SecurityService) {\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n if (this.showRoles !== '') {\r\n this.employeeIniId = this.showRoles.employeeId;\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.profile = this.securityService.getProfileStorage('InabilityRecords');\r\n }\r\n\r\n private getInabilitiesbyFilters(): void {\r\n if (this.start == null || this.end == null) {\r\n this.configGeneral.newToast('Validación', 'Proporcione una fecha de inicio y fin para filtrar', 'warning');\r\n return;\r\n }\r\n this.spinner.show();\r\n this.filters.startDate = this.getDate(this.start);\r\n this.filters.endDate = this.getDate(this.end);\r\n this.filters.employeeId = this.employeeIniId;\r\n this.filters.profile = this.profile;\r\n this.inabilityService.getInabilitiesbyFilters(this.filters).subscribe((res) => {\r\n this.listInabilities = res.data as IDtoInabilityEmployee[];\r\n this.listInabilitiesTemp = this.listInabilities;\r\n this.spinner.hide();\r\n });\r\n }\r\n private getDate(event?: IMyDateModel) {\r\n if (event === undefined) {\r\n return null;\r\n }\r\n return event.singleDate.jsDate;\r\n }\r\n generateExcel() {\r\n if (this.listInabilitiesTemp != undefined) {\r\n this.excelService.generateExcelInabilities(this.listInabilities);\r\n }\r\n }\r\n private downloadFile(item: IDtoInabilityEmployee): void {\r\n this.spinner.show();\r\n if (item.inabilityDocumentId == undefined) {\r\n return;\r\n }\r\n this.inabilityService.downloadFile(item.inabilityDocumentId).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n this.spinner.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n \r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private selectItem(item: IDtoInabilityEmployee): void {\r\n this.inabilityEmployee = item;\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n\r\n const val = this.search.toLowerCase();\r\n const temp = this.listInabilitiesTemp.filter((x: any) => x.employeeName.toLowerCase().startsWith(val)\r\n || x.startDate.toLowerCase().startsWith(val)\r\n || x.employeeMarkName.toLowerCase().startsWith(val)\r\n || x.employeeJob.toLowerCase().startsWith(val)\r\n || x.employeeNum.startsWith(val));\r\n this.listInabilities = temp;\r\n this.tableInabilities.offset = 0;\r\n }\r\n private handleFileInput(files: FileList) {\r\n this.upload(files);\r\n }\r\n private onFileChange(item: IDtoInabilityEmployee, event) {\r\n event.value = '';\r\n this.inabilityEmployee = item;\r\n }\r\n private upload(files: FileList): void {\r\n if (files != undefined) {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = files.item(0).name;\r\n let sp = fileName.split('.');\r\n let fileNameNew = `${this.inabilityEmployee.employeeId}_${this.inabilityEmployee.inabilityId}_AltaMedica_${this.datePipe.transform(this.inabilityEmployee.startDate, 'ddMMyyyy')}.${sp[sp.length - 1]}`;\r\n document.fileName = fileNameNew;\r\n document.referenceId = this.inabilityEmployee.inabilityId;\r\n //document.path = `ST2/${document.fileName}`;\r\n document.module = 'InabilityRecords';\r\n document.name = \"AltaMedica\";\r\n const file = files.item(0);\r\n this.inabilityService.uploadFileHospitalDischarge(file, document).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let d = res.data as IDtoDocument;\r\n this.addModuleLog(this.inabilityEmployee.inabilityId, 'uploadHospitalDischarge');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n }\r\n private downloadFileHospitalDischarge(item: IDtoInabilityEmployee): void {\r\n this.spinner.show();\r\n if (item.inabilityDocumentId == undefined) {\r\n return;\r\n }\r\n this.inabilityService.downloadFileHospitalDischarge(item.inabilityId, 'InabilityRecords', 'AltaMedica').subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n this.addModuleLog(item.inabilityId, 'downloadHospitalDischarge');\r\n this.spinner.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Documents';\r\n dto.module = 'inabilityRecords';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".m-b-dowload-excel {\\n margin-bottom: -30px;\\n}\\n\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n\\n.box-align {\\n float: right;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9pbmFiaWxpdHkvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxyZXF1ZXN0XFxpbmFiaWxpdHlcXGluYWJpbGl0eS1yZWNvcmRzLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvaW5hYmlsaXR5L2luYWJpbGl0eS1yZWNvcmRzLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxvQkFBQTtBQ0NKOztBRENBO0VBQ0ksa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0FDRUo7O0FEQ0U7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0FDRUo7O0FEQ0U7RUFDRSxZQUFBO0FDRUoiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2luYWJpbGl0eS9pbmFiaWxpdHktcmVjb3Jkcy5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm0tYi1kb3dsb2FkLWV4Y2VsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IC0zMHB4O1xyXG59XHJcbi51cGxvYWQtYnRudXAtd3JhcHBlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxuXHJcbiAgLnVwbG9hZC1idG51cC13cmFwcGVyIGlucHV0W3R5cGU9ZmlsZV0ge1xyXG4gICAgZm9udC1zaXplOiAxMDBweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gIH1cclxuXHJcbiAgLmJveC1hbGlnbntcclxuICAgIGZsb2F0OnJpZ2h0O1xyXG4gIH1cclxuIiwiLm0tYi1kb3dsb2FkLWV4Y2VsIHtcbiAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG59XG5cbi51cGxvYWQtYnRudXAtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIgaW5wdXRbdHlwZT1maWxlXSB7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uYm94LWFsaWduIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufSJdfQ== */\"","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IAngularMyDpOptions, IMyDateModel } from 'angular-mydatepicker';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { InabilityService } from '../inability.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalEmployeesComponet } from 'app/views/modales/employees/modal-employees.component';\r\nimport { IDtoInability } from 'app/shared/models/request/inability/dto-inability.model';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { PayrollService } from '../../payroll.service';\r\nimport { IDtoPeriod } from 'app/shared/models/payroll/dto-period.model';\r\nimport { WorkLeaveService } from '../workLeave.service';\r\nimport { IDtoMovementRestrictionCalendar } from 'app/shared/models/payroll/dto-movement-restriction-calendar.model';\r\n\r\n@Component({\r\n selector: 'app-inability-request',\r\n styleUrls: ['inability-request.style.scss'],\r\n templateUrl: 'inability-request.template.html'\r\n})\r\nexport class InabilityRequestComponent implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Notificaciones */\r\n @ViewChild('addSwal', { static: false }) private addSwal: SwalComponent;\r\n /**Formularios */\r\n private formInability: FormGroup;\r\n private locale: string = 'es';\r\n /**Catalogos */\r\n private catalogLineInsurances: Observable;\r\n private catalogTypeRisks: Observable;\r\n private catalogLingeringIssuesKeys: Observable;\r\n private catalogInabilityControlKeys: Observable;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private employee: IDtoEmployee;\r\n private hasEmployee = false;\r\n private files: FileList;\r\n private fileName = '';\r\n private pickerOptions: IAngularMyDpOptions;\r\n private currentDate: Date;\r\n private pickerOptionsDateApplication: IAngularMyDpOptions;\r\n constructor(private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private inabilityService: InabilityService\r\n , private configurationService: ConfigurationService\r\n , private modalService: BsModalService\r\n , private identityService: IdentityService\r\n , private payrollService: PayrollService\r\n , private workLeaveService: WorkLeaveService) {\r\n\r\n }\r\n ngOnInit(): void {\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getCatalogs();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getCatalogs();\r\n });\r\n }\r\n this.initializeFormInability();\r\n }\r\n private getCatalogs(): void {\r\n this.catalogLineInsurances = this.inabilityService.getCatalogLineInsurances();\r\n this.workLeaveService.getCurrentDate().subscribe(x => {\r\n this.currentDate = new Date(x);\r\n const current = new Date(x);\r\n current.setDate(current.getDate() - 1);\r\n this.restrictDate(current);\r\n });\r\n this.spinner.hide();\r\n }\r\n private getCatalogTypeRisks(id: string): void {\r\n this.formInability.get('typeRiskId').reset();\r\n this.formInability.get('lingeringIssuesKeyId').reset();\r\n this.formInability.get('inabilityControlKeyId').reset();\r\n this.catalogLingeringIssuesKeys = null;\r\n this.catalogInabilityControlKeys = null;\r\n this.catalogTypeRisks = this.inabilityService.getCatalogTypeRisks(id);\r\n }\r\n private getCatalogLingeringIssuesKeys(id: string): void {\r\n this.formInability.get('lingeringIssuesKeyId').reset();\r\n this.formInability.get('inabilityControlKeyId').reset();\r\n this.catalogInabilityControlKeys = null;\r\n this.catalogLingeringIssuesKeys = this.inabilityService.getCatalogLingeringIssuesKeys(id);\r\n }\r\n private getCatalogInabilityControlKey(id: string): void {\r\n this.formInability.get('inabilityControlKeyId').reset();\r\n this.catalogInabilityControlKeys = this.inabilityService.getCatalogInabilityControlKey(id);\r\n }\r\n private initializeFormInability() {\r\n this.formInability = this.formBuilder.group({\r\n inabilityKey: [null, [Validators.required, Validators.minLength(8), Validators.maxLength(8)]],\r\n numberDays: [null, [Validators.required, Validators.maxLength(3)]],\r\n startDate: [null, Validators.required],\r\n dateApplication: [null, Validators.required],\r\n lineInsuranceId: [null, Validators.required],\r\n typeRiskId: [null, Validators.required],\r\n lingeringIssuesKeyId: [null, Validators.required],\r\n inabilityControlKeyId: [null, Validators.required],\r\n requiresInability: [null, [Validators.required]],\r\n comments: [null, [Validators.maxLength(500)]],\r\n employee: [null, Validators.required],\r\n inabilityFile: [null, Validators.required]\r\n });\r\n }\r\n private submitForm(): void {\r\n if (this.formInability.valid) {\r\n this.addSwal.title = 'Se registrará la incapacacidad para el empleado seleccionado.';\r\n this.addSwal.show();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n this.configGeneral.touchedControls(this.formInability);\r\n }\r\n }\r\n private openModalEmployees() {\r\n this.modalRef = this.modalService.show(ModalEmployeesComponet\r\n , Object.assign({ class: 'modal-lg' }, this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.employee = result;\r\n this.formInability.get('employee').setValue(this.employee.employeeName);\r\n this.hasEmployee = true;\r\n this.getRestrictionPayroll();\r\n } else {\r\n this.hasEmployee = false;\r\n }\r\n });\r\n }\r\n private getDate(event: IMyDateModel) {\r\n return event.singleDate.jsDate;\r\n }\r\n private save(): void {\r\n this.spinner.show();\r\n let data = Object.assign({}, this.formInability.value as IDtoInability);\r\n data.employeeId = this.employee.id;\r\n data.employeeNum = this.employee.employeeNum;\r\n data.employeeName = this.employee.employeeNames;\r\n data.employeeLastName = this.employee.employeeLastName;\r\n data.employeeSecondLastName = this.employee.employeeSecondLastName;\r\n data.requisitionId = this.employee.requisitionId;\r\n data.uKey = this.employee.uKey;\r\n data.startDate = this.configGeneral.getLocalISOTime(this.getDate(this.formInability.value.startDate));\r\n data.dateApplication = this.configGeneral.getLocalISOTime(this.getDate(this.formInability.value.dateApplication));\r\n data.fileName = this.fileName;\r\n data.zoneId = this.employee.zoneId;\r\n data.townId = this.employee.townId;\r\n data.codePayroll = this.employee.employeeTypePayrollId;\r\n data.typePosition = this.employee.typePosition;\r\n this.inabilityService.addInability(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let i = x.data as IDtoInability;\r\n this.addModuleLog(i.id);\r\n this.upload(i);\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private handleFileInput(files: FileList) {\r\n this.files = files;\r\n this.fileName = this.files.item(0).name;\r\n }\r\n private upload(item: IDtoInability): void {\r\n if (this.files != undefined) {\r\n const file = this.files.item(0);\r\n item.fileName = this.fileName;\r\n this.inabilityService.uploadFile(item, file).subscribe((res) => {\r\n this.resetForm();\r\n });\r\n }\r\n }\r\n private resetForm() {\r\n this.formInability.reset();\r\n this.hasEmployee = false;\r\n this.fileName = '';\r\n }\r\n private restrictDate(date: Date) {\r\n this.pickerOptions = {\r\n dateFormat: 'dd.mm.yyyy',\r\n dateRange: false,\r\n disableDateRanges: [{\r\n begin: { year: 1000, month: 1, day: 1 },\r\n end: { year: date.getUTCFullYear(), month: date.getUTCMonth() - 2, day: date.getUTCDate() }\r\n }]\r\n }\r\n }\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Inabilities';\r\n dto.module = 'inability';\r\n dto.action = 'new';\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n private getRestrictionPayroll(): void {\r\n let restriction = {} as IDtoMovementRestrictionCalendar;\r\n restriction.payrollTypeId = +this.employee.employeeTypePayrollId;\r\n restriction.currentDate = this.configGeneral.getLocalISOTime(this.currentDate);\r\n restriction.movementType = 4;\r\n this.payrollService.restrictionExistCalendar(restriction).subscribe(x => {\r\n if (x) {\r\n this.getActivePeriod(); \r\n }\r\n });\r\n }\r\n private getActivePeriod(): void {\r\n let period = {} as IDtoPeriod;\r\n period.codeNomCompanyPay = this.employee.employeeCompanyId;\r\n period.codeNomPayroll = this.employee.employeeTypePayrollId;\r\n period.currentDate = this.configGeneral.getLocalISOTime(this.currentDate);\r\n this.payrollService.getActivePeriod(period).subscribe(x => {\r\n if (x.data != null) {\r\n let resPeriod = x.data as IDtoPeriod;\r\n this.restrictDateApplication(resPeriod);\r\n }\r\n });\r\n this.spinner.hide();\r\n }\r\n private restrictDateApplication(period: IDtoPeriod) {\r\n let initDate = new Date(period.initDate);\r\n let endDate = new Date(period.endDate);\r\n this.pickerOptionsDateApplication = {\r\n dateFormat: 'dd.mm.yyyy',\r\n dateRange: false,\r\n disableDateRanges: [{\r\n begin: { year: initDate.getUTCFullYear(), month: initDate.getUTCMonth() + 1, day: initDate.getUTCDate() },\r\n end: { year: endDate.getUTCFullYear(), month: endDate.getUTCMonth() + 1, day: endDate.getUTCDate() }\r\n }]\r\n }\r\n }\r\n}","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9pbmFiaWxpdHkvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxyZXF1ZXN0XFxpbmFiaWxpdHlcXGluYWJpbGl0eS1yZXF1ZXN0LnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvaW5hYmlsaXR5L2luYWJpbGl0eS1yZXF1ZXN0LnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBQTtBQ0NKOztBREVFO0VBQ0Usa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0FDQ0o7O0FERUU7RUFDRSxxQkFBQTtFQUNFLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSwwQkFBQTtFQUNBLGVBQUE7RUFDQSxzQkFBQTtFQUNBLDZCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0FDQ047O0FERUU7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2luYWJpbGl0eS9pbmFiaWxpdHktcmVxdWVzdC5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcclxuICB9XHJcblxyXG4gIC51cGxvYWQtYnRudXAtd3JhcHBlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxuICBcclxuICAuYnRudXAge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICBwYWRkaW5nOiA2cHggMTJweDtcclxuICAgICAgZm9udC1zaXplOiA5cHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgfVxyXG4gIFxyXG4gIC51cGxvYWQtYnRudXAtd3JhcHBlciBpbnB1dFt0eXBlPWZpbGVdIHtcclxuICAgIGZvbnQtc2l6ZTogMTAwcHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9IiwiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmJ0bnVwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi51cGxvYWQtYnRudXAtd3JhcHBlciBpbnB1dFt0eXBlPWZpbGVdIHtcbiAgZm9udC1zaXplOiAxMDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG9wYWNpdHk6IDA7XG59Il19 */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { RecruitmentService } from 'app/views/appviews/recruitment/recruitment.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { WorkingDayService } from 'app/views/appviews/quote/working-day.service';\r\nimport { OpeningService } from 'app/views/appviews/opening/opening.service';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\n\r\n@Component({\r\n selector: '[demand-process]',\r\n templateUrl: './demand-process.template.html',\r\n styleUrls: ['./demand-process.style.scss']\r\n})\r\nexport class DemandProcessComponent implements OnInit, OnChanges {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDemandProcess: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Inputs */\r\n @Input() private demand: IDtoDemand;\r\n @Output() getDemand = new EventEmitter();\r\n /**Securty */\r\n private catalogLawyers: Observable;\r\n private catalogAuthorities: Observable;\r\n private catalogTypeConciliationMeetings: Observable;\r\n private catalogProceduralStages: IDtoCatalog[];\r\n @ViewChild('confirmSwal', { static: false }) private confirmSwal: SwalComponent;\r\n private liquidationId: number;\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private identityService: IdentityService\r\n , private demandService: DemandService\r\n , private route: ActivatedRoute) {\r\n this.initializeFormDemandProcess();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n if (this.configurationService.isReady) {\r\n this.getCatalog();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getCatalog();\r\n });\r\n }\r\n this.route.params.subscribe((params) => {\r\n if (params['liquidationId']) {\r\n setTimeout(() => {\r\n if (this.configurationService.isReady) {\r\n this.liquidationId = params['liquidationId'];\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.liquidationId = params['liquidationId'];\r\n });\r\n }\r\n }, 2);\r\n }\r\n });\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.demand.currentValue !== undefined && changes.demand.currentValue !== null) {\r\n if (this.demand.id > 0) {\r\n //TODO: REVISAR PORQUE CUANDO SE CARGA NO SE HANC ARGADO LOS CATALOGOS\r\n this.patchValueGeneralData();\r\n }\r\n }\r\n }\r\n private changeAuthority(dto: IDtoCatalog) {\r\n this.formDemandProcess.get('proceduralStageId').setValue(null);\r\n if (dto == undefined) {\r\n return;\r\n }\r\n this.demandService.getCatalogProceduralStages(dto.name).subscribe((x) => {\r\n this.catalogProceduralStages = x.filter(x => [1, 2].includes(x.id))\r\n });\r\n this.makeRequiredFields(dto.id);\r\n }\r\n\r\n private changeStage(dto: IDtoCatalog) {\r\n if (dto == undefined) {\r\n this.formDemandProcess.get('proceduralStageId').setValue(null);\r\n return;\r\n }\r\n this.demand.proceduralStageId = dto.id;\r\n this.getDemand.emit(this.demand)\r\n }\r\n\r\n private getCatalog() {\r\n this.catalogLawyers = this.demandService.getCatalogLawyers();\r\n this.catalogAuthorities = this.demandService.getCatalogAuthorities();\r\n this.catalogTypeConciliationMeetings = this.demandService.getCatalogTypeConciliationMeetings();\r\n }\r\n private initializeFormDemandProcess() {\r\n this.formDemandProcess = this.formBuilder.group({\r\n lawyerId: [null, [Validators.required]],\r\n authorityId: [null, [Validators.required]],\r\n typeConciliationMeetingId: [null, [Validators.required]],\r\n proceduralStageId: [null, [Validators.required]]\r\n });\r\n }\r\n private submitForm(form: FormGroup) {\r\n if (form.valid) {\r\n const value = form.value;\r\n this.demand.lawyerId = value.lawyerId;\r\n this.demand.authorityId = value.authorityId;\r\n this.demand.typeConciliationMeetingId = value.typeConciliationMeetingId;\r\n this.demand.proceduralStageId = value.proceduralStageId;\r\n this.demand.liquidationId = this.liquidationId;\r\n if (this.demand.id > 0) {\r\n //this.updateDemand();\r\n } else {\r\n this.addDemand();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(form);\r\n }\r\n }\r\n private addDemand(): void {\r\n this.confirmSwal.title = 'Se guardarán los datos de la demanda. ¿Seguro que desea continuar?';\r\n this.confirmSwal.show().then((result) => {\r\n if (result.value) {\r\n this.spinner.show();\r\n this.demandService.addDemand(this.demand).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.demand = x.data as IDtoDemand\r\n this.getDemand.emit(this.demand)\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n });\r\n\r\n }\r\n private patchValueGeneralData(): void {\r\n this.catalogAuthorities.subscribe(c => {\r\n let authority = c.filter(x => x.id == this.demand.authorityId)[0];\r\n this.changeAuthority(authority);\r\n });\r\n\r\n this.formDemandProcess.patchValue(this.demand);\r\n this.formDemandProcess.disable();\r\n }\r\n private makeRequiredFields(value: number): void {\r\n if (value == 1) {\r\n this.formDemandProcess.get('typeConciliationMeetingId').setValidators([Validators.required]);\r\n this.formDemandProcess.get('proceduralStageId').setValidators([Validators.required]);\r\n } else {\r\n this.formDemandProcess.get('typeConciliationMeetingId').setValidators(null);\r\n this.formDemandProcess.get('proceduralStageId').setValidators(null);\r\n }\r\n this.formDemandProcess.get('typeConciliationMeetingId').updateValueAndValidity();\r\n this.formDemandProcess.get('proceduralStageId').updateValueAndValidity();\r\n }\r\n private addModuleLogDemand(): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'demands';\r\n dto.module = 'Demand';\r\n dto.action = 'add';\r\n dto.registryAffectedId = this.demand.id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMS8xLWRlbWFuZC1wcm9jZXNzL2RlbWFuZC1wcm9jZXNzLnN0eWxlLnNjc3MifQ== */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoLiquidation } from 'app/shared/models/legal/dto-liquidation.model';\r\nimport { IDtoConciliatoryAppointmentBoard } from 'app/shared/models/legal/demand/dto-conciliatory-appointment.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { LiquidationDetailComponent } from '../../../liquidation/liquidation-detail/liquidation-detail.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalRestartDemandComponet } from 'app/views/modales/demand/restart-demand/modal-restart-demand.component';\r\n\r\n@Component({\r\n selector: '[conciliatory-appointment]',\r\n templateUrl: './conciliatory-appointment.template.html',\r\n styleUrls: ['./conciliatory-appointment.style.scss']\r\n})\r\nexport class ConciliatoryAppointmentComponent implements OnInit, OnChanges {\r\n /**Validadores */\r\n private modalRef: BsModalRef;\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDemandProcess: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Catalogos */\r\n private catalogContractTypes: Observable;\r\n private catalogPayrollOfficers: Observable;\r\n private catalogSupervisors: Observable;\r\n private catalogWorkingDays: Observable;\r\n private catalogStoreRoutes: Observable;\r\n /**Inputs */\r\n @Input() private employeeDemand: IDtoEmployee;\r\n @Input() private demand: IDtoDemand;\r\n private actionLiquidation: string;\r\n @Output() routeName = new EventEmitter();\r\n private module = 'demand';\r\n private locale: string = 'es';\r\n /**Securty */\r\n private fileNameVoucherConciliatoryAppointment: string;\r\n private fileVoucherConciliatoryAppointment: File;\r\n private fileNameVoucherDemandClosing: string;\r\n private fileVoucherDemandClosing: File;\r\n @ViewChild(LiquidationDetailComponent, { static: false }) liquidationDetailComponent;\r\n\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private demandService: DemandService\r\n , private documentService: DocumentService\r\n , private configurationService: ConfigurationService\r\n , private identityService: IdentityService\r\n , private datePipe: DatePipe\r\n , private modalService: BsModalService) {\r\n this.initializeFormDemandProcess();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n if (this.configurationService.isReady) {\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n });\r\n }\r\n // if(this.demand.concludeDemand) {\r\n // this.formDemandProcess.disable();\r\n // }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.demand !== undefined) {\r\n if (changes.demand.currentValue !== undefined) {\r\n if (changes.demand.currentValue.conciliatoryAppointmentBoard) {\r\n this.patchData();\r\n }\r\n }\r\n }\r\n }\r\n private onFileSelectedVoucherConciliatoryAppointment(event) {\r\n\r\n this.fileVoucherConciliatoryAppointment = event.target.files[0];\r\n\r\n if (this.fileVoucherConciliatoryAppointment) {\r\n\r\n this.fileNameVoucherConciliatoryAppointment = this.fileVoucherConciliatoryAppointment.name;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private onFileSelectedVoucherDemandClosing(event) {\r\n\r\n this.fileVoucherDemandClosing = event.target.files[0];\r\n\r\n if (this.fileVoucherDemandClosing) {\r\n\r\n this.fileNameVoucherDemandClosing = this.fileVoucherDemandClosing.name;\r\n }\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'requestMoneyLawyer':\r\n if ($event.value) {\r\n this.formDemandProcess.get('amountLawyer').setValidators([Validators.required]);\r\n } else {\r\n this.formDemandProcess.get('amountLawyer').setValidators(null);\r\n }\r\n this.formDemandProcess.get('amountLawyer').updateValueAndValidity();\r\n break;\r\n case 'concludeDemand':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n }\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formDemandProcess.get('dateTimeDemandClosing').setValidators([Validators.required]);\r\n this.formDemandProcess.get('voucherDemandClosing').setValidators([Validators.required]);\r\n this.formDemandProcess.get('commentDemandClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n } else {\r\n this.formDemandProcess.get('dateTimeDemandClosing').setValidators(null);\r\n this.formDemandProcess.get('voucherDemandClosing').setValidators(null);\r\n this.formDemandProcess.get('commentDemandClosing').setValidators(null);\r\n }\r\n this.formDemandProcess.get('dateTimeDemandClosing').updateValueAndValidity();\r\n this.formDemandProcess.get('voucherDemandClosing').updateValueAndValidity();\r\n this.formDemandProcess.get('commentDemandClosing').updateValueAndValidity();\r\n }\r\n\r\n private initializeFormDemandProcess() {\r\n this.formDemandProcess = this.formBuilder.group({\r\n receiveDocument: [null, [Validators.required, Validators.maxLength(100)]],\r\n receptionDate: [null, [Validators.required]],\r\n comment: [null, [Validators.required, Validators.maxLength(2000)]],\r\n dateTimeAppointment: [null, [Validators.required]],\r\n placeAppointment: [null, [Validators.required, Validators.maxLength(300)]],\r\n voucherConciliatoryAppointment: [null, [Validators.required]],\r\n requestMoneyLawyer: [null, [Validators.required]],\r\n amountLawyer: [null],\r\n concludeDemand: [null, [Validators.required]],\r\n dateTimeDemandClosing: [null],\r\n commentDemandClosing: [null],\r\n voucherDemandClosing: [null]\r\n });\r\n }\r\n private submitForm() {\r\n if (this.formDemandProcess.valid) {\r\n\r\n if (this.demand.conciliatoryAppointmentBoard != null) {\r\n this.updateData();\r\n } else {\r\n this.saveData();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemandProcess);\r\n }\r\n }\r\n private saveData(): void {\r\n let dto = this.formDemandProcess.value as IDtoConciliatoryAppointmentBoard;\r\n dto.demandId = this.demand.id;\r\n this.demandService.addConciliatoryAppointmentBoard(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n let conciliatoryAppointment = x.data as IDtoConciliatoryAppointmentBoard;\r\n this.demand.conciliatoryAppointmentBoard = conciliatoryAppointment;\r\n this.demand.concludeDemand = conciliatoryAppointment.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.uploadFileVoucherConciliatoryAppointment(this.demand.conciliatoryAppointmentBoard.id, false, this.fileVoucherConciliatoryAppointment);\r\n if (this.formDemandProcess.value.concludeDemand) {\r\n this.uploadFileVoucherDemandClosing(this.demand.conciliatoryAppointmentBoard.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private processStage(liquidation: IDtoLiquidation): void {\r\n //this.submitForm();\r\n this.liquidationDetailComponent.updateLiquidation();\r\n }\r\n private updateData(): void {\r\n let dto = this.formDemandProcess.value as IDtoConciliatoryAppointmentBoard;\r\n dto.demandId = this.demand.id;\r\n dto.id = this.demand.conciliatoryAppointmentBoard.id;\r\n dto.status = this.demand.conciliatoryAppointmentBoard.status;\r\n dto.creationDate = this.demand.conciliatoryAppointmentBoard.creationDate;\r\n this.demandService.updateConciliatoryAppointmentBoard(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.demand.concludeDemand = dto.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n if (this.formDemandProcess.value.concludeDemand && this.demand.conciliatoryAppointmentBoard.documentDemandClosing == null) {\r\n this.uploadFileVoucherDemandClosing(dto.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchData(): void {\r\n if (this.demand.conciliatoryAppointmentBoard.dateTimeAppointment != null) {\r\n this.demand.conciliatoryAppointmentBoard.dateTimeAppointment = new Date(this.demand.conciliatoryAppointmentBoard.dateTimeAppointment);\r\n }\r\n\r\n this.demand.conciliatoryAppointmentBoard.receptionDate = new Date(this.demand.conciliatoryAppointmentBoard.receptionDate);\r\n this.demand.conciliatoryAppointmentBoard.dateTimeDemandClosing = new Date(this.demand.conciliatoryAppointmentBoard.dateTimeDemandClosing);\r\n this.makeRequiredFields(this.demand.conciliatoryAppointmentBoard.concludeDemand);\r\n this.formDemandProcess.patchValue(this.demand.conciliatoryAppointmentBoard);\r\n if (this.demand.conciliatoryAppointmentBoard.documentConciliatoryAppointment) {\r\n this.fileNameVoucherConciliatoryAppointment = this.demand.conciliatoryAppointmentBoard.documentConciliatoryAppointment.fileName;\r\n this.formDemandProcess.get('voucherConciliatoryAppointment').setValidators(null);\r\n this.formDemandProcess.get('voucherConciliatoryAppointment').updateValueAndValidity();\r\n }\r\n if (this.demand.conciliatoryAppointmentBoard.documentDemandClosing) {\r\n this.fileNameVoucherDemandClosing = this.demand.conciliatoryAppointmentBoard.documentDemandClosing.fileName;\r\n this.formDemandProcess.get('voucherDemandClosing').setValidators(null);\r\n this.formDemandProcess.get('voucherDemandClosing').updateValueAndValidity();\r\n }\r\n }\r\n private uploadFileVoucherConciliatoryAppointment(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCitaConciliatoria_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherConciliatoryAppointment = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'CitaConciliatoria';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteCitaConciliatoria\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private uploadFileVoucherDemandClosing(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCierreDemanda_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherConciliatoryAppointment = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'CitaConciliatoria';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteCitaConciliatoriaCierreDemanda\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalRestartDemand() {\r\n const initialState = {\r\n stage: 'Cita conciliatoria',\r\n liquidationId: this.demand.liquidationId\r\n };\r\n this.modalRef = this.modalService.show(ModalRestartDemandComponet\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n // this.demand.conciliatoryAppointmentBoard = null;\r\n // this.formDemandProcess.reset();\r\n location.reload();\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string, table: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = table;\r\n dto.module = 'Demand';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0xLzItY29uY2lsaWF0b3J5LWFwcG9pbnRtZW50L0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccmVxdWVzdFxcbGVnYWxcXGRlbWFuZHNcXGF1dGhvcml0eS0xXFwyLWNvbmNpbGlhdG9yeS1hcHBvaW50bWVudFxcY29uY2lsaWF0b3J5LWFwcG9pbnRtZW50LnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMS8yLWNvbmNpbGlhdG9yeS1hcHBvaW50bWVudC9jb25jaWxpYXRvcnktYXBwb2ludG1lbnQuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLHlCQUFBO0FDQ0o7O0FEQ0U7RUFDRSxhQUFBO0FDRUo7O0FEQUU7RUFDRSxpQkFBQTtBQ0dKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0xLzItY29uY2lsaWF0b3J5LWFwcG9pbnRtZW50L2NvbmNpbGlhdG9yeS1hcHBvaW50bWVudC5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwcGVyY2FzZXtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG4gIC5maWxlLWlucHV0IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbiAgfSIsIi51cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uZmlsZS1pbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0iXX0= */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoLiquidation } from 'app/shared/models/legal/dto-liquidation.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { LiquidationDetailComponent } from '../../../liquidation/liquidation-detail/liquidation-detail.component';\r\nimport { IDtoReceptionDemand } from 'app/shared/models/legal/demand/dto-reception-demand.model';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalRestartDemandComponet } from 'app/views/modales/demand/restart-demand/modal-restart-demand.component';\r\n\r\n@Component({\r\n selector: '[reception-demand]',\r\n templateUrl: './reception-demand.template.html',\r\n styleUrls: ['./reception-demand.style.scss']\r\n})\r\nexport class ReceptionDemandComponent implements OnInit, OnChanges {\r\n private modalRef: BsModalRef;\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDemand: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Catalogos */\r\n private catalogContractTypes: Observable;\r\n private catalogPayrollOfficers: Observable;\r\n private catalogSupervisors: Observable;\r\n private catalogWorkingDays: Observable;\r\n private catalogStoreRoutes: Observable;\r\n /**Inputs */\r\n @Input() private employeeDemand: IDtoEmployee;\r\n @Input() private demand: IDtoDemand;\r\n private actionLiquidation: string;\r\n @Output() routeName = new EventEmitter();\r\n private module = 'demand';\r\n private locale: string = 'es';\r\n /**Securty */\r\n private fileNameVoucherReceptionDemand: string;\r\n private fileVoucherReceptionDemand: File;\r\n private fileNameVoucherDemandClosing: string;\r\n private fileVoucherDemandClosing: File;\r\n @ViewChild(LiquidationDetailComponent, { static: false }) liquidationDetailComponent;\r\n\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private demandService: DemandService\r\n , private documentService: DocumentService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private identityService: IdentityService\r\n , private datePipe: DatePipe\r\n , private modalService: BsModalService) {\r\n this.initializeformDemand();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.demandService.concludeDemandChallenge$.subscribe((res) => {\r\n if (res) {\r\n this.formDemand.disable();\r\n } else {\r\n this.formDemand.enable();\r\n }\r\n });\r\n if (this.demand.concludeDemand) {\r\n this.formDemand.disable();\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.demand !== undefined) {\r\n if (changes.demand.currentValue !== undefined) {\r\n if (changes.demand.currentValue.receptionDemand) {\r\n this.patchData();\r\n }\r\n }\r\n }\r\n }\r\n private onFileSelectedVoucherReceptionDemand(event) {\r\n\r\n this.fileVoucherReceptionDemand = event.target.files[0];\r\n\r\n if (this.fileVoucherReceptionDemand) {\r\n\r\n this.fileNameVoucherReceptionDemand = this.fileVoucherReceptionDemand.name;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private onFileSelectedVoucherDemandClosing(event) {\r\n\r\n this.fileVoucherDemandClosing = event.target.files[0];\r\n\r\n if (this.fileVoucherDemandClosing) {\r\n\r\n this.fileNameVoucherDemandClosing = this.fileVoucherDemandClosing.name;\r\n }\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'requestMoneyLawyer':\r\n if ($event.value) {\r\n this.formDemand.get('amountLawyer').setValidators([Validators.required]);\r\n } else {\r\n this.formDemand.get('amountLawyer').setValidators(null);\r\n }\r\n this.formDemand.get('amountLawyer').updateValueAndValidity();\r\n break;\r\n case 'concludeDemand':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n }\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formDemand.get('dateTimeClosing').setValidators([Validators.required]);\r\n this.formDemand.get('voucherClosing').setValidators([Validators.required]);\r\n this.formDemand.get('commentClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n } else {\r\n this.formDemand.get('dateTimeClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('commentClosing').setValidators(null);\r\n }\r\n this.formDemand.get('dateTimeClosing').updateValueAndValidity();\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n this.formDemand.get('commentClosing').updateValueAndValidity();\r\n }\r\n\r\n private initializeformDemand() {\r\n this.formDemand = this.formBuilder.group({\r\n receiveDocument: [null, [Validators.required, Validators.maxLength(100)]],\r\n receptionDate: [null, [Validators.required]],\r\n comment: [null, [Validators.required, Validators.maxLength(2000)]],\r\n audienceDate: [null, [Validators.required]],\r\n fileNumber: [null, [Validators.required, Validators.maxLength(50)]],\r\n demandDirectedTo: [null, [Validators.required, Validators.maxLength(150)]],\r\n voucherReception: [null, [Validators.required]],\r\n requestMoneyLawyer: [null, [Validators.required]],\r\n amountLawyer: [null],\r\n concludeDemand: [null, [Validators.required]],\r\n dateTimeClosing: [null],\r\n commentClosing: [null],\r\n voucherClosing: [null]\r\n });\r\n }\r\n private submitForm() {\r\n if (this.formDemand.valid) {\r\n\r\n if (this.demand.receptionDemand != null) {\r\n this.updateData();\r\n } else {\r\n this.saveData();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemand);\r\n }\r\n }\r\n private saveData(): void {\r\n let dto = this.formDemand.value as IDtoReceptionDemand;\r\n dto.demandId = this.demand.id;\r\n this.demandService.addReceptionDemand(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n let receptionDemand = x.data as IDtoReceptionDemand;\r\n\r\n this.demand.receptionDemand = receptionDemand;\r\n this.demand.concludeDemand = receptionDemand.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.uploadFileVoucherReceptionDemand(receptionDemand.id, false, this.fileVoucherReceptionDemand);\r\n if (this.formDemand.value.concludeDemand) {\r\n this.uploadFileVoucherDemandClosing(receptionDemand.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private processStage(liquidation: IDtoLiquidation): void {\r\n //this.submitForm();\r\n this.liquidationDetailComponent.updateLiquidation();\r\n }\r\n private updateData(): void {\r\n let dto = this.formDemand.value as IDtoReceptionDemand;\r\n dto.demandId = this.demand.id;\r\n dto.id = this.demand.receptionDemand.id;\r\n dto.status = this.demand.receptionDemand.status;\r\n dto.creationDate = this.demand.receptionDemand.creationDate;\r\n this.demandService.updateReceptionDemand(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.demand.concludeDemand = dto.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n if (this.formDemand.value.concludeDemand && this.demand.receptionDemand.documentDemandClosing == null) {\r\n this.uploadFileVoucherDemandClosing(dto.id, false, this.fileVoucherDemandClosing);\r\n }\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchData(): void {\r\n this.demand.receptionDemand.audienceDate = new Date(this.demand.receptionDemand.audienceDate);\r\n this.demand.receptionDemand.receptionDate = new Date(this.demand.receptionDemand.receptionDate);\r\n this.demand.receptionDemand.dateTimeClosing = new Date(this.demand.receptionDemand.dateTimeClosing);\r\n this.makeRequiredFields(this.demand.receptionDemand.concludeDemand);\r\n this.formDemand.patchValue(this.demand.receptionDemand);\r\n if (this.demand.receptionDemand.documentReceptionDemand) {\r\n this.fileNameVoucherReceptionDemand = this.demand.receptionDemand.documentReceptionDemand.fileName;\r\n this.formDemand.get('voucherReception').setValidators(null);\r\n this.formDemand.get('voucherReception').updateValueAndValidity();\r\n }\r\n if (this.demand.receptionDemand.documentDemandClosing) {\r\n this.fileNameVoucherDemandClosing = this.demand.receptionDemand.documentDemandClosing.fileName;\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n }\r\n }\r\n private uploadFileVoucherReceptionDemand(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteRecepcionDemanda_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherReceptionDemand = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'RecepcionDemanda';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteRecepcionDemanda\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private uploadFileVoucherDemandClosing(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCierreDemanda_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherReceptionDemand = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'RecepcionDemanda';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteRecepcionDemandaCierreDemanda\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalRestartDemand() {\r\n const initialState = {\r\n stage: 'Recepción de la demanda',\r\n liquidationId: this.demand.liquidationId\r\n };\r\n this.modalRef = this.modalService.show(ModalRestartDemandComponet\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n // this.demand.conciliatoryAppointmentBoard = null;\r\n // this.demand.receptionDemand = null;\r\n // this.formDemand.reset();\r\n location.reload();\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string, table: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = table;\r\n dto.module = 'Demand';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0xLzMtcmVjZXB0aW9uLWRlbWFuZC9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHJlcXVlc3RcXGxlZ2FsXFxkZW1hbmRzXFxhdXRob3JpdHktMVxcMy1yZWNlcHRpb24tZGVtYW5kXFxyZWNlcHRpb24tZGVtYW5kLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMS8zLXJlY2VwdGlvbi1kZW1hbmQvcmVjZXB0aW9uLWRlbWFuZC5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQUE7QUNDRjs7QURDQTtFQUNFLGFBQUE7QUNFRjs7QURBQTtFQUNFLGlCQUFBO0FDR0YiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2xlZ2FsL2RlbWFuZHMvYXV0aG9yaXR5LTEvMy1yZWNlcHRpb24tZGVtYW5kL3JlY2VwdGlvbi1kZW1hbmQuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cHBlcmNhc2V7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG4uZmlsZS1pbnB1dCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufSIsIi51cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uZmlsZS1pbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0iXX0= */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoLiquidation } from 'app/shared/models/legal/dto-liquidation.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { LiquidationDetailComponent } from '../../../liquidation/liquidation-detail/liquidation-detail.component';\r\nimport { IDtoAnswerDemand } from 'app/shared/models/legal/demand/dto-answer-demand.model';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalRestartDemandComponet } from 'app/views/modales/demand/restart-demand/modal-restart-demand.component';\r\n\r\n@Component({\r\n selector: '[answer-demand]',\r\n templateUrl: './answer-demand.template.html',\r\n styleUrls: ['./answer-demand.style.scss']\r\n})\r\nexport class AnswerDemandComponent implements OnInit, OnChanges {\r\n private modalRef: BsModalRef;\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDemand: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Inputs */\r\n @Input() private employeeDemand: IDtoEmployee;\r\n @Input() private demand: IDtoDemand;\r\n private actionLiquidation: string;\r\n @Output() routeName = new EventEmitter();\r\n private module = 'demand';\r\n private locale: string = 'es';\r\n /**Securty */\r\n private fileNameVoucherAnswerDemand: string;\r\n private fileVoucherAnswerDemand: File;\r\n private fileNameVoucherDemandClosing: string;\r\n private fileVoucherDemandClosing: File;\r\n @ViewChild(LiquidationDetailComponent, { static: false }) liquidationDetailComponent;\r\n\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private demandService: DemandService\r\n , private documentService: DocumentService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private identityService: IdentityService\r\n , private datePipe: DatePipe\r\n , private modalService: BsModalService) {\r\n this.initializeformDemand();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.demandService.concludeDemandChallenge$.subscribe((res) => {\r\n if (res) {\r\n this.formDemand.disable();\r\n } else {\r\n this.formDemand.enable();\r\n }\r\n });\r\n if(this.demand.concludeDemand) {\r\n this.formDemand.disable();\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.demand !== undefined) {\r\n if (changes.demand.currentValue !== undefined) {\r\n if (changes.demand.currentValue.receptionDemand) {\r\n this.formDemand.get('fileNumber').setValue(changes.demand.currentValue.receptionDemand.fileNumber);\r\n }\r\n if (changes.demand.currentValue.answerDemand) {\r\n this.patchData();\r\n }\r\n }\r\n }\r\n }\r\n private onFileSelectedVoucherAnswerDemand(event) {\r\n\r\n this.fileVoucherAnswerDemand = event.target.files[0];\r\n\r\n if (this.fileVoucherAnswerDemand) {\r\n\r\n this.fileNameVoucherAnswerDemand = this.fileVoucherAnswerDemand.name;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private onFileSelectedVoucherDemandClosing(event) {\r\n\r\n this.fileVoucherDemandClosing = event.target.files[0];\r\n\r\n if (this.fileVoucherDemandClosing) {\r\n\r\n this.fileNameVoucherDemandClosing = this.fileVoucherDemandClosing.name;\r\n }\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'appearedTrial':\r\n this.makeRequiredFieldsAppearedTrial($event.value);\r\n break;\r\n case 'concludeDemand':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n }\r\n }\r\n private makeRequiredFieldsAppearedTrial(value: boolean): void {\r\n if (value) {\r\n this.formDemand.get('appearedDateTime').setValidators([Validators.required]);\r\n this.formDemand.get('voucherAnswer').setValidators([Validators.required]);\r\n \r\n this.formDemand.get('cause').setValidators(null);\r\n this.formDemand.get('newDateTimeAppear').setValidators(null);\r\n } else {\r\n this.formDemand.get('cause').setValidators([Validators.required, Validators.maxLength(200)]);\r\n this.formDemand.get('newDateTimeAppear').setValidators([Validators.required]);\r\n \r\n this.formDemand.get('appearedDateTime').setValidators(null);\r\n this.formDemand.get('voucherAnswer').setValidators(null);\r\n }\r\n this.formDemand.get('appearedDateTime').updateValueAndValidity();\r\n this.formDemand.get('voucherAnswer').updateValueAndValidity();\r\n this.formDemand.get('cause').updateValueAndValidity();\r\n this.formDemand.get('newDateTimeAppear').updateValueAndValidity();\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formDemand.get('dateTimeClosing').setValidators([Validators.required]);\r\n this.formDemand.get('voucherClosing').setValidators([Validators.required]);\r\n this.formDemand.get('commentClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n } else {\r\n this.formDemand.get('dateTimeClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('commentClosing').setValidators(null);\r\n }\r\n this.formDemand.get('dateTimeClosing').updateValueAndValidity();\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n this.formDemand.get('commentClosing').updateValueAndValidity();\r\n }\r\n\r\n private initializeformDemand() {\r\n this.formDemand = this.formBuilder.group({\r\n fileNumber: [null, [Validators.required]],\r\n comment: [null, [Validators.required, Validators.maxLength(2000)]],\r\n appearedTrial: [null, [Validators.required]],\r\n appearedDateTime: [null],\r\n voucherAnswer: [null],\r\n cause: [null],\r\n newDateTimeAppear: [null],\r\n concludeDemand: [null, [Validators.required]],\r\n dateTimeClosing: [null],\r\n commentClosing: [null],\r\n voucherClosing: [null]\r\n });\r\n }\r\n private submitForm() {\r\n if (this.formDemand.valid) {\r\n\r\n if (this.demand.answerDemand != null) {\r\n this.updateData();\r\n } else {\r\n this.saveData();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemand);\r\n }\r\n }\r\n private saveData(): void {\r\n let dto = this.formDemand.value as IDtoAnswerDemand;\r\n dto.demandId = this.demand.id;\r\n this.demandService.addAnswerDemand(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n let answerDemand = x.data as IDtoAnswerDemand;\r\n\r\n this.demand.answerDemand = answerDemand;\r\n this.demand.concludeDemand = answerDemand.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n if (this.formDemand.value.appearedTrial) {\r\n this.uploadFileVoucherAnswerDemand(answerDemand.id, false, this.fileVoucherAnswerDemand);\r\n }\r\n if (this.formDemand.value.concludeDemand) {\r\n this.uploadFileVoucherDemandClosing(answerDemand.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private processStage(liquidation: IDtoLiquidation): void {\r\n //this.submitForm();\r\n this.liquidationDetailComponent.updateLiquidation();\r\n }\r\n private updateData(): void {\r\n let dto = this.formDemand.value as IDtoAnswerDemand;\r\n dto.demandId = this.demand.id;\r\n dto.id = this.demand.answerDemand.id;\r\n dto.status = this.demand.answerDemand.status;\r\n dto.creationDate = this.demand.answerDemand.creationDate;\r\n this.demandService.updateAnswerDemand(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.demand.concludeDemand = dto.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n if (this.formDemand.value.concludeDemand && this.demand.answerDemand.documentDemandClosing == null) {\r\n this.uploadFileVoucherDemandClosing(dto.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchData(): void {\r\n this.demand.answerDemand.appearedDateTime = new Date(this.demand.answerDemand.appearedDateTime);\r\n this.demand.answerDemand.newDateTimeAppear = new Date(this.demand.answerDemand.newDateTimeAppear);\r\n this.demand.answerDemand.dateTimeClosing = new Date(this.demand.answerDemand.dateTimeClosing);\r\n this.demand.answerDemand.creationDate = new Date(this.demand.answerDemand.creationDate);\r\n this.makeRequiredFields(this.demand.answerDemand.concludeDemand);\r\n this.formDemand.patchValue(this.demand.answerDemand);\r\n if(this.demand.answerDemand.documentAnswerDemand) {\r\n this.fileNameVoucherAnswerDemand = this.demand.answerDemand.documentAnswerDemand.fileName;\r\n this.formDemand.get('voucherAnswer').setValidators(null);\r\n this.formDemand.get('voucherAnswer').updateValueAndValidity();\r\n }\r\n if(this.demand.answerDemand.documentDemandClosing) {\r\n this.fileNameVoucherDemandClosing = this.demand.answerDemand.documentDemandClosing.fileName;\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n }\r\n }\r\n private uploadFileVoucherAnswerDemand(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteContestacionDemanda_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherAnswerDemand = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'ContestacionDemanda';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteContestacionDemanda\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private uploadFileVoucherDemandClosing(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCierreDemanda_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherDemandClosing = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'ContestacionDemanda';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteContestacionDemandaCierreDemanda\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalRestartDemand() {\r\n const initialState = {\r\n stage: 'Contestación de la demanda',\r\n liquidationId: this.demand.liquidationId\r\n };\r\n this.modalRef = this.modalService.show(ModalRestartDemandComponet\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n location.reload();\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string, table: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = table;\r\n dto.module = 'Demand';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0xLzQtYW5zd2VyLWRlbWFuZC9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHJlcXVlc3RcXGxlZ2FsXFxkZW1hbmRzXFxhdXRob3JpdHktMVxcNC1hbnN3ZXItZGVtYW5kXFxhbnN3ZXItZGVtYW5kLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMS80LWFuc3dlci1kZW1hbmQvYW5zd2VyLWRlbWFuZC5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQUE7QUNDRjs7QURDQTtFQUNFLGFBQUE7QUNFRjs7QURBQTtFQUNFLGlCQUFBO0FDR0YiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2xlZ2FsL2RlbWFuZHMvYXV0aG9yaXR5LTEvNC1hbnN3ZXItZGVtYW5kL2Fuc3dlci1kZW1hbmQuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cHBlcmNhc2V7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG4uZmlsZS1pbnB1dCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufSIsIi51cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uZmlsZS1pbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0iXX0= */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModaloOffterAdmissionEvidencesComponet } from 'app/views/modales/demand/offter-admission-evidences/modal-offter-admission-evidences.component';\r\nimport { IDtoOfferAdmissionEvidence } from 'app/shared/models/legal/demand/offer-admission-evidence.model';\r\nimport { ModalRestartDemandComponet } from 'app/views/modales/demand/restart-demand/modal-restart-demand.component';\r\n\r\n@Component({\r\n selector: '[offer-admission-evidences]',\r\n templateUrl: './offer-admission-evidences.template.html',\r\n styleUrls: ['./offer-admission-evidences.style.scss']\r\n})\r\nexport class OfferAdmissionEvidencesComponent implements OnInit, OnChanges {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDemand: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Inputs */\r\n @Input() private employeeDemand: IDtoEmployee;\r\n @Input() private demand: IDtoDemand;\r\n private module = 'demand';\r\n /**Securty */\r\n private fileNameVoucherDemandClosing: string;\r\n private fileVoucherDemandClosing: File;\r\n\r\n private action: string;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private demandService: DemandService\r\n , private documentService: DocumentService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private identityService: IdentityService\r\n , private datePipe: DatePipe\r\n , private modalService: BsModalService) {\r\n this.initializeformDemand();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.demandService.concludeDemandChallenge$.subscribe((res) => {\r\n if (res) {\r\n this.formDemand.disable();\r\n } else {\r\n this.formDemand.enable();\r\n }\r\n });\r\n if(this.demand.concludeDemand) {\r\n this.formDemand.disable();\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.demand !== undefined) {\r\n if (changes.demand.currentValue !== undefined) {\r\n if (changes.demand.currentValue.receptionDemand) {\r\n this.formDemand.get('fileNumber').setValue(changes.demand.currentValue.receptionDemand.fileNumber);\r\n }\r\n if (changes.demand.currentValue.offerAdmissionEvidence) {\r\n this.action = 'edit';\r\n this.patchData();\r\n } else {\r\n this.action = 'add';\r\n }\r\n }\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private onFileSelectedVoucherDemandClosing(event) {\r\n\r\n this.fileVoucherDemandClosing = event.target.files[0];\r\n\r\n if (this.fileVoucherDemandClosing) {\r\n\r\n this.fileNameVoucherDemandClosing = this.fileVoucherDemandClosing.name;\r\n }\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'concludeDemand':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n }\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formDemand.get('dateTimeClosing').setValidators([Validators.required]);\r\n this.formDemand.get('voucherClosing').setValidators([Validators.required]);\r\n this.formDemand.get('commentClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n } else {\r\n this.formDemand.get('dateTimeClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('commentClosing').setValidators(null);\r\n }\r\n this.formDemand.get('dateTimeClosing').updateValueAndValidity();\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n this.formDemand.get('commentClosing').updateValueAndValidity();\r\n }\r\n\r\n private initializeformDemand() {\r\n this.formDemand = this.formBuilder.group({\r\n fileNumber: [null, [Validators.required]],\r\n comment: [null, [Validators.required, Validators.maxLength(2000)]],\r\n concludeDemand: [null],\r\n dateTimeClosing: [null],\r\n commentClosing: [null],\r\n voucherClosing: [null]\r\n });\r\n }\r\n private openModalEvidences() {\r\n if (this.action == 'add') {\r\n this.snotifyService.error('Asegúrese de guardar primeramente el registro para poder cargar una evidencia'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemand);\r\n } else {\r\n const initialState = {\r\n employeeId: this.employeeDemand.id,\r\n offerAdmissionEvidenceId: this.demand.offerAdmissionEvidence.id,\r\n title: 'Admisión de pruebas'\r\n };\r\n this.modalService.show(ModaloOffterAdmissionEvidencesComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n }\r\n }\r\n private submitForm() {\r\n if (this.formDemand.valid) {\r\n\r\n if (this.demand.offerAdmissionEvidence != null) {\r\n this.updateData();\r\n } else {\r\n this.snotifyService.error('No existe evidencia para poder guardar'\r\n , 'Error', this.configToast);\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemand);\r\n }\r\n }\r\n private saveDataPre(): void {\r\n if (this.formDemand.valid) {\r\n let dto = this.formDemand.value as IDtoOfferAdmissionEvidence;\r\n dto.demandId = this.demand.id;\r\n this.demandService.addOfferAdmissionEvidence(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n this.demand.offerAdmissionEvidence = x.data as IDtoOfferAdmissionEvidence;\r\n this.action = 'edit';\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemand);\r\n }\r\n }\r\n \r\n private updateData(): void {\r\n let dto = this.formDemand.value as IDtoOfferAdmissionEvidence;\r\n dto.demandId = this.demand.id;\r\n dto.id = this.demand.offerAdmissionEvidence.id;\r\n dto.status = this.demand.offerAdmissionEvidence.status;\r\n dto.creationDate = this.demand.offerAdmissionEvidence.creationDate;\r\n this.demandService.updateOfferAdmissionEvidence(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.demand.concludeDemand = dto.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n if (this.formDemand.value.concludeDemand && this.demand.offerAdmissionEvidence.documentDemandClosing == null) {\r\n this.uploadFileVoucherDemandClosing(dto.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchData(): void {\r\n if (this.demand.offerAdmissionEvidence.dateTimeClosing != null) {\r\n this.demand.offerAdmissionEvidence.dateTimeClosing = new Date(this.demand.offerAdmissionEvidence.dateTimeClosing);\r\n }\r\n this.demand.offerAdmissionEvidence.creationDate = new Date(this.demand.offerAdmissionEvidence.creationDate);\r\n this.makeRequiredFields(this.demand.offerAdmissionEvidence.concludeDemand);\r\n this.formDemand.patchValue(this.demand.offerAdmissionEvidence);\r\n if (this.demand.offerAdmissionEvidence.documentDemandClosing) {\r\n this.fileNameVoucherDemandClosing = this.demand.offerAdmissionEvidence.documentDemandClosing.fileName;\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n }\r\n }\r\n\r\n private uploadFileVoucherDemandClosing(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCierreDemanda_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'OfrecimientoAdmisionPruebas';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteOfrecimientoAdmisionPruebasCierreDemanda\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalRestartDemand() {\r\n const initialState = {\r\n stage: 'Ofrecimiento y admisión de pruebas',\r\n liquidationId: this.demand.liquidationId\r\n };\r\n this.modalRef = this.modalService.show(ModalRestartDemandComponet\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n location.reload();\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string, table: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = table;\r\n dto.module = 'Demand';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0xLzUtb2ZmZXItYWRtaXNzaW9uLWV2aWRlbmNlcy9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHJlcXVlc3RcXGxlZ2FsXFxkZW1hbmRzXFxhdXRob3JpdHktMVxcNS1vZmZlci1hZG1pc3Npb24tZXZpZGVuY2VzXFxvZmZlci1hZG1pc3Npb24tZXZpZGVuY2VzLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMS81LW9mZmVyLWFkbWlzc2lvbi1ldmlkZW5jZXMvb2ZmZXItYWRtaXNzaW9uLWV2aWRlbmNlcy5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQUE7QUNDRjs7QURDQTtFQUNFLGFBQUE7QUNFRjs7QURBQTtFQUNFLGlCQUFBO0FDR0YiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2xlZ2FsL2RlbWFuZHMvYXV0aG9yaXR5LTEvNS1vZmZlci1hZG1pc3Npb24tZXZpZGVuY2VzL29mZmVyLWFkbWlzc2lvbi1ldmlkZW5jZXMuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cHBlcmNhc2V7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG4uZmlsZS1pbnB1dCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufSIsIi51cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uZmlsZS1pbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0iXX0= */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { IDtoOfferAdmissionEvidence } from 'app/shared/models/legal/demand/offer-admission-evidence.model';\r\nimport { IDtoOfferAdmissionEvidenceDetail } from 'app/shared/models/legal/demand/offer-admission-evidence-detail.model';\r\nimport { ModalReleaseEvidenceComponet } from 'app/views/modales/demand/offter-release-evidence/modal-release-evidence.component';\r\nimport { IDtoReleaseEvidence } from 'app/shared/models/legal/demand/release-evidence.model';\r\nimport { ModalRestartDemandComponet } from 'app/views/modales/demand/restart-demand/modal-restart-demand.component';\r\n\r\n@Component({\r\n selector: '[release-evidences]',\r\n templateUrl: './release-evidences.template.html',\r\n styleUrls: ['./release-evidences.style.scss']\r\n})\r\nexport class ReleaseEvidencesComponent implements OnInit, OnChanges {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDemand: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Inputs */\r\n @Input() private employeeDemand: IDtoEmployee;\r\n @Input() private demand: IDtoDemand;\r\n private module = 'demand';\r\n /**Securty */\r\n private fileNameVoucherDemandClosing: string;\r\n private fileVoucherDemandClosing: File;\r\n\r\n private action: string;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private listOfferAdmissionEvidences = new Array() as IDtoOfferAdmissionEvidenceDetail[];\r\n\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private demandService: DemandService\r\n , private documentService: DocumentService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private identityService: IdentityService\r\n , private datePipe: DatePipe\r\n , private modalService: BsModalService) {\r\n this.initializeformDemand();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.demandService.concludeDemandChallenge$.subscribe((res) => {\r\n if (res) {\r\n this.formDemand.disable();\r\n } else {\r\n this.formDemand.enable();\r\n }\r\n });\r\n if(this.demand.concludeDemand) {\r\n this.formDemand.disable();\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.demand !== undefined) {\r\n if (changes.demand.currentValue !== undefined) {\r\n if (changes.demand.currentValue.receptionDemand) {\r\n this.formDemand.get('fileNumber').setValue(changes.demand.currentValue.receptionDemand.fileNumber);\r\n }\r\n if (changes.demand.currentValue.offerAdmissionEvidence) {\r\n this.getEvidences();\r\n }\r\n if (changes.demand.currentValue.ReleaseEvidencesComponent) {\r\n this.action = 'edit';\r\n this.patchData();\r\n } else {\r\n this.action = 'add';\r\n }\r\n }\r\n }\r\n }\r\n private getEvidences(): void {\r\n this.spinner.show();\r\n this.demandService.getOfferAdmissionEvidenceDetailByOfferAdmissionEvidenceId(this.demand.offerAdmissionEvidence.id)\r\n .subscribe(\r\n (x) => {\r\n this.listOfferAdmissionEvidences = x;\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private onFileSelectedVoucherDemandClosing(event) {\r\n\r\n this.fileVoucherDemandClosing = event.target.files[0];\r\n\r\n if (this.fileVoucherDemandClosing) {\r\n\r\n this.fileNameVoucherDemandClosing = this.fileVoucherDemandClosing.name;\r\n }\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'concludeDemand':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n }\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formDemand.get('dateTimeClosing').setValidators([Validators.required]);\r\n this.formDemand.get('voucherClosing').setValidators([Validators.required]);\r\n this.formDemand.get('commentClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n } else {\r\n this.formDemand.get('dateTimeClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('commentClosing').setValidators(null);\r\n }\r\n this.formDemand.get('dateTimeClosing').updateValueAndValidity();\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n this.formDemand.get('commentClosing').updateValueAndValidity();\r\n }\r\n\r\n private initializeformDemand() {\r\n this.formDemand = this.formBuilder.group({\r\n fileNumber: [null, [Validators.required]],\r\n concludeDemand: [null],\r\n dateTimeClosing: [null],\r\n commentClosing: [null],\r\n voucherClosing: [null]\r\n });\r\n }\r\n private openModalEditEvidence(item: IDtoOfferAdmissionEvidenceDetail) {\r\n const initialState = {\r\n employeeId: this.employeeDemand.id,\r\n evidence: item,\r\n title: 'Desahogo de pruebas'\r\n };\r\n this.modalRef = this.modalService.show(ModalReleaseEvidenceComponet\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.configGeneral.newToast('Éxito', 'Éxito', 'success');\r\n //this.getUsers();\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private submitForm() {\r\n if (this.formDemand.valid) {\r\n\r\n if (this.demand.releaseEvidence != null) {\r\n this.updateData();\r\n } else {\r\n this.saveData();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemand);\r\n }\r\n }\r\n private saveData(): void {\r\n let dto = this.formDemand.value as IDtoReleaseEvidence;\r\n dto.demandId = this.demand.id;\r\n this.demandService.addReleaseEvidence(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n this.demand.releaseEvidence = x.data as IDtoReleaseEvidence;\r\n this.demand.concludeDemand = this.demand.releaseEvidence.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.action = 'edit';\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n\r\n private updateData(): void {\r\n let dto = this.formDemand.value as IDtoReleaseEvidence;\r\n dto.demandId = this.demand.id;\r\n dto.id = this.demand.releaseEvidence.id;\r\n dto.status = this.demand.releaseEvidence.status;\r\n dto.creationDate = this.demand.releaseEvidence.creationDate;\r\n this.demandService.updateReleaseEvidence(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.demand.concludeDemand = dto.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n if (this.formDemand.value.concludeDemand && this.demand.releaseEvidence.documentDemandClosing == null) {\r\n this.uploadFileVoucherDemandClosing(dto.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchData(): void {\r\n if (this.demand.releaseEvidence.dateTimeClosing != null) {\r\n this.demand.releaseEvidence.dateTimeClosing = new Date(this.demand.releaseEvidence.dateTimeClosing);\r\n }\r\n this.demand.releaseEvidence.creationDate = new Date(this.demand.releaseEvidence.creationDate);\r\n this.makeRequiredFields(this.demand.releaseEvidence.concludeDemand);\r\n this.formDemand.patchValue(this.demand.releaseEvidence);\r\n if (this.demand.releaseEvidence.documentDemandClosing) {\r\n this.fileNameVoucherDemandClosing = this.demand.releaseEvidence.documentDemandClosing.fileName;\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n }\r\n }\r\n\r\n private uploadFileVoucherDemandClosing(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCierreDemanda_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'DesahogoPruebas';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteDesahogoPruebasCierreDemanda\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalRestartDemand() {\r\n const initialState = {\r\n stage: 'Audiencia de desahogo de pruebas',\r\n liquidationId: this.demand.liquidationId\r\n };\r\n this.modalRef = this.modalService.show(ModalRestartDemandComponet\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n location.reload();\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string, table: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = table;\r\n dto.module = 'Demand';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0xLzYtcmVsZWFzZS1ldmlkZW5jZXMvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxyZXF1ZXN0XFxsZWdhbFxcZGVtYW5kc1xcYXV0aG9yaXR5LTFcXDYtcmVsZWFzZS1ldmlkZW5jZXNcXHJlbGVhc2UtZXZpZGVuY2VzLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMS82LXJlbGVhc2UtZXZpZGVuY2VzL3JlbGVhc2UtZXZpZGVuY2VzLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBQTtBQ0NGOztBRENBO0VBQ0UsYUFBQTtBQ0VGOztBREFBO0VBQ0UsaUJBQUE7QUNHRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMS82LXJlbGVhc2UtZXZpZGVuY2VzL3JlbGVhc2UtZXZpZGVuY2VzLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBwZXJjYXNle1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLmZpbGUtaW5wdXQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn0iLCIudXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoLiquidation } from 'app/shared/models/legal/dto-liquidation.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { LiquidationDetailComponent } from '../../../liquidation/liquidation-detail/liquidation-detail.component';\r\nimport { IDtoAllegation } from 'app/shared/models/legal/demand/dto-allegation.model';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalRestartDemandComponet } from 'app/views/modales/demand/restart-demand/modal-restart-demand.component';\r\n\r\n@Component({\r\n selector: '[allegation]',\r\n templateUrl: './allegation.template.html',\r\n styleUrls: ['./allegation.style.scss']\r\n})\r\nexport class AllegationComponent implements OnInit, OnChanges {\r\n private modalRef: BsModalRef;\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDemand: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Inputs */\r\n @Input() private employeeDemand: IDtoEmployee;\r\n @Input() private demand: IDtoDemand;\r\n @Input() private requisition: IDtoRequisition;\r\n private actionLiquidation: string;\r\n @Output() getRequisitionId = new EventEmitter();\r\n @Output() routeName = new EventEmitter();\r\n private module = 'demand';\r\n private locale: string = 'es';\r\n /**Securty */\r\n private fileNameVoucherAllegation: string;\r\n private fileVoucherAllegation: File;\r\n private fileNameVoucherDemandClosing: string;\r\n private fileVoucherDemandClosing: File;\r\n @ViewChild(LiquidationDetailComponent, { static: false }) liquidationDetailComponent;\r\n\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private demandService: DemandService\r\n , private documentService: DocumentService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private identityService: IdentityService\r\n , private datePipe: DatePipe\r\n , private modalService: BsModalService) {\r\n this.initializeformDemand();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.demandService.concludeDemandChallenge$.subscribe((res) => {\r\n if (res) {\r\n this.formDemand.disable();\r\n } else {\r\n this.formDemand.enable();\r\n }\r\n });\r\n if(this.demand.concludeDemand) {\r\n this.formDemand.disable();\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.demand !== undefined) {\r\n if (changes.demand.currentValue !== undefined) {\r\n if (changes.demand.currentValue.receptionDemand) {\r\n this.formDemand.get('fileNumber').setValue(changes.demand.currentValue.receptionDemand.fileNumber);\r\n }\r\n if (changes.demand.currentValue.allegation) {\r\n this.patchData();\r\n }\r\n }\r\n }\r\n }\r\n private onFileSelectedVoucherAllegation(event) {\r\n\r\n this.fileVoucherAllegation = event.target.files[0];\r\n\r\n if (this.fileVoucherAllegation) {\r\n\r\n this.fileNameVoucherAllegation = this.fileVoucherAllegation.name;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private onFileSelectedVoucherDemandClosing(event) {\r\n\r\n this.fileVoucherDemandClosing = event.target.files[0];\r\n\r\n if (this.fileVoucherDemandClosing) {\r\n\r\n this.fileNameVoucherDemandClosing = this.fileVoucherDemandClosing.name;\r\n }\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'concludeDemand':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n }\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formDemand.get('dateTimeClosing').setValidators([Validators.required]);\r\n this.formDemand.get('voucherClosing').setValidators([Validators.required]);\r\n this.formDemand.get('commentClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n } else {\r\n this.formDemand.get('dateTimeClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('commentClosing').setValidators(null);\r\n }\r\n this.formDemand.get('dateTimeClosing').updateValueAndValidity();\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n this.formDemand.get('commentClosing').updateValueAndValidity();\r\n }\r\n\r\n private initializeformDemand() {\r\n this.formDemand = this.formBuilder.group({\r\n fileNumber: [null, [Validators.required]],\r\n voucherAllegation: [null],\r\n concludeDemand: [null, [Validators.required]],\r\n dateTimeClosing: [null],\r\n commentClosing: [null],\r\n voucherClosing: [null]\r\n });\r\n }\r\n private submitForm() {\r\n if (this.formDemand.valid) {\r\n\r\n if (this.demand.allegation != null) {\r\n this.updateData();\r\n } else {\r\n this.saveData();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemand);\r\n }\r\n }\r\n private saveData(): void {\r\n let dto = this.formDemand.value as IDtoAllegation;\r\n dto.demandId = this.demand.id;\r\n this.demandService.addAllegation(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n let allegation = x.data as IDtoAllegation;\r\n this.demand.allegation = allegation;\r\n this.demand.concludeDemand = allegation.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.uploadFileVoucherallegation(allegation.id, false, this.fileVoucherAllegation);\r\n if (this.formDemand.value.concludeDemand) {\r\n this.uploadFileVoucherDemandClosing(allegation.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private processStage(liquidation: IDtoLiquidation): void {\r\n //this.submitForm();\r\n this.liquidationDetailComponent.updateLiquidation();\r\n }\r\n private updateData(): void {\r\n let dto = this.formDemand.value as IDtoAllegation;\r\n dto.demandId = this.demand.id;\r\n dto.id = this.demand.allegation.id;\r\n dto.status = this.demand.allegation.status;\r\n dto.creationDate = this.demand.allegation.creationDate;\r\n this.demandService.updateAllegation(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.demand.concludeDemand = dto.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n if (this.formDemand.value.concludeDemand && this.demand.allegation.documentDemandClosing == null) {\r\n this.uploadFileVoucherDemandClosing(dto.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchData(): void {\r\n this.demand.allegation.dateTimeClosing = new Date(this.demand.allegation.dateTimeClosing);\r\n this.demand.allegation.creationDate = new Date(this.demand.allegation.creationDate);\r\n this.makeRequiredFields(this.demand.allegation.concludeDemand);\r\n this.formDemand.patchValue(this.demand.allegation);\r\n if(this.demand.allegation.documentAllegation) {\r\n this.fileNameVoucherAllegation = this.demand.allegation.documentAllegation.fileName;\r\n this.formDemand.get('voucherAllegation').setValidators(null);\r\n this.formDemand.get('voucherAllegation').updateValueAndValidity();\r\n }\r\n if(this.demand.allegation.documentDemandClosing) {\r\n this.fileNameVoucherDemandClosing = this.demand.allegation.documentDemandClosing.fileName;\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n }\r\n }\r\n private uploadFileVoucherallegation(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteAlegato_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherAllegation = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'Alegato';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteAlegato\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private uploadFileVoucherDemandClosing(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCierreDemanda_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherDemandClosing = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'Alegato';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteAlegatoCierreDemanda\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalRestartDemand() {\r\n const initialState = {\r\n stage: 'Alegatos',\r\n liquidationId: this.demand.liquidationId\r\n };\r\n this.modalRef = this.modalService.show(ModalRestartDemandComponet\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n location.reload();\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string, table: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = table;\r\n dto.module = 'Demand';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0xLzctYWxsZWdhdGlvbi9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHJlcXVlc3RcXGxlZ2FsXFxkZW1hbmRzXFxhdXRob3JpdHktMVxcNy1hbGxlZ2F0aW9uXFxhbGxlZ2F0aW9uLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMS83LWFsbGVnYXRpb24vYWxsZWdhdGlvbi5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQUE7QUNDRjs7QURDQTtFQUNFLGFBQUE7QUNFRjs7QURBQTtFQUNFLGlCQUFBO0FDR0YiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2xlZ2FsL2RlbWFuZHMvYXV0aG9yaXR5LTEvNy1hbGxlZ2F0aW9uL2FsbGVnYXRpb24uc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cHBlcmNhc2V7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG4uZmlsZS1pbnB1dCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufSIsIi51cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uZmlsZS1pbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0iXX0= */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoLiquidation } from 'app/shared/models/legal/dto-liquidation.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { LiquidationDetailComponent } from '../../../liquidation/liquidation-detail/liquidation-detail.component';\r\nimport { IDtoLaudo } from 'app/shared/models/legal/demand/dto-laudo.model';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalRestartDemandComponet } from 'app/views/modales/demand/restart-demand/modal-restart-demand.component';\r\n\r\n@Component({\r\n selector: '[laudo]',\r\n templateUrl: './laudo.template.html',\r\n styleUrls: ['./laudo.style.scss']\r\n})\r\nexport class LaudoComponent implements OnInit, OnChanges {\r\n private modalRef: BsModalRef;\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDemand: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Inputs */\r\n @Input() private employeeDemand: IDtoEmployee;\r\n @Input() private demand: IDtoDemand;\r\n @Output() routeName = new EventEmitter();\r\n private module = 'demand';\r\n private locale: string = 'es';\r\n /**Securty */\r\n private fileNameVoucherLaudo: string;\r\n private fileVoucherLaudo: File;\r\n private fileNameVoucherDemandClosing: string;\r\n private fileVoucherDemandClosing: File;\r\n @ViewChild(LiquidationDetailComponent, { static: false }) liquidationDetailComponent;\r\n\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private demandService: DemandService\r\n , private documentService: DocumentService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private identityService: IdentityService\r\n , private datePipe: DatePipe\r\n , private modalService: BsModalService) {\r\n this.initializeformDemand();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.demandService.concludeDemandChallenge$.subscribe((res) => {\r\n if (res) {\r\n this.formDemand.disable();\r\n } else {\r\n this.formDemand.enable();\r\n }\r\n });\r\n if(this.demand.concludeDemand) {\r\n this.formDemand.disable();\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.demand !== undefined) {\r\n if (changes.demand.currentValue !== undefined) {\r\n if (changes.demand.currentValue.receptionDemand) {\r\n this.formDemand.get('fileNumber').setValue(changes.demand.currentValue.receptionDemand.fileNumber);\r\n } else if (changes.demand.currentValue.preliminaryAudience) {\r\n this.formDemand.get('fileNumber').setValue(changes.demand.currentValue.preliminaryAudience.fileNumber);\r\n }\r\n if (changes.demand.currentValue.laudo) {\r\n this.patchData();\r\n }\r\n }\r\n }\r\n }\r\n private onFileSelectedVoucherLaudo(event) {\r\n\r\n this.fileVoucherLaudo = event.target.files[0];\r\n\r\n if (this.fileVoucherLaudo) {\r\n\r\n this.fileNameVoucherLaudo = this.fileVoucherLaudo.name;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private onFileSelectedVoucherDemandClosing(event) {\r\n\r\n this.fileVoucherDemandClosing = event.target.files[0];\r\n\r\n if (this.fileVoucherDemandClosing) {\r\n\r\n this.fileNameVoucherDemandClosing = this.fileVoucherDemandClosing.name;\r\n }\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'requestMoneyLawyer':\r\n if ($event.value) {\r\n this.formDemand.get('amountLawyer').setValidators([Validators.required]);\r\n } else {\r\n this.formDemand.get('amountLawyer').setValidators(null);\r\n }\r\n this.formDemand.get('amountLawyer').updateValueAndValidity();\r\n break;\r\n case 'concludeDemand':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n }\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formDemand.get('dateTimeClosing').setValidators([Validators.required]);\r\n this.formDemand.get('voucherClosing').setValidators([Validators.required]);\r\n this.formDemand.get('commentClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n } else {\r\n this.formDemand.get('dateTimeClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('commentClosing').setValidators(null);\r\n }\r\n this.formDemand.get('dateTimeClosing').updateValueAndValidity();\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n this.formDemand.get('commentClosing').updateValueAndValidity();\r\n }\r\n\r\n private initializeformDemand() {\r\n this.formDemand = this.formBuilder.group({\r\n fileNumber: [null, [Validators.required]],\r\n dateTimeLaudo: [null, [Validators.required]],\r\n requestMoneyLawyer: [null, [Validators.required]],\r\n amountLawyer: [null],\r\n voucherLaudo: [null, [Validators.required]],\r\n concludeDemand: [null, [Validators.required]],\r\n dateTimeClosing: [null],\r\n commentClosing: [null],\r\n voucherClosing: [null]\r\n });\r\n }\r\n private submitForm() {\r\n if (this.formDemand.valid) {\r\n if (this.demand.laudo != null) {\r\n this.updateData();\r\n } else {\r\n this.saveData();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemand);\r\n }\r\n }\r\n private saveData(): void {\r\n let dto = this.formDemand.value as IDtoLaudo;\r\n dto.demandId = this.demand.id;\r\n this.demandService.addLaudo(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n let laudo = x.data as IDtoLaudo;\r\n this.demand.laudo = laudo;\r\n this.demand.concludeDemand = laudo.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.uploadFileVoucherLaudo(laudo.id, false, this.fileVoucherLaudo);\r\n if (this.formDemand.value.concludeDemand) {\r\n this.uploadFileVoucherDemandClosing(laudo.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private processStage(liquidation: IDtoLiquidation): void {\r\n //this.submitForm();\r\n this.liquidationDetailComponent.updateLiquidation();\r\n }\r\n private updateData(): void {\r\n let dto = this.formDemand.value as IDtoLaudo;\r\n dto.demandId = this.demand.id;\r\n dto.id = this.demand.laudo.id;\r\n dto.status = this.demand.laudo.status;\r\n dto.creationDate = this.demand.laudo.creationDate;\r\n this.demandService.updateLaudo(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.demand.concludeDemand = dto.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n if (this.formDemand.value.concludeDemand && this.demand.laudo.documentDemandClosing == null) {\r\n this.uploadFileVoucherDemandClosing(dto.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchData(): void {\r\n this.demand.laudo.dateTimeClosing = new Date(this.demand.laudo.dateTimeClosing);\r\n this.demand.laudo.creationDate = new Date(this.demand.laudo.creationDate);\r\n this.demand.laudo.dateTimeLaudo = new Date(this.demand.laudo.dateTimeLaudo);\r\n this.makeRequiredFields(this.demand.laudo.concludeDemand);\r\n this.formDemand.patchValue(this.demand.laudo);\r\n if(this.demand.laudo.documentLaudo) {\r\n this.fileNameVoucherLaudo = this.demand.laudo.documentLaudo.fileName;\r\n this.formDemand.get('voucherLaudo').setValidators(null);\r\n this.formDemand.get('voucherLaudo').updateValueAndValidity();\r\n }\r\n if(this.demand.laudo.documentDemandClosing) {\r\n this.fileNameVoucherDemandClosing = this.demand.laudo.documentDemandClosing.fileName;\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n }\r\n }\r\n private uploadFileVoucherLaudo(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteLaudo_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherLaudo = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'Laudo';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteLaudo\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private uploadFileVoucherDemandClosing(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCierreDemanda_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherDemandClosing = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'Laudo';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteLaudoCierreDemanda\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalRestartDemand() {\r\n const initialState = {\r\n stage: 'Laudos',\r\n liquidationId: this.demand.liquidationId\r\n };\r\n this.modalRef = this.modalService.show(ModalRestartDemandComponet\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n location.reload();\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string, table: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = table;\r\n dto.module = 'Demand';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0xLzgtbGF1ZG8vQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxyZXF1ZXN0XFxsZWdhbFxcZGVtYW5kc1xcYXV0aG9yaXR5LTFcXDgtbGF1ZG9cXGxhdWRvLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMS84LWxhdWRvL2xhdWRvLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBQTtBQ0NGOztBRENBO0VBQ0UsYUFBQTtBQ0VGOztBREFBO0VBQ0UsaUJBQUE7QUNHRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMS84LWxhdWRvL2xhdWRvLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBwZXJjYXNle1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLmZpbGUtaW5wdXQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn0iLCIudXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoLiquidation } from 'app/shared/models/legal/dto-liquidation.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { IDtoConciliatoryAppointmentCourt } from 'app/shared/models/legal/demand/dto-conciliatory-appointment-court.model';\r\nimport { LiquidationDetailComponent } from '../../../liquidation/liquidation-detail/liquidation-detail.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalRestartDemandComponet } from 'app/views/modales/demand/restart-demand/modal-restart-demand.component';\r\n\r\n@Component({\r\n selector: '[conciliatory-appointment-court]',\r\n templateUrl: './conciliatory-appointment-court.template.html',\r\n styleUrls: ['./conciliatory-appointment-court.style.scss']\r\n})\r\nexport class ConciliatoryAppointmentCourtComponent implements OnInit, OnChanges {\r\n private modalRef: BsModalRef;\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDemandProcess: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Inputs */\r\n @Input() private employeeDemand: IDtoEmployee;\r\n @Input() private demand: IDtoDemand;\r\n private actionLiquidation: string;\r\n @Output() routeName = new EventEmitter();\r\n private module = 'demand';\r\n private locale: string = 'es';\r\n /**Securty */\r\n private fileNameVoucherConciliatoryAppointment: string;\r\n private fileVoucherConciliatoryAppointment: File;\r\n private fileNameVoucherDemandClosing: string;\r\n private fileVoucherDemandClosing: File;\r\n private fileNameVoucherConciliatoryAppointmentSecond: string;\r\n private fileVoucherConciliatoryAppointmentSecond: File;\r\n @ViewChild(LiquidationDetailComponent, { static: false }) liquidationDetailComponent;\r\n\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private demandService: DemandService\r\n , private documentService: DocumentService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private identityService: IdentityService\r\n , private datePipe: DatePipe\r\n , private modalService: BsModalService) {\r\n this.initializeFormDemandProcess();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n if (this.configurationService.isReady) {\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n });\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.demand !== undefined) {\r\n if (changes.demand.currentValue !== undefined) {\r\n if (changes.demand.currentValue.conciliatoryAppointmentCourt) {\r\n this.patchData();\r\n }\r\n }\r\n }\r\n }\r\n private onFileSelectedVoucherConciliatoryAppointment(event) {\r\n\r\n this.fileVoucherConciliatoryAppointment = event.target.files[0];\r\n\r\n if (this.fileVoucherConciliatoryAppointment) {\r\n\r\n this.fileNameVoucherConciliatoryAppointment = this.fileVoucherConciliatoryAppointment.name;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private onFileSelectedVoucherDemandClosing(event) {\r\n\r\n this.fileVoucherDemandClosing = event.target.files[0];\r\n\r\n if (this.fileVoucherDemandClosing) {\r\n\r\n this.fileNameVoucherDemandClosing = this.fileVoucherDemandClosing.name;\r\n }\r\n }\r\n private onFileSelectedVoucherConciliatoryAppointmentSecond(event) {\r\n\r\n this.fileVoucherConciliatoryAppointmentSecond = event.target.files[0];\r\n\r\n if (this.fileVoucherConciliatoryAppointmentSecond) {\r\n\r\n this.fileNameVoucherConciliatoryAppointmentSecond = this.fileVoucherConciliatoryAppointmentSecond.name;\r\n }\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'requestMoneyLawyer':\r\n if ($event.value) {\r\n this.formDemandProcess.get('amountLawyer').setValidators([Validators.required]);\r\n } else {\r\n this.formDemandProcess.get('amountLawyer').setValidators(null);\r\n }\r\n this.formDemandProcess.get('amountLawyer').updateValueAndValidity();\r\n break;\r\n case 'concludeDemand':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n case 'concludeDemandSecond':\r\n this.makeRequiredFieldsSecond($event.value);\r\n break;\r\n }\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formDemandProcess.get('dateTimeDemandClosing').setValidators([Validators.required]);\r\n this.formDemandProcess.get('voucherDemandClosing').setValidators([Validators.required]);\r\n this.formDemandProcess.get('commentDemandClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n\r\n this.formDemandProcess.get('secondDateTimeDemandClosing').setValidators(null);\r\n this.formDemandProcess.get('voucherConciliatoryAppointmentSecond').setValidators(null);\r\n this.formDemandProcess.get('secondCommentDemandClosing').setValidators(null);\r\n } else {\r\n this.formDemandProcess.get('dateTimeDemandClosing').setValidators(null);\r\n this.formDemandProcess.get('voucherDemandClosing').setValidators(null);\r\n this.formDemandProcess.get('commentDemandClosing').setValidators(null);\r\n\r\n this.formDemandProcess.get('secondDateTimeDemandClosing').setValidators([Validators.required]);\r\n this.formDemandProcess.get('voucherConciliatoryAppointmentSecond').setValidators([Validators.required]);\r\n this.formDemandProcess.get('secondCommentDemandClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n }\r\n this.formDemandProcess.get('dateTimeDemandClosing').updateValueAndValidity();\r\n this.formDemandProcess.get('voucherDemandClosing').updateValueAndValidity();\r\n this.formDemandProcess.get('commentDemandClosing').updateValueAndValidity();\r\n\r\n this.formDemandProcess.get('secondDateTimeDemandClosing').updateValueAndValidity();\r\n this.formDemandProcess.get('voucherConciliatoryAppointmentSecond').updateValueAndValidity();\r\n this.formDemandProcess.get('secondCommentDemandClosing').updateValueAndValidity();\r\n }\r\n private makeRequiredFieldsSecond(value: boolean): void {\r\n if (value) {\r\n this.formDemandProcess.get('secondDateTimeDemandClosing').setValidators([Validators.required]);\r\n this.formDemandProcess.get('voucherConciliatoryAppointmentSecond').setValidators([Validators.required]);\r\n this.formDemandProcess.get('secondCommentDemandClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n } else {\r\n this.formDemandProcess.get('secondDateTimeDemandClosing').setValidators(null);\r\n this.formDemandProcess.get('voucherConciliatoryAppointmentSecond').setValidators(null);\r\n this.formDemandProcess.get('secondCommentDemandClosing').setValidators(null);\r\n }\r\n this.formDemandProcess.get('secondDateTimeDemandClosing').updateValueAndValidity();\r\n this.formDemandProcess.get('voucherConciliatoryAppointmentSecond').updateValueAndValidity();\r\n this.formDemandProcess.get('secondCommentDemandClosing').updateValueAndValidity();\r\n }\r\n private initializeFormDemandProcess() {\r\n this.formDemandProcess = this.formBuilder.group({\r\n receiveDocument: [null, [Validators.required, Validators.maxLength(100)]],\r\n receptionDate: [null, [Validators.required]],\r\n comment: [null, [Validators.required, Validators.maxLength(2000)]],\r\n dateTimeAppointment: [null, [Validators.required]],\r\n placeAppointment: [null, [Validators.required, Validators.maxLength(300)]],\r\n voucherConciliatoryAppointment: [null, [Validators.required]],\r\n requestMoneyLawyer: [null, [Validators.required]],\r\n amountLawyer: [null],\r\n concludeDemand: [null, [Validators.required]],\r\n dateTimeDemandClosing: [null],\r\n commentDemandClosing: [null],\r\n voucherDemandClosing: [null],\r\n secondDateTimeDemandClosing: [null],\r\n secondCommentDemandClosing: [null],\r\n concludeDemandSecond: [null],\r\n voucherConciliatoryAppointmentSecond: [null],\r\n });\r\n }\r\n private submitForm() {\r\n if (this.formDemandProcess.valid) {\r\n\r\n if (this.demand.conciliatoryAppointmentCourt != null) {\r\n this.updateData();\r\n } else {\r\n this.saveData();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemandProcess);\r\n }\r\n }\r\n private saveData(): void {\r\n let dto = this.formDemandProcess.value as IDtoConciliatoryAppointmentCourt;\r\n dto.demandId = this.demand.id;\r\n this.demandService.addConciliatoryAppointmentCourt(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n let conciliatoryAppointment = x.data as IDtoConciliatoryAppointmentCourt;\r\n this.demand.conciliatoryAppointmentCourt = conciliatoryAppointment;\r\n this.demand.concludeDemand = conciliatoryAppointment.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.uploadFileVoucherConciliatoryAppointment(conciliatoryAppointment.id, false, this.fileVoucherConciliatoryAppointment);\r\n if (this.formDemandProcess.value.concludeDemand) {\r\n this.uploadFileVoucherDemandClosing(conciliatoryAppointment.id, false, this.fileVoucherDemandClosing);\r\n }\r\n if (this.formDemandProcess.value.concludeDemand == false) {\r\n this.uploadFileVoucherConciliatoryAppointmentSecond(conciliatoryAppointment.id, false, this.fileVoucherConciliatoryAppointmentSecond);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private processStage(liquidation: IDtoLiquidation): void {\r\n //this.submitForm();\r\n this.liquidationDetailComponent.updateLiquidation();\r\n }\r\n private updateData(): void {\r\n let dto = this.formDemandProcess.value as IDtoConciliatoryAppointmentCourt;\r\n dto.demandId = this.demand.id;\r\n dto.id = this.demand.conciliatoryAppointmentCourt.id;\r\n dto.status = this.demand.conciliatoryAppointmentCourt.status;\r\n dto.creationDate = this.demand.conciliatoryAppointmentCourt.creationDate;\r\n this.demandService.updateConciliatoryAppointmentCourt(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.demand.concludeDemand = dto.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n if (this.formDemandProcess.value.concludeDemand && this.demand.conciliatoryAppointmentCourt.documentDemandClosing == null) {\r\n this.uploadFileVoucherDemandClosing(dto.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchData(): void {\r\n if (this.demand.conciliatoryAppointmentCourt.dateTimeAppointment != null) {\r\n this.demand.conciliatoryAppointmentCourt.dateTimeAppointment = new Date(this.demand.conciliatoryAppointmentCourt.dateTimeAppointment);\r\n }\r\n\r\n this.demand.conciliatoryAppointmentCourt.receptionDate = new Date(this.demand.conciliatoryAppointmentCourt.receptionDate);\r\n this.demand.conciliatoryAppointmentCourt.dateTimeDemandClosing = new Date(this.demand.conciliatoryAppointmentCourt.dateTimeDemandClosing);\r\n this.demand.conciliatoryAppointmentCourt.secondDateTimeDemandClosing = new Date(this.demand.conciliatoryAppointmentCourt.secondDateTimeDemandClosing);\r\n this.makeRequiredFields(this.demand.conciliatoryAppointmentCourt.concludeDemand);\r\n this.makeRequiredFieldsSecond(this.demand.conciliatoryAppointmentCourt.concludeDemandSecond);\r\n this.formDemandProcess.patchValue(this.demand.conciliatoryAppointmentCourt);\r\n if (this.demand.conciliatoryAppointmentCourt.documentConciliatoryAppointment) {\r\n this.fileNameVoucherConciliatoryAppointment = this.demand.conciliatoryAppointmentCourt.documentConciliatoryAppointment.fileName;\r\n this.formDemandProcess.get('voucherConciliatoryAppointment').setValidators(null);\r\n this.formDemandProcess.get('voucherConciliatoryAppointment').updateValueAndValidity();\r\n }\r\n if (this.demand.conciliatoryAppointmentCourt.documentConciliatoryAppointmentSecond) {\r\n this.fileNameVoucherConciliatoryAppointmentSecond = this.demand.conciliatoryAppointmentCourt.documentConciliatoryAppointmentSecond.fileName;\r\n this.formDemandProcess.get('voucherConciliatoryAppointmentSecond').setValidators(null);\r\n this.formDemandProcess.get('voucherConciliatoryAppointmentSecond').updateValueAndValidity();\r\n }\r\n if (this.demand.conciliatoryAppointmentCourt.documentDemandClosing) {\r\n this.fileNameVoucherDemandClosing = this.demand.conciliatoryAppointmentCourt.documentDemandClosing.fileName;\r\n this.formDemandProcess.get('voucherDemandClosing').setValidators(null);\r\n this.formDemandProcess.get('voucherDemandClosing').updateValueAndValidity();\r\n }\r\n }\r\n private uploadFileVoucherConciliatoryAppointment(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCitaConciliatoriaTribunal_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherConciliatoryAppointment = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'CitaConciliatoriaTribunal';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteCitaConciliatoriaTribunal\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private uploadFileVoucherDemandClosing(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCierreDemandaTribunal_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherConciliatoryAppointment = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'CitaConciliatoriaTribunal';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteCitaConciliatoriaCierreDemandaTribunal\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private uploadFileVoucherConciliatoryAppointmentSecond(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_SegundoComprobanteCitaConciliatoriaTribunal_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherConciliatoryAppointment = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'CitaConciliatoriaTribunal';\r\n document.module = 'Demand';\r\n document.name = \"SegundoComprobanteCitaConciliatoriaTribunal\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalRestartDemand() {\r\n const initialState = {\r\n stage: 'Cita conciliatoria',\r\n liquidationId: this.demand.liquidationId\r\n };\r\n this.modalRef = this.modalService.show(ModalRestartDemandComponet\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n location.reload();\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string, table: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = table;\r\n dto.module = 'Demand';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0yLzEtY29uY2lsaWF0b3J5LWFwcG9pbnRtZW50L0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccmVxdWVzdFxcbGVnYWxcXGRlbWFuZHNcXGF1dGhvcml0eS0yXFwxLWNvbmNpbGlhdG9yeS1hcHBvaW50bWVudFxcY29uY2lsaWF0b3J5LWFwcG9pbnRtZW50LWNvdXJ0LnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMi8xLWNvbmNpbGlhdG9yeS1hcHBvaW50bWVudC9jb25jaWxpYXRvcnktYXBwb2ludG1lbnQtY291cnQuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLHlCQUFBO0FDQ0o7O0FEQ0U7RUFDRSxhQUFBO0FDRUo7O0FEQUU7RUFDRSxpQkFBQTtBQ0dKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0yLzEtY29uY2lsaWF0b3J5LWFwcG9pbnRtZW50L2NvbmNpbGlhdG9yeS1hcHBvaW50bWVudC1jb3VydC5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwcGVyY2FzZXtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG4gIC5maWxlLWlucHV0IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbiAgfSIsIi51cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uZmlsZS1pbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0iXX0= */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { IDtoLiquidation } from 'app/shared/models/legal/dto-liquidation.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { LiquidationDetailComponent } from '../../../liquidation/liquidation-detail/liquidation-detail.component';\r\nimport { IDtoPreliminaryAudience } from 'app/shared/models/legal/demand/dto-preliminary-audience.model';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalPreliminaryAudienceEvidencesComponet } from 'app/views/modales/demand/preliminary-audience-evidences/modal-preliminary-audience-evidences.component';\r\nimport { ModalRestartDemandComponet } from 'app/views/modales/demand/restart-demand/modal-restart-demand.component';\r\n\r\n@Component({\r\n selector: '[preliminary-audience]',\r\n templateUrl: './preliminary-audience.template.html',\r\n styleUrls: ['./preliminary-audience.style.scss']\r\n})\r\nexport class PreliminaryAudienceComponent implements OnInit, OnChanges {\r\n private modalRef: BsModalRef;\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDemand: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Inputs */\r\n @Input() private employeeDemand: IDtoEmployee;\r\n @Input() private demand: IDtoDemand;\r\n private actionLiquidation: string;\r\n @Output() routeName = new EventEmitter();\r\n private module = 'demand';\r\n private locale: string = 'es';\r\n /**Securty */\r\n private fileNameVoucherPreliminaryAudience: string;\r\n private fileVoucherPreliminaryAudience: File;\r\n private fileNameVoucherDemandClosing: string;\r\n private fileVoucherDemandClosing: File;\r\n private fileNameVoucherAppearance: string;\r\n private fileVoucherAppearance: File;\r\n @ViewChild(LiquidationDetailComponent, { static: false }) liquidationDetailComponent;\r\n\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private demandService: DemandService\r\n , private documentService: DocumentService\r\n , private identityService: IdentityService\r\n , private datePipe: DatePipe\r\n , private modalService: BsModalService) {\r\n this.initializeformDemand();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.demandService.concludeDemandChallenge$.subscribe((res) => {\r\n if (res) {\r\n this.formDemand.disable();\r\n } else {\r\n this.formDemand.enable();\r\n }\r\n });\r\n if (this.demand.concludeDemand) {\r\n this.formDemand.disable();\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.demand !== undefined) {\r\n if (changes.demand.currentValue !== undefined) {\r\n if (changes.demand.currentValue.preliminaryAudience) {\r\n this.patchData();\r\n }\r\n }\r\n }\r\n }\r\n private onFileSelectedVoucherPreliminaryAudience(event) {\r\n\r\n this.fileVoucherPreliminaryAudience = event.target.files[0];\r\n\r\n if (this.fileVoucherPreliminaryAudience) {\r\n\r\n this.fileNameVoucherPreliminaryAudience = this.fileVoucherPreliminaryAudience.name;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private onFileSelectedVoucherDemandClosing(event) {\r\n\r\n this.fileVoucherDemandClosing = event.target.files[0];\r\n\r\n if (this.fileVoucherDemandClosing) {\r\n\r\n this.fileNameVoucherDemandClosing = this.fileVoucherDemandClosing.name;\r\n }\r\n }\r\n private onFileSelectedVoucherAppearance(event) {\r\n\r\n this.fileVoucherAppearance = event.target.files[0];\r\n\r\n if (this.fileVoucherAppearance) {\r\n\r\n this.fileNameVoucherAppearance = this.fileVoucherAppearance.name;\r\n }\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'requestMoneyLawyer':\r\n if ($event.value) {\r\n this.formDemand.get('amountLawyer').setValidators([Validators.required]);\r\n } else {\r\n this.formDemand.get('amountLawyer').setValidators(null);\r\n }\r\n this.formDemand.get('amountLawyer').updateValueAndValidity();\r\n break;\r\n case 'concludeDemand':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n case 'appearedTrial':\r\n this.makeRequiredFieldsAppearance($event.value);\r\n break;\r\n }\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formDemand.get('dateTimeClosing').setValidators([Validators.required]);\r\n this.formDemand.get('voucherClosing').setValidators([Validators.required]);\r\n this.formDemand.get('commentClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n } else {\r\n this.formDemand.get('dateTimeClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('commentClosing').setValidators(null);\r\n }\r\n this.formDemand.get('dateTimeClosing').updateValueAndValidity();\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n this.formDemand.get('commentClosing').updateValueAndValidity();\r\n }\r\n private makeRequiredFieldsAppearance(value: boolean): void {\r\n if (value) {\r\n this.formDemand.get('trialDateTime').setValidators([Validators.required]);\r\n this.formDemand.get('voucherAppearance').setValidators([Validators.required]);\r\n\r\n this.formDemand.get('cause').setValidators(null);\r\n this.formDemand.get('newTrialDateTime').setValidators(null);\r\n this.formDemand.get('commentNewTrial').setValidators(null);\r\n } else {\r\n this.formDemand.get('cause').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n this.formDemand.get('newTrialDateTime').setValidators([Validators.required]);\r\n this.formDemand.get('commentNewTrial').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n\r\n this.formDemand.get('trialDateTime').setValidators(null);\r\n this.formDemand.get('voucherAppearance').setValidators(null);\r\n }\r\n this.formDemand.get('trialDateTime').updateValueAndValidity();\r\n this.formDemand.get('voucherAppearance').updateValueAndValidity();\r\n this.formDemand.get('cause').updateValueAndValidity();\r\n this.formDemand.get('newTrialDateTime').updateValueAndValidity();\r\n this.formDemand.get('commentNewTrial').updateValueAndValidity();\r\n }\r\n\r\n private initializeformDemand() {\r\n this.formDemand = this.formBuilder.group({\r\n receiveDocument: [null, [Validators.required, Validators.maxLength(100)]],\r\n receptionDate: [null, [Validators.required]],\r\n comment: [null, [Validators.required, Validators.maxLength(2000)]],\r\n appearedTrial: [null, [Validators.required]],\r\n trialDateTime: [null],\r\n voucherAppearance: [null],\r\n cause: [null],\r\n newTrialDateTime: [null],\r\n commentNewTrial: [null],\r\n fileNumber: [null, [Validators.required, Validators.maxLength(50)]],\r\n directedTo: [null, [Validators.required, Validators.maxLength(150)]],\r\n voucherReception: [null, [Validators.required]],\r\n requestMoneyLawyer: [null, [Validators.required]],\r\n amountLawyer: [null],\r\n concludeDemand: [null, [Validators.required]],\r\n dateTimeClosing: [null],\r\n commentClosing: [null],\r\n voucherClosing: [null]\r\n });\r\n }\r\n private submitForm() {\r\n if (this.formDemand.valid) {\r\n\r\n if (this.demand.preliminaryAudience != null) {\r\n this.updateData();\r\n } else {\r\n this.saveData();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemand);\r\n }\r\n }\r\n private saveData(): void {\r\n let dto = this.formDemand.value as IDtoPreliminaryAudience;\r\n dto.demandId = this.demand.id;\r\n this.demandService.addPreliminaryAudience(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n let preliminaryAudience = x.data as IDtoPreliminaryAudience;\r\n this.demand.preliminaryAudience = preliminaryAudience;\r\n this.demand.concludeDemand = preliminaryAudience.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.uploadFileVoucherPreliminaryAudience(preliminaryAudience.id, false, this.fileVoucherPreliminaryAudience);\r\n if (this.formDemand.value.concludeDemand) {\r\n this.uploadFileVoucherDemandClosing(preliminaryAudience.id, false, this.fileVoucherDemandClosing);\r\n }\r\n if (this.formDemand.value.appearedTrial) {\r\n this.uploadFileVoucherAppearance(preliminaryAudience.id, false, this.fileVoucherAppearance);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private processStage(liquidation: IDtoLiquidation): void {\r\n //this.submitForm();\r\n this.liquidationDetailComponent.updateLiquidation();\r\n }\r\n private updateData(): void {\r\n let dto = this.formDemand.value as IDtoPreliminaryAudience;\r\n dto.demandId = this.demand.id;\r\n dto.id = this.demand.preliminaryAudience.id;\r\n dto.status = this.demand.preliminaryAudience.status;\r\n dto.creationDate = this.demand.preliminaryAudience.creationDate;\r\n this.demandService.updatePreliminaryAudience(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.demand.concludeDemand = dto.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n if (this.formDemand.value.concludeDemand && this.demand.preliminaryAudience.documentDemandClosing == null) {\r\n this.uploadFileVoucherDemandClosing(dto.id, false, this.fileVoucherDemandClosing);\r\n }\r\n if (this.formDemand.value.appearedTrial && this.demand.preliminaryAudience.documentAppearance == null) {\r\n this.uploadFileVoucherAppearance(dto.id, false, this.fileVoucherAppearance);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchData(): void {\r\n this.demand.preliminaryAudience.receptionDate = new Date(this.demand.preliminaryAudience.receptionDate);\r\n if(this.demand.preliminaryAudience.trialDateTime) {\r\n this.demand.preliminaryAudience.trialDateTime = new Date(this.demand.preliminaryAudience.trialDateTime);\r\n }\r\n if (this.demand.preliminaryAudience.newTrialDateTime) {\r\n this.demand.preliminaryAudience.newTrialDateTime = new Date(this.demand.preliminaryAudience.newTrialDateTime);\r\n }\r\n this.makeRequiredFields(this.demand.preliminaryAudience.concludeDemand);\r\n this.formDemand.patchValue(this.demand.preliminaryAudience);\r\n if (this.demand.preliminaryAudience.documentPreliminaryAudience) {\r\n this.fileNameVoucherPreliminaryAudience = this.demand.preliminaryAudience.documentPreliminaryAudience.fileName;\r\n this.formDemand.get('voucherReception').setValidators(null);\r\n this.formDemand.get('voucherReception').updateValueAndValidity();\r\n }\r\n if (this.demand.preliminaryAudience.documentDemandClosing) {\r\n this.fileNameVoucherDemandClosing = this.demand.preliminaryAudience.documentDemandClosing.fileName;\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n }\r\n if (this.demand.preliminaryAudience.documentAppearance) {\r\n this.fileNameVoucherAppearance = this.demand.preliminaryAudience.documentAppearance.fileName;\r\n this.formDemand.get('voucherAppearance').setValidators(null);\r\n this.formDemand.get('voucherAppearance').updateValueAndValidity();\r\n }\r\n }\r\n private uploadFileVoucherPreliminaryAudience(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteAudienciaPreliminar_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherPreliminaryAudience = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'AudienciaPreliminar';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteAudienciaPreliminar\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private uploadFileVoucherDemandClosing(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCierreDemanda_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherDemandClosing = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'AudienciaPreliminar';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteAudienciaPreliminarCierreDemanda\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n } \r\n private uploadFileVoucherAppearance(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteComparecioJuicio_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileNameVoucherDemandClosing = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'AudienciaPreliminar';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteComparecioJuicio\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalEvidences() {\r\n if (this.demand.preliminaryAudience == null) {\r\n this.snotifyService.error('Asegúrese de guardar primeramente el registro para poder cargar una evidencia'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemand);\r\n } else {\r\n const initialState = {\r\n employeeId: this.employeeDemand.id,\r\n preliminaryAudienceId: this.demand.preliminaryAudience.id,\r\n title: 'Registro de pruebas'\r\n };\r\n this.modalService.show(ModalPreliminaryAudienceEvidencesComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configGeneral.configModal));\r\n }\r\n }\r\n private openModalRestartDemand() {\r\n const initialState = {\r\n stage: 'Audiencia Preeliminar',\r\n liquidationId: this.demand.liquidationId\r\n };\r\n this.modalRef = this.modalService.show(ModalRestartDemandComponet\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n location.reload();\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string, table: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = table;\r\n dto.module = 'Demand';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0yLzItcHJlbGltaW5hcnktYXVkaWVuY2UvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxyZXF1ZXN0XFxsZWdhbFxcZGVtYW5kc1xcYXV0aG9yaXR5LTJcXDItcHJlbGltaW5hcnktYXVkaWVuY2VcXHByZWxpbWluYXJ5LWF1ZGllbmNlLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMi8yLXByZWxpbWluYXJ5LWF1ZGllbmNlL3ByZWxpbWluYXJ5LWF1ZGllbmNlLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBQTtBQ0NGOztBRENBO0VBQ0UsYUFBQTtBQ0VGOztBREFBO0VBQ0UsaUJBQUE7QUNHRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMi8yLXByZWxpbWluYXJ5LWF1ZGllbmNlL3ByZWxpbWluYXJ5LWF1ZGllbmNlLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBwZXJjYXNle1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLmZpbGUtaW5wdXQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn0iLCIudXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { IDtoRequisition } from 'app/shared/models/opening/dto-requisition.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { IDtoPreliminaryAudienceEvidenceDetail } from 'app/shared/models/legal/demand/dto-preliminary-audience-evidence-detail.model';\r\nimport { ModalAudienceJudgmentEvidenceComponet } from 'app/views/modales/demand/audience-judgment-evidence/modal-audience-judgment-evidence.component';\r\nimport { IDtoJudgmentAudience } from 'app/shared/models/legal/demand/dto-judgment-audience.model';\r\nimport { ModalRestartDemandComponet } from 'app/views/modales/demand/restart-demand/modal-restart-demand.component';\r\n\r\n@Component({\r\n selector: '[judgment-audience]',\r\n templateUrl: './judgment-audience.template.html',\r\n styleUrls: ['./judgment-audience.style.scss']\r\n})\r\nexport class JudgmentAudienceComponent implements OnInit, OnChanges {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDemand: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Inputs */\r\n @Input() private employeeDemand: IDtoEmployee;\r\n @Input() private demand: IDtoDemand;\r\n private module = 'demand';\r\n /**Securty */\r\n private fileNameVoucherDemandClosing: string;\r\n private fileVoucherDemandClosing: File;\r\n\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private evidences = new Array() as IDtoPreliminaryAudienceEvidenceDetail[];\r\n private evidencesPending = new Array() as IDtoPreliminaryAudienceEvidenceDetail[];\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private demandService: DemandService\r\n , private documentService: DocumentService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private identityService: IdentityService\r\n , private datePipe: DatePipe\r\n , private modalService: BsModalService) {\r\n this.initializeformDemand();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.demandService.concludeDemandChallenge$.subscribe((res) => {\r\n if (res) {\r\n this.formDemand.disable();\r\n } else {\r\n this.formDemand.enable();\r\n }\r\n });\r\n if (this.demand.concludeDemand) {\r\n this.formDemand.disable();\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.demand !== undefined) {\r\n if (changes.demand.currentValue !== undefined) {\r\n \r\n if (changes.demand.currentValue.preliminaryAudience) {\r\n this.getEvidences();\r\n this.formDemand.get('fileNumber').setValue(changes.demand.currentValue.preliminaryAudience.fileNumber);\r\n }\r\n if (changes.demand.currentValue.judgmentAudience) {\r\n this.patchData();\r\n }\r\n }\r\n }\r\n }\r\n private getEvidences(): void {\r\n this.spinner.show();\r\n this.demandService.getPreliminaryAudienceEvidenceDetails(this.demand.preliminaryAudience.id)\r\n .subscribe(\r\n (x) => {\r\n this.evidences = x.filter(x => x.isSecond == false);\r\n this.evidencesPending = x.filter(x => x.isSecond);\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private onFileSelectedVoucherDemandClosing(event) {\r\n\r\n this.fileVoucherDemandClosing = event.target.files[0];\r\n\r\n if (this.fileVoucherDemandClosing) {\r\n\r\n this.fileNameVoucherDemandClosing = this.fileVoucherDemandClosing.name;\r\n }\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'concludeDemand':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n }\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formDemand.get('dateTimeClosing').setValidators([Validators.required]);\r\n this.formDemand.get('voucherClosing').setValidators([Validators.required]);\r\n this.formDemand.get('commentClosing').setValidators([Validators.required, Validators.maxLength(2000)]);\r\n } else {\r\n this.formDemand.get('dateTimeClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('commentClosing').setValidators(null);\r\n }\r\n this.formDemand.get('dateTimeClosing').updateValueAndValidity();\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n this.formDemand.get('commentClosing').updateValueAndValidity();\r\n }\r\n\r\n private initializeformDemand() {\r\n this.formDemand = this.formBuilder.group({\r\n fileNumber: [null, [Validators.required]],\r\n concludeDemand: [null],\r\n dateTimeClosing: [null],\r\n commentClosing: [null],\r\n voucherClosing: [null]\r\n });\r\n }\r\n private openModalEditEvidence(item: IDtoPreliminaryAudienceEvidenceDetail, isSecond: boolean) {\r\n const initialState = {\r\n employeeId: this.employeeDemand.id,\r\n evidence: item,\r\n title: 'Audiencia de juicio de pruebas',\r\n isSecond: isSecond\r\n };\r\n this.modalRef = this.modalService.show(ModalAudienceJudgmentEvidenceComponet\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.configGeneral.newToast('Éxito', 'Éxito', 'success');\r\n this.getEvidences();\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private submitForm() {\r\n if (this.formDemand.valid) {\r\n\r\n if (this.demand.judgmentAudience != null) {\r\n this.updateData();\r\n } else {\r\n this.saveData();\r\n }\r\n } else {\r\n this.snotifyService.error('Llene todos los datos para poder continuar'\r\n , 'Error', this.configToast);\r\n this.configGeneral.touchedControls(this.formDemand);\r\n }\r\n }\r\n private saveData(): void {\r\n let dto = this.formDemand.value as IDtoJudgmentAudience;\r\n dto.demandId = this.demand.id;\r\n this.demandService.addJudgmentAudience(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.snotifyService.success('Registro guardados correctamente'\r\n , 'Éxito', this.configToast);\r\n this.demand.judgmentAudience = x.data as IDtoJudgmentAudience;\r\n this.demand.concludeDemand = this.demand.judgmentAudience.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n\r\n private updateData(): void {\r\n let dto = this.formDemand.value as IDtoJudgmentAudience;\r\n dto.demandId = this.demand.id;\r\n dto.id = this.demand.judgmentAudience.id;\r\n dto.status = this.demand.judgmentAudience.status;\r\n dto.creationDate = this.demand.judgmentAudience.creationDate;\r\n this.demandService.updateJudgmentAudience(dto).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.demand.concludeDemand = dto.concludeDemand;\r\n this.demandService.concludeDemand(this.demand.concludeDemand);\r\n this.snotifyService.success('Registros actualizados correctamente'\r\n , 'Éxito', this.configToast);\r\n if (this.formDemand.value.concludeDemand && this.demand.judgmentAudience.documentDemandClosing == null) {\r\n this.uploadFileVoucherDemandClosing(dto.id, false, this.fileVoucherDemandClosing);\r\n }\r\n } else {\r\n this.snotifyService.error(x.message\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchData(): void {\r\n if (this.demand.judgmentAudience.dateTimeClosing != null) {\r\n this.demand.judgmentAudience.dateTimeClosing = new Date(this.demand.judgmentAudience.dateTimeClosing);\r\n }\r\n this.demand.judgmentAudience.creationDate = new Date(this.demand.judgmentAudience.creationDate);\r\n this.makeRequiredFields(this.demand.judgmentAudience.concludeDemand);\r\n this.formDemand.patchValue(this.demand.judgmentAudience);\r\n if (this.demand.judgmentAudience.documentDemandClosing) {\r\n this.fileNameVoucherDemandClosing = this.demand.judgmentAudience.documentDemandClosing.fileName;\r\n this.formDemand.get('voucherClosing').setValidators(null);\r\n this.formDemand.get('voucherClosing').updateValueAndValidity();\r\n }\r\n }\r\n\r\n private uploadFileVoucherDemandClosing(reference: number, isReplaced: boolean, file: File): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeDemand.id}_ComprobanteCierreDemanda_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n document.referenceId = reference;\r\n document.folder = 'AudienciaJuicios';\r\n document.module = 'Demand';\r\n document.name = \"ComprobanteAudienciaJuicioCierreDemanda\";\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private openModalRestartDemand() {\r\n const initialState = {\r\n stage: 'Audiencia de Juicio',\r\n liquidationId: this.demand.liquidationId\r\n };\r\n this.modalRef = this.modalService.show(ModalRestartDemandComponet\r\n , Object.assign({ initialState }\r\n , this.configGeneral.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n location.reload();\r\n }\r\n });\r\n }\r\n private addModuleLog(id: number, action: string, table: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = table;\r\n dto.module = 'Demand';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL2F1dGhvcml0eS0yLzMtanVkZ21lbnQtYXVkaWVuY2UvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxyZXF1ZXN0XFxsZWdhbFxcZGVtYW5kc1xcYXV0aG9yaXR5LTJcXDMtanVkZ21lbnQtYXVkaWVuY2VcXGp1ZGdtZW50LWF1ZGllbmNlLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMi8zLWp1ZGdtZW50LWF1ZGllbmNlL2p1ZGdtZW50LWF1ZGllbmNlLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBQTtBQ0NGOztBRENBO0VBQ0UsYUFBQTtBQ0VGOztBREFBO0VBQ0UsaUJBQUE7QUNHRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvZGVtYW5kcy9hdXRob3JpdHktMi8zLWp1ZGdtZW50LWF1ZGllbmNlL2p1ZGdtZW50LWF1ZGllbmNlLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBwZXJjYXNle1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLmZpbGUtaW5wdXQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn0iLCIudXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { EmployeeService } from 'app/views/appviews/employee.service';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { Observable } from 'rxjs';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\n@Component({\r\n selector: 'app-demand-process',\r\n styleUrls: ['demand.style.scss'],\r\n templateUrl: 'demand.template.html'\r\n})\r\nexport class DemandComponent implements OnInit {\r\n /**Formularios */\r\n private showRoles: any;\r\n private employeeIniId: number;\r\n private profile: string;\r\n private employee: IDtoEmployee;\r\n private hasEmployee = false;\r\n private liquidationId: number;\r\n //private liquidation: IDtoLiquidation;\r\n private demand: IDtoDemand;\r\n private catalogLawyers: Observable;\r\n private catalogAuthorities: Observable;\r\n private catalogTypeConciliationMeetings: Observable;\r\n private catalogProceduralStages: IDtoCatalog[];\r\n @ViewChild('confirmSwal', { static: false }) private confirmSwal: SwalComponent;\r\n //steps\r\n isStepOneCompleted = false;\r\n isStepTwoCompleted = false;\r\n isStepThreeCompleted = false;\r\n isStepFourCompleted = false;\r\n isStepFiveCompleted = false;\r\n isStepSixCompleted = false;\r\n isStepSevenCompleted = false;\r\n private formDemandProcess: FormGroup;\r\n /**Inputs */\r\n //@Input() private demand: IDtoDemand;\r\n @Output() getDemand = new EventEmitter();\r\n constructor(private spinner: NgxSpinnerService\r\n , private securityService: SecurityService\r\n , private configGeneral: AppConfig\r\n , private route: ActivatedRoute\r\n , private configurationService: ConfigurationService\r\n , private employeeService: EmployeeService\r\n , private identityService: IdentityService\r\n , private demandService: DemandService\r\n , private formBuilder: FormBuilder) {\r\n this.initializeFormDemandProcess();\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n if (this.showRoles !== '') {\r\n this.employeeIniId = this.showRoles.employeeId;\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.configurationService.isReady) {\r\n this.getCatalog();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getCatalog();\r\n });\r\n }\r\n this.route.params.subscribe((params) => {\r\n if (params['liquidationId']) {\r\n setTimeout(() => {\r\n //this.spinner.show();\r\n if (this.configurationService.isReady) {\r\n this.liquidationId = params['liquidationId'];\r\n let employeeId = params['employeeId'];\r\n let requisitionId = params['requisitionId'];\r\n this.getEmployeeData(requisitionId);\r\n this.getDemandByLiquidationId();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.liquidationId = params['liquidationId'];\r\n let employeeId = params['employeeId'];\r\n let requisitionId = params['requisitionId'];\r\n this.getEmployeeData(requisitionId);\r\n });\r\n }\r\n }, 2);\r\n }\r\n });\r\n }\r\n private initializeFormDemandProcess() {\r\n this.formDemandProcess = this.formBuilder.group({\r\n lawyerId: [null, [Validators.required]],\r\n authorityId: [null, [Validators.required]],\r\n typeConciliationMeetingId: [null, [Validators.required]],\r\n proceduralStageId: [null, [Validators.required]]\r\n });\r\n }\r\n private getCatalog() {\r\n this.catalogLawyers = this.demandService.getCatalogLawyers();\r\n this.catalogAuthorities = this.demandService.getCatalogAuthorities();\r\n this.catalogTypeConciliationMeetings = this.demandService.getCatalogTypeConciliationMeetings();\r\n }\r\n private changeStage(dto: IDtoCatalog) {\r\n if (dto == undefined) {\r\n this.formDemandProcess.get('proceduralStageId').setValue(null);\r\n return;\r\n }\r\n this.demand.proceduralStageId = dto.id;\r\n this.getDemand.emit(this.demand)\r\n }\r\n private changeAuthority(dto: IDtoCatalog) {\r\n //this.formDemandProcess.get('proceduralStageId').setValue(null);\r\n if (dto == undefined) {\r\n return;\r\n }\r\n this.demandService.getCatalogProceduralStages(dto.name).subscribe((x) => {\r\n this.catalogProceduralStages = x.filter(x => [1, 2].includes(x.id))\r\n });\r\n this.makeRequiredFields(dto.id);\r\n }\r\n private makeRequiredFields(value: number): void {\r\n if (value == 1) {\r\n this.formDemandProcess.get('typeConciliationMeetingId').setValidators([Validators.required]);\r\n this.formDemandProcess.get('proceduralStageId').setValidators([Validators.required]);\r\n } else {\r\n this.formDemandProcess.get('typeConciliationMeetingId').setValidators(null);\r\n this.formDemandProcess.get('proceduralStageId').setValidators(null);\r\n }\r\n this.formDemandProcess.get('typeConciliationMeetingId').updateValueAndValidity();\r\n this.formDemandProcess.get('proceduralStageId').updateValueAndValidity();\r\n }\r\n private submitForm(form: FormGroup) {\r\n if (form.valid) {\r\n const value = form.value;\r\n this.demand.lawyerId = value.lawyerId;\r\n this.demand.authorityId = value.authorityId;\r\n this.demand.typeConciliationMeetingId = value.typeConciliationMeetingId;\r\n this.demand.proceduralStageId = value.proceduralStageId;\r\n this.demand.liquidationId = this.liquidationId;\r\n if (this.demand.id > 0) {\r\n //this.updateDemand();\r\n } else {\r\n this.addDemand();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Error', 'Llene todos los datos para poder continuar', 'error');\r\n this.configGeneral.touchedControls(form);\r\n }\r\n }\r\n private addDemand(): void {\r\n this.confirmSwal.title = 'Se guardarán los datos de la demanda. ¿Seguro que desea continuar?';\r\n this.confirmSwal.show().then((result) => {\r\n if (result.value) {\r\n this.spinner.show();\r\n this.demandService.addDemand(this.demand).subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.demand = x.data as IDtoDemand\r\n this.getDemand.emit(this.demand)\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n });\r\n\r\n }\r\n private patchValueGeneralData(): void {\r\n this.catalogAuthorities.subscribe(c => {\r\n let authority = c.filter(x => x.id == this.demand.authorityId)[0];\r\n this.changeAuthority(authority);\r\n });\r\n\r\n this.formDemandProcess.patchValue(this.demand);\r\n this.formDemandProcess.disable();\r\n }\r\n private getDemandByLiquidationId(): void {\r\n this.spinner.show()\r\n this.demandService.getDemandByliquidationId(this.liquidationId)\r\n .subscribe(\r\n (x) => {\r\n if (x.data != null) {\r\n this.demand = x.data as IDtoDemand;\r\n this.demand.liquidationId = this.liquidationId;\r\n this.isStepOneCompleted = this.demand.conciliatoryAppointmentBoard != null;\r\n this.isStepTwoCompleted = this.demand.receptionDemand != null;\r\n this.isStepThreeCompleted = this.demand.answerDemand != null;\r\n this.isStepFourCompleted = this.demand.offerAdmissionEvidence != null;\r\n this.isStepFiveCompleted = this.demand.releaseEvidence != null;\r\n this.isStepSixCompleted = this.demand.allegation != null;\r\n this.isStepSevenCompleted = this.demand.laudo != null;\r\n\r\n this.patchValueGeneralData();\r\n } else {\r\n this.demand = {} as IDtoDemand;\r\n this.demand.proceduralStageId = 1;\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private receiveDemand(dto: IDtoDemand) {\r\n this.demand = dto;\r\n }\r\n private getEmployeeData(requisitionId: number): void {\r\n this.spinner.show();\r\n this.employeeService.getEmployeeDataDismissalById(requisitionId).subscribe((res) => {\r\n this.employee = res;\r\n this.hasEmployee = true;\r\n this.spinner.hide();\r\n });\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Documents';\r\n dto.module = 'Liquidation';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\n.center {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: center;\\n justify-content: center;\\n}\\n\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9kZW1hbmRzL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccmVxdWVzdFxcbGVnYWxcXGRlbWFuZHNcXGRlbWFuZC5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2xlZ2FsL2RlbWFuZHMvZGVtYW5kLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBQTtBQ0NKOztBRENFO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0Esd0JBQUE7VUFBQSx1QkFBQTtBQ0VKOztBREFFO0VBQ0Usa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0FDR0o7O0FEQUU7RUFDRSxxQkFBQTtFQUNFLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSwwQkFBQTtFQUNBLGVBQUE7RUFDQSxzQkFBQTtFQUNBLDZCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0FDR047O0FEQUU7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0FDR0oiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2xlZ2FsL2RlbWFuZHMvZGVtYW5kLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH1cclxuICAuY2VudGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB9XHJcbiAgLnVwbG9hZC1idG51cC13cmFwcGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG4gIFxyXG4gIC5idG51cCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xyXG4gICAgICBmb250LXNpemU6IDlweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICB9XHJcbiAgXHJcbiAgLnVwbG9hZC1idG51cC13cmFwcGVyIGlucHV0W3R5cGU9ZmlsZV0ge1xyXG4gICAgZm9udC1zaXplOiAxMDBweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5cbi5jZW50ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnVwbG9hZC1idG51cC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5idG51cCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIgaW5wdXRbdHlwZT1maWxlXSB7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBvcGFjaXR5OiAwO1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoLiquidation } from 'app/shared/models/legal/dto-liquidation.model';\r\nimport { IDtoBudget } from 'app/shared/models/quote/budget.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { LiquidationService } from 'app/views/appviews/liquidation.service';\r\nimport { BudgetService } from 'app/views/appviews/quote/budget.service';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-approve-conciliation-own',\r\n templateUrl: 'approve-conciliation-own.template.html'\r\n})\r\nexport class ApproveConciliationOwnComponent implements OnInit {\r\n public nav: any;\r\n private errorMessages: any;\r\n private title: string;\r\n private description1: string;\r\n private description2: string;\r\n constructor(private serviceSecurity: SecurityService\r\n , private configurationService: ConfigurationService\r\n , private route: ActivatedRoute\r\n , private config: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private liquidationService: LiquidationService\r\n , private identityService: IdentityService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe((params) => {\r\n if (params['url']) {\r\n if (this.configurationService.isReady) {\r\n let u = params['url'];\r\n this.approveOwnConciliation(u);\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n let u = params['url'];\r\n this.approveOwnConciliation(u);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n private approveOwnConciliation(id: number): void {\r\n this.spinner.show()\r\n this.liquidationService.approveOwnConciliation(id)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.title = 'Conciliación propia aprobada';\r\n this.description1 = 'Para alguna duda o aclaración, ponerse en contacto con el area de Legal.';\r\n this.addModuleLog(x.data as IDtoLiquidation);\r\n } else {\r\n this.title = x.exception;\r\n this.description1 = 'Favor de notificar el error al área de legal o ponerse en contacto con el área de soporte.';\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private addModuleLog(res: IDtoLiquidation): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Liquidations';\r\n dto.module = 'liquidation';\r\n dto.action = 'approval';\r\n dto.registryAffectedId = res.id;\r\n //dto.userId = res.approverUserId;\r\n dto.employeeId = null;\r\n dto.role = 'Aprobador';\r\n this.identityService.addModuleLogComplete(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","import { OnInit, Component, ViewChild, Input, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { LiquidationService } from 'app/views/appviews/liquidation.service';\r\nimport { IDtoLiquidation } from 'app/shared/models/legal/dto-liquidation.model';\r\nimport { DiscountService } from 'app/views/appviews/discount.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoSettlement } from 'app/shared/models/legal/dto-settlement.model';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { EmailService } from 'app/views/appviews/email.service';\r\nimport { IDtoEmail } from 'app/shared/models/dto-email.model';\r\n@Component({\r\n selector: '[liquidation-detail]',\r\n styleUrls: ['liquidation-detail.style.scss'],\r\n templateUrl: 'liquidation-detail.template.html'\r\n})\r\nexport class LiquidationDetailComponent implements OnInit, OnChanges {\r\n amountCustomer = 0;\r\n amountOwner = 0;\r\n private file: File;\r\n private fileName = '';\r\n private document = {} as IDtoDocument;\r\n\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private showRoles: any;\r\n private employeeIniId: number;\r\n private profile: string;\r\n private formLiquidationDetail = {} as FormGroup;\r\n private liquidation: IDtoLiquidation;\r\n private settlement: IDtoSettlement;\r\n private toolDiscounts: IDtoCatalog[];\r\n private liquidationId: number;\r\n private approver: string;\r\n private desactiveControls: boolean;\r\n @ViewChild('confirmSwal', { static: false }) private confirmSwal: SwalComponent;\r\n @Input() private employeeData: IDtoEmployee;\r\n @Input() private module: string;\r\n @Input() private actionLiquidation: string;\r\n @Output() dataLiquidation = new EventEmitter();\r\n private approvalConciliationOwnSent: boolean;\r\n constructor(private spinner: NgxSpinnerService\r\n , private securityService: SecurityService\r\n , private configGeneral: AppConfig\r\n , private formBuilder: FormBuilder\r\n , private liquidationService: LiquidationService\r\n , private discountService: DiscountService\r\n , private route: ActivatedRoute\r\n , private configurationService: ConfigurationService\r\n , private documentService: DocumentService\r\n , private identityService: IdentityService\r\n , private datePipe: DatePipe\r\n , private emailService: EmailService) {\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n if (this.showRoles !== '') {\r\n this.employeeIniId = this.showRoles.employeeId;\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.initializeFormLiquidation();\r\n if (this.configurationService.isReady) {\r\n this.getApproverConciliationOwn();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.getApproverConciliationOwn();\r\n });\r\n }\r\n this.route.params.subscribe((params) => {\r\n if (params['liquidationId']) {\r\n setTimeout(() => {\r\n if (this.configurationService.isReady) {\r\n this.liquidationId = params['liquidationId'];\r\n this.getLiquidationById();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.liquidationId = params['liquidationId'];\r\n this.getLiquidationById();\r\n });\r\n }\r\n }, 2);\r\n }\r\n });\r\n this.formLiquidationDetail.get('conciliationOwn').valueChanges.subscribe(value => {\r\n // Establecer approvalConciliationOwnSent en false cuando cambie el valor del campo\r\n if(Number(value) != this.liquidation.conciliationOwn) {\r\n this.approvalConciliationOwnSent = false;\r\n } else {\r\n this.approvalConciliationOwnSent = true;\r\n }\r\n });\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.employeeData !== undefined) {\r\n if (changes.employeeData.currentValue !== undefined && changes.employeeData.currentValue !== null) {\r\n this.getLiquidationDetail();\r\n }\r\n }\r\n if (changes.actionLiquidation !== undefined) {\r\n if (changes.actionLiquidation.currentValue !== undefined && changes.actionLiquidation.currentValue !== null) {\r\n if (this.actionLiquidation != 'update') {\r\n this.liquidation = {} as IDtoLiquidation;\r\n this.formLiquidationDetail.reset();\r\n this.getLiquidation();\r\n }\r\n }\r\n }\r\n }\r\n private initializeFormLiquidation() {\r\n this.formLiquidationDetail = this.formBuilder.group({\r\n petition: [null],\r\n conciliationCustomer: [null],\r\n conciliationOwn: [null],\r\n recoveredViaticDiscount: [null],\r\n recoveredToolDiscount: [null],\r\n recoveredLendingDiscount: [null],\r\n recoveredOtherDiscount: [null],\r\n acceptSettlement: [null],\r\n approvalConciliationOwnSent: [null],\r\n comment: [null]\r\n });\r\n }\r\n private mapLiquidationData(dto: IDtoLiquidation): IDtoLiquidation {\r\n if (dto == undefined) {\r\n dto = {} as IDtoLiquidation;\r\n }\r\n let dtoNew = {} as IDtoLiquidation;\r\n if (this.formLiquidationDetail.value != undefined) {\r\n dtoNew = this.formLiquidationDetail.value as IDtoLiquidation;\r\n }\r\n dto.approvalConciliationOwnSent = dtoNew.approvalConciliationOwnSent == null ? false : dtoNew.approvalConciliationOwnSent;\r\n dto.moneyRequestSent = dto.moneyRequestSent == null ? false : dto.moneyRequestSent;\r\n dto.conciliationOwn = dtoNew.conciliationOwn == null ? 0 : dtoNew.conciliationOwn;\r\n dto.conciliationCustomer = dtoNew.conciliationCustomer == null ? 0 : dtoNew.conciliationCustomer;\r\n dto.recoveredViaticDiscount = dtoNew.recoveredViaticDiscount == null ? 0 : dtoNew.recoveredViaticDiscount;\r\n dto.recoveredToolDiscount = dtoNew.recoveredToolDiscount == null ? 0 : dtoNew.recoveredToolDiscount;\r\n dto.recoveredLendingDiscount = dtoNew.recoveredLendingDiscount == null ? 0 : dtoNew.recoveredLendingDiscount;\r\n dto.recoveredOtherDiscount = dtoNew.recoveredOtherDiscount == null ? 0 : dtoNew.recoveredOtherDiscount;\r\n dto.acceptSettlement = dtoNew.acceptSettlement == null ? null : dtoNew.acceptSettlement;\r\n dto.petition = dtoNew.petition == null ? null : dtoNew.petition;\r\n dto.comment = dtoNew.comment == null ? null : dtoNew.comment\r\n //dto.approvalConciliationOwnSent = dtoNew.approvalConciliationOwnSent;\r\n dto.employeeId = dto.employeeId == null ? this.employeeData.id : dto.employeeId;\r\n dto.employeeNum = this.employeeData.employeeNum;\r\n dto.employeeCompanyId = this.employeeData.employeeCompanyId;\r\n dto.dismissalDate = this.employeeData.dismissalDate;\r\n dto.hiringDate = dto.id > 0 ? dto.hiringDate : this.employeeData.hiringDate;\r\n dto.jobId = this.employeeData.jobId;\r\n dto.dailySalary = this.employeeData.dailySalary;\r\n dto.assimilatedCommission = this.employeeData.assimilatedCommission;\r\n dto.id = dto.id;\r\n dto.requisitionId = dto.id > 0 ? dto.requisitionId : this.employeeData.requisitionId;\r\n return dto;\r\n }\r\n private getLiquidation(): void {\r\n // if (!this.formLiquidationDetail.valid) {\r\n // this.configGeneral.newToast('Error', 'Seleccione un trabajador para continuar', 'error');\r\n // return;\r\n // }\r\n this.spinner.show()\r\n let dto = this.mapLiquidationData(this.liquidation);\r\n this.liquidationService.getliquidation(dto)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.liquidation = x.data as IDtoLiquidation;\r\n this.approvalConciliationOwnSent = this.liquidation.approvalConciliationOwnSent;\r\n this.liquidation.authenticatedEmployeeId = this.employeeIniId;\r\n } else {\r\n this.liquidation = {} as IDtoLiquidation;\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getDetailsDescriptionDiscounts(): void {\r\n this.spinner.show()\r\n this.discountService.getDetailsDescriptionDiscounts(this.employeeData.employeeNum, this.employeeData.employeeCompanyId)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.toolDiscounts = x.data as IDtoCatalog[];\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getDetailSettlementEmployee(dto: IDtoLiquidation): void {\r\n this.spinner.show()\r\n this.liquidationService.getDetailSettlementEmployee(dto)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.settlement = x.data as IDtoSettlement;\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n this.liquidation = {} as IDtoLiquidation;\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private submitForm(): void {\r\n if (this.formLiquidationDetail.valid) {\r\n let status = this.formLiquidationDetail.value.acceptSettlement;\r\n if (status == null) {\r\n this.confirmSwal.title = 'La liquidación será guardada con estatus PENDIENTE';\r\n } else if (status == true) {\r\n this.confirmSwal.title = 'La liquidación será guardada con estatus ACEPTADA POR EL TRABAJADOR';\r\n } else {\r\n this.confirmSwal.title = 'La liquidación será guardada con estatus RECHAZADA POR EL TRABAJADOR';\r\n }\r\n this.confirmSwal.show().then((result) => {\r\n if (result.value) {\r\n if (this.liquidation.id > 0) {\r\n this.updateLiquidation();\r\n } else {\r\n this.saveLiquidation();\r\n }\r\n }\r\n });\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n }\r\n }\r\n private saveLiquidation(): void {\r\n let dto = this.mapLiquidationData(this.liquidation);\r\n if (dto.conciliationCustomer > 0) {\r\n if (this.file == undefined) {\r\n this.configGeneral.newToast('Validación', 'Seleccione un archivo como soporte de autorización de conciliación del cliente.', 'error');\r\n return;\r\n }\r\n }\r\n if (dto.conciliationOwn > 0) {\r\n if (this.approver == undefined) {\r\n this.configGeneral.newToast('Validación', 'No existe un aprovador disponible para realizar la aprobación de la conciliación propia.', 'error');\r\n return;\r\n }\r\n }\r\n this.spinner.show()\r\n this.liquidationService.addLiquidation(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let res = x.data as IDtoLiquidation;\r\n this.liquidation.id = res.id;\r\n this.getLiquidation();\r\n if (dto.conciliationCustomer > 0) {\r\n this.upload(res, false);\r\n }\r\n if(this.shouldShowCheckbox()){\r\n if (dto.approvalConciliationOwnSent && this.approvalConciliationOwnSent == false) {\r\n this.sentApproveConciliationOwn(dto.conciliationOwn, dto.id);\r\n }\r\n }\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private updateLiquidation(): void {\r\n let dto = this.mapLiquidationData(this.liquidation);\r\n if (dto.conciliationCustomer > 0 && dto.conciliationCustomer != this.amountCustomer) {\r\n if (this.file == undefined) {\r\n this.configGeneral.newToast('Validación', 'Seleccione un archivo como soporte de autorización de conciliación del cliente.', 'error');\r\n return;\r\n }\r\n }\r\n const conciliationValue = Number(dto.conciliationOwn);\r\n if (conciliationValue > 0) {\r\n if (this.approver == undefined) {\r\n this.configGeneral.newToast('Validación', 'No existe un aprovador disponible para realizar la aprobación de la conciliación propia.', 'error');\r\n return;\r\n }\r\n }\r\n \r\n this.spinner.show()\r\n this.liquidationService.updateLiquidation(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.getLiquidation();\r\n if (dto.conciliationCustomer > 0) {\r\n this.upload(dto, true);\r\n }\r\n if(this.shouldShowCheckbox()){\r\n if (dto.approvalConciliationOwnSent && this.approvalConciliationOwnSent == false) {\r\n this.sentApproveConciliationOwn(dto.conciliationOwn, dto.id);\r\n }\r\n }\r\n // if (this.module == 'demand') {\r\n // this.dataLiquidation.emit(dto);\r\n // }\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getLiquidationById(): void {\r\n this.spinner.show()\r\n this.liquidation = {} as IDtoLiquidation;\r\n this.liquidationService.getLiquidationById(this.liquidationId)\r\n .subscribe(\r\n (x) => {\r\n if (x != null) {\r\n this.liquidation = x;\r\n this.amountCustomer = this.liquidation.conciliationCustomer;\r\n this.amountOwner = this.liquidation.conciliationOwn;\r\n this.approvalConciliationOwnSent = this.liquidation.approvalConciliationOwnSent;\r\n this.formLiquidationDetail.patchValue(this.liquidation);\r\n if (this.liquidation.documentApproval) {\r\n this.fileName = this.liquidation.documentApproval.fileName;\r\n }\r\n } else {\r\n this.configGeneral.newToast('Error', \"No existen datos para mostrar\", 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getLiquidationDetail(): void {\r\n let dto = this.mapLiquidationData(this.liquidation);\r\n this.getDetailsDescriptionDiscounts();\r\n this.getLiquidation();\r\n this.getDetailSettlementEmployee(dto);\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private handleFileInput(event) {\r\n this.file = event.target.files[0];;\r\n this.fileName = this.file.name;\r\n }\r\n private upload(liquidation: IDtoLiquidation, isReplaced: boolean): void {\r\n if (this.file != undefined) {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = this.file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${liquidation.employeeId}_AutorizacionConciliacionCliente_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileName = fileNameNew;\r\n document.referenceId = liquidation.id;\r\n document.folder = 'AutorizacionesConciliacionCliente';\r\n document.module = 'Liquidation';\r\n document.name = \"AutorizacionConciliacionCliente\";\r\n document.acceptDuplicate = true;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, this.file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n this.document = res.data as IDtoDocument;\r\n this.fileName = this.document.fileName;\r\n this.addModuleLog(this.document.id, 'addDocument');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Documents';\r\n dto.module = 'Liquidation';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n shouldShowCheckbox(): boolean {\r\n const dailySalary = this.employeeData == undefined ? 0 : this.employeeData.dailySalary;\r\n const conciliationValue = this.formLiquidationDetail.get('conciliationOwn').value;\r\n const threshold = (dailySalary * 90) * 0.4;\r\n return conciliationValue > threshold;\r\n }\r\n private sentApproveConciliationOwn(conciliationOwn: number, liquidationId: number): void {\r\n const json = {\r\n employeeName: this.employeeData.employeeName\r\n , employeeNum: this.employeeData.employeeNum\r\n , job: this.employeeData.employeeJob\r\n , trademark: this.employeeData.employeeMarkName\r\n , hiringDate: this.employeeData.hiringDate\r\n , workingDayName: this.employeeData.workingDayName\r\n , company: this.employeeData.employeeCompany\r\n , typePayroll: this.employeeData.employeeTypePayroll\r\n , town: this.employeeData.town\r\n , positionNo: this.employeeData.positionNo\r\n , plan: this.employeeData.planName\r\n , projectName: this.employeeData.projectName\r\n , dismissalDate: this.employeeData.dismissalDate\r\n , dismissalCause: this.employeeData.dismissalCause\r\n , billCompanyId: this.employeeData.companyPayRegId\r\n , conciliationOwn: conciliationOwn\r\n , liquidationId: liquidationId\r\n };\r\n\r\n this.spinner.show();\r\n let message = '';\r\n let email = {} as IDtoEmail;\r\n\r\n email.fromSubject = 'Redpromex';\r\n email.userId = this.approver;\r\n email.subject = 'Aprobación conciliación propia';\r\n email.toRol = 'Aprobador';\r\n email.json = JSON.stringify(json)\r\n email.template = 'approve_conciliation_own';\r\n this.emailService.sendEmail(email).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getApproverConciliationOwn(): void {\r\n this.liquidationService.getApproverConciliationOwn()\r\n .subscribe(\r\n (x) => {\r\n this.approver = x.data.toString();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private sentRequestMoney(): void {\r\n let dto = this.mapLiquidationData(this.liquidation);\r\n this.spinner.show()\r\n this.liquidationService.sentRequestMoney(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.center {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: center;\\n justify-content: center;\\n}\\n\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9saXF1aWRhdGlvbi9saXF1aWRhdGlvbi1kZXRhaWwvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXGFwcHZpZXdzXFxyZXF1ZXN0XFxsZWdhbFxcbGlxdWlkYXRpb25cXGxpcXVpZGF0aW9uLWRldGFpbFxcbGlxdWlkYXRpb24tZGV0YWlsLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvbGlxdWlkYXRpb24vbGlxdWlkYXRpb24tZGV0YWlsL2xpcXVpZGF0aW9uLWRldGFpbC5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQUE7QUNDRjs7QURFQTtFQUNFLGFBQUE7QUNDRjs7QURFQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLHdCQUFBO1VBQUEsdUJBQUE7QUNDRjs7QURFQTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtBQ0NGOztBREVBO0VBQ0UscUJBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsMEJBQUE7RUFDQSxlQUFBO0VBQ0Esc0JBQUE7RUFDQSw2QkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9saXF1aWRhdGlvbi9saXF1aWRhdGlvbi1kZXRhaWwvbGlxdWlkYXRpb24tZGV0YWlsLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbn4ubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn1cclxuXHJcbi5maWxlLWlucHV0IHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uY2VudGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcblxyXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmJ0bnVwIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgcGFkZGluZzogNnB4IDEycHg7XHJcbiAgZm9udC1zaXplOiA5cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuXHJcbi51cGxvYWQtYnRudXAtd3JhcHBlciBpbnB1dFt0eXBlPWZpbGVdIHtcclxuICBmb250LXNpemU6IDEwMHB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICBvcGFjaXR5OiAwO1xyXG59XHJcbiIsIi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn1cblxuLmZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2VudGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi51cGxvYWQtYnRudXAtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYnRudXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDlweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnVwbG9hZC1idG51cC13cmFwcGVyIGlucHV0W3R5cGU9ZmlsZV0ge1xuICBmb250LXNpemU6IDEwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgb3BhY2l0eTogMDtcbn0iXX0= */\"","import { OnInit, Component } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalEmployeesComponet } from 'app/views/modales/employees/modal-employees.component';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IDtoLiquidation } from 'app/shared/models/legal/dto-liquidation.model';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { EmployeeService } from 'app/views/appviews/employee.service';\r\n@Component({\r\n selector: 'app-liquidation',\r\n styleUrls: ['liquidation.style.scss'],\r\n templateUrl: 'liquidation.template.html'\r\n})\r\nexport class LiquidationComponent implements OnInit {\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private employee: IDtoEmployee;\r\n private hasEmployee = false;\r\n private formLiquidation: FormGroup;\r\n private liquidation: IDtoLiquidation;\r\n private actionLiquidation: string;\r\n constructor(private spinner: NgxSpinnerService\r\n , private securityService: SecurityService\r\n , private modalService: BsModalService\r\n , private formBuilder: FormBuilder\r\n , private route: ActivatedRoute\r\n , private configurationService: ConfigurationService\r\n , private employeeService: EmployeeService) {\r\n \r\n }\r\n ngOnInit(): void {\r\n this.initializeFormLiquidation();\r\n if (this.configurationService.isReady) {\r\n \r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n \r\n });\r\n }\r\n this.route.params.subscribe((params) => {\r\n if (params['employeeId']) {\r\n setTimeout(() => {\r\n this.spinner.show();\r\n if (this.configurationService.isReady) {\r\n //this.liquidationId = params['id'];\r\n let employeeId = params['employeeId'];\r\n let requisitionId = params['requisitionId'];\r\n this.actionLiquidation = params['actionLiquidation'];\r\n this.getEmployeeData(requisitionId);\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n //this.liquidationId = params['id'];\r\n let employeeId = params['employeeId'];\r\n let requisitionId = params['requisitionId'];\r\n this.actionLiquidation = params['actionLiquidation'];\r\n this.getEmployeeData(requisitionId);\r\n });\r\n }\r\n }, 2);\r\n }\r\n });\r\n }\r\n private initializeFormLiquidation() {\r\n this.formLiquidation = this.formBuilder.group({\r\n employee: [null, Validators.required]\r\n });\r\n }\r\n private calculateLaborSeniorityDesc(): void {\r\n let diff = new Date(this.employee.dismissalDate).getTime() - new Date(this.employee.hiringDate).getTime();\r\n let days = diff / (1000 * 60 * 60 * 24);\r\n if (days <= 90) {\r\n this.employee.laborSeniorityDesc = 'Menor a 3 meses';\r\n } else {\r\n this.employee.laborSeniorityDesc = 'Mayor a 3 meses';\r\n }\r\n }\r\n private openModalEmployees() {\r\n const initialState = {\r\n module: 'Liquidation',\r\n };\r\n this.modalRef = this.modalService.show(ModalEmployeesComponet\r\n , Object.assign({ initialState }, { class: 'modal-lg' }, this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.formLiquidation.reset();\r\n this.employee = result;\r\n this.calculateLaborSeniorityDesc();\r\n this.formLiquidation.get('employee').setValue(this.employee.employeeName);\r\n this.hasEmployee = true;\r\n this.actionLiquidation = 'add';\r\n //this.getLiquidation();\r\n } else {\r\n this.hasEmployee = false;\r\n }\r\n });\r\n }\r\n\r\n private getEmployeeData(requisitionId: number): void {\r\n this.spinner.show();\r\n this.employeeService.getEmployeeDataDismissalById(requisitionId).subscribe((res) => {\r\n this.employee = res;\r\n this.calculateLaborSeniorityDesc();\r\n this.formLiquidation.get('employee').setValue(this.employee.employeeName);\r\n this.hasEmployee = true;\r\n this.spinner.hide();\r\n });\r\n }\r\n \r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\n.center {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: center;\\n justify-content: center;\\n}\\n\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9saXF1aWRhdGlvbi9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcYXBwdmlld3NcXHJlcXVlc3RcXGxlZ2FsXFxsaXF1aWRhdGlvblxcbGlxdWlkYXRpb24uc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9saXF1aWRhdGlvbi9saXF1aWRhdGlvbi5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSjs7QURDRTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLHdCQUFBO1VBQUEsdUJBQUE7QUNFSjs7QURBRTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtBQ0dKOztBREFFO0VBQ0UscUJBQUE7RUFDRSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsMEJBQUE7RUFDQSxlQUFBO0VBQ0Esc0JBQUE7RUFDQSw2QkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTtBQ0dOOztBREFFO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtBQ0dKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9saXF1aWRhdGlvbi9saXF1aWRhdGlvbi5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcclxuICB9XHJcbiAgLmNlbnRlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG4gIC51cGxvYWQtYnRudXAtd3JhcHBlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxuICBcclxuICAuYnRudXAge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICBwYWRkaW5nOiA2cHggMTJweDtcclxuICAgICAgZm9udC1zaXplOiA5cHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgfVxyXG4gIFxyXG4gIC51cGxvYWQtYnRudXAtd3JhcHBlciBpbnB1dFt0eXBlPWZpbGVdIHtcclxuICAgIGZvbnQtc2l6ZTogMTAwcHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9IiwiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuXG4uY2VudGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi51cGxvYWQtYnRudXAtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYnRudXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDlweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnVwbG9hZC1idG51cC13cmFwcGVyIGlucHV0W3R5cGU9ZmlsZV0ge1xuICBmb250LXNpemU6IDEwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgb3BhY2l0eTogMDtcbn0iXX0= */\"","import { Component, OnDestroy, OnInit, EventEmitter, TemplateRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { ISlimScrollOptions, SlimScrollEvent } from 'ngx-slimscroll';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { enumToDescriptedArray } from 'app/shared/enums/mapper';\r\nimport { EnumLiquidationStatus } from 'app/shared/enums/liquidation-status.enum';\r\nimport { IDtoEmployeeLiquidation } from 'app/shared/models/legal/dto-employee-liquidation.model';\r\nimport { LiquidationService } from 'app/views/appviews/liquidation.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalDemandCostComponet } from '../../../../modales/demand/demand-cost/modal-demand-cost.component';\r\nimport { saveAs } from 'file-saver';\r\nimport { IDtoSolicitudDinero } from 'app/shared/models/money/dto-solicitud-dineto.model';\r\nimport { ModalDiscountDismissalComponet } from 'app/views/modales/liquidation/discount/modal-discount-dismissal.component';\r\nimport { IDocument } from 'app/shared/models/recruitment/document.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\n@Component({\r\n selector: 'app-list-liquidations',\r\n styleUrls: ['./list-liquidations.style.scss'],\r\n templateUrl: 'list-liquidations.template.html'\r\n})\r\nexport class ListLiquidationsComponent implements OnDestroy, OnInit {\r\n private modalRef: BsModalRef;\r\n /**Formularios */\r\n private formFilter: FormGroup;\r\n /**Notificaciones */\r\n private configToast: any;\r\n private catalogLiquidationStatus: IDtoCatalog[];\r\n private employeeLiquidations: IDtoEmployeeLiquidation[];\r\n private employeeLiquidationsTemp: IDtoEmployeeLiquidation[];\r\n private solicitudDinero: IDtoSolicitudDinero;\r\n /**Variables */\r\n public nav: any;\r\n private now: number;\r\n /**Slim-control */\r\n optsSlim: ISlimScrollOptions;\r\n scrollEvents: EventEmitter;\r\n employeeLiquidation: IDtoEmployeeLiquidation;\r\n private document = {} as IDtoDocument;\r\n private fileName = '';\r\n search: string;\r\n private profile: string;\r\n public constructor(private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private liquidationService: LiquidationService\r\n , private router: Router\r\n , private route: ActivatedRoute\r\n , private modalService: BsModalService\r\n , private datePipe: DatePipe\r\n , private documentService: DocumentService) {\r\n this.nav = document.querySelector('nav.navbar');\r\n this.configToast = configGeneral.getConfigToast();\r\n this.optsSlim = configGeneral.getConfigSlimScroll();\r\n this.initializeFormFilter();\r\n }\r\n\r\n public ngOnInit(): any {\r\n this.profile = this.securityService.getProfileStorage('LiquidationRecords');\r\n this.scrollEvents = new EventEmitter();\r\n this.now = Date.now();\r\n this.nav.className += ' white-bg';\r\n if (this.configurationService.isReady) {\r\n this.obetenerCatalogos();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(() => {\r\n //this.spinner.show();\r\n this.obetenerCatalogos();\r\n });\r\n }\r\n }\r\n private getLiquidationsByStatusId(): void {\r\n let statusId = this.formFilter.value.statusId;\r\n if (statusId == undefined) {\r\n this.configGeneral.newToast('Validación', 'Seleccione un estatus para poder filtrar', 'warning');\r\n return;\r\n }\r\n this.spinner.show()\r\n this.liquidationService.getLiquidationsByStatusId(statusId)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.employeeLiquidations = x.data as IDtoEmployeeLiquidation[];\r\n this.employeeLiquidationsTemp = this.employeeLiquidations;\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private obetenerCatalogos(): void {\r\n this.catalogLiquidationStatus = enumToDescriptedArray(EnumLiquidationStatus) as IDtoCatalog[];\r\n }\r\n private initializeFormFilter() {\r\n this.formFilter = this.formBuilder.group({\r\n customerId: [null],\r\n projectId: [null],\r\n payrollTypeId: [null],\r\n periodNom: [null],\r\n year: [null],\r\n module: [null],\r\n statusId: [null]\r\n });\r\n }\r\n public ngOnDestroy(): any {\r\n this.nav.classList.remove('white-bg');\r\n }\r\n private navigateTo(row: IDtoEmployeeLiquidation): void {\r\n const values = this.formFilter.value;\r\n //this.storageService.store('payrolls.filters', values);\r\n //this.storageService.store('payrolls.search', this.search);\r\n this.router.navigate(['/legal/liquidation',\r\n { liquidationId: row.id, employeeId: row.employeeId, actionLiquidation: 'update', requisitionId: row.requisitionId}], { relativeTo: this.route });\r\n }\r\n private goDemand(row: IDtoEmployeeLiquidation): void {\r\n const values = this.formFilter.value;\r\n //this.storageService.store('payrolls.filters', values);\r\n //this.storageService.store('payrolls.search', this.search);\r\n this.router.navigate(['/legal/demand',\r\n { liquidationId: row.id, employeeId: row.employeeId, actionLiquidation: 'update', requisitionId: row.requisitionId }], { relativeTo: this.route });\r\n }\r\n private openModalDemandCost(row: IDtoEmployeeLiquidation) {\r\n const initialState = {\r\n liquidationId: row.id,\r\n settlement: row.settlement\r\n };\r\n this.modalService.show(ModalDemandCostComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configGeneral.configModal));\r\n }\r\n private openModalDiscount(row: IDtoEmployeeLiquidation) {\r\n const initialState = {\r\n employeeId: row.employeeId,\r\n requisitionId: row.requisitionId\r\n };\r\n this.modalService.show(ModalDiscountDismissalComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configGeneral.configModal));\r\n }\r\n private downloadLiquidation(): void {\r\n this.spinner.show();\r\n this.liquidationService.downloadFileLiquidation(this.employeeLiquidation.employeeId, this.employeeLiquidation.id, this.employeeLiquidation.requisitionId).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n this.spinner.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private downloadLiquidationSimple(): void {\r\n this.spinner.show();\r\n this.liquidationService.downloadFileLiquidationSimple(this.employeeLiquidation.employeeId, this.employeeLiquidation.id, this.employeeLiquidation.requisitionId).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n this.spinner.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private obtenerDatosSolicitudDinero(item: IDtoEmployeeLiquidation, template: TemplateRef): void {\r\n this.spinner.show()\r\n this.solicitudDinero = {} as IDtoSolicitudDinero;\r\n this.liquidationService.obtenerDatosSolicitudDinero(item.id, 'Liquidation')\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.solicitudDinero = x.data as IDtoSolicitudDinero;\r\n this.modalRef = this.modalService.show(template);\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private descargarLiquidacion(item: IDtoEmployeeLiquidation, template: TemplateRef): void {\r\n this.employeeLiquidation = item;\r\n this.getDocumentLiquidation();\r\n this.modalRef = this.modalService.show(template);\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private handleFileInput(files: FileList) {\r\n const file = files.item(0);\r\n let ext = file.name.split('.').pop();\r\n if (ext == 'pdf') {\r\n this.upload(file);\r\n } else {\r\n this.configGeneral.newToast('Validación', `Asegúrese de seleccionar el tipo de archivo correcto (.pdf)`, 'error');\r\n }\r\n }\r\n private upload(file: File): void {\r\n if (file != undefined) {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeLiquidation.id}_LiquidacionEmpleado_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileName = fileNameNew;\r\n document.referenceId = this.employeeLiquidation.id;\r\n document.folder = 'Liquidaciones';\r\n document.module = 'Liquidation';\r\n document.name = \"Liquidacion\";\r\n document.acceptDuplicate = true;\r\n document.isReplaced = true;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n this.document = res.data as IDtoDocument;\r\n this.fileName = this.document.fileName;\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n }\r\n private downloadFile(id: number): void {\r\n this.documentService.downloadFile(id).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n this.spinner.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getDocumentLiquidation(): void {\r\n this.documentService.getLatesDocumentVersion(this.employeeLiquidation.id, 'Liquidacion').subscribe(res => {\r\n this.document = res.data as IDtoDocument;\r\n if (this.document == undefined) {\r\n this.configGeneral.newToast('Validación', 'No tiene documento para descargar', 'error');\r\n return;\r\n };\r\n })\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n\r\n const val = this.search.toLowerCase();\r\n const temp = this.employeeLiquidationsTemp.filter((x: any) => x.employeeName.toLowerCase().includes(val)\r\n || x.employeeNum.toLowerCase().includes(val)\r\n || x.customer.toLowerCase().includes(val)\r\n || x.job.toLowerCase().includes(val)\r\n || x.zone.toLowerCase().includes(val));\r\n this.employeeLiquidations = temp;\r\n}\r\n}\r\n","module.exports = \"@charset \\\"UTF-8\\\";\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n.scroll-window {\\n width: 100%;\\n height: 500px;\\n font-size: 13px;\\n padding: 10px 20px 10px 0;\\n font-size: 15px;\\n line-height: 20px;\\n color: #000;\\n}\\n.form-group {\\n font-weight: 500;\\n font-size: 12px;\\n}\\n.m-b-dowload-excel {\\n margin-bottom: -20px;\\n}\\n.popover {\\n z-index: 1060;\\n /* Ajusta según tus necesidades */\\n}\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n.pointer {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9sZWdhbC9saXF1aWRhdGlvbi9saXN0LWxpcXVpZGF0aW9ucy5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L2xlZ2FsL2xpcXVpZGF0aW9uL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccmVxdWVzdFxcbGVnYWxcXGxpcXVpZGF0aW9uXFxsaXN0LWxpcXVpZGF0aW9ucy5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ0NoQjtFQUNFLGlCQUFBO0FEQ0Y7QUNDQTtFQUNFLFdBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsV0FBQTtBREVGO0FDQUE7RUFDRSxnQkFBQTtFQUNBLGVBQUE7QURHRjtBQ0RBO0VBQ0Usb0JBQUE7QURJRjtBQ0ZBO0VBQ0UsYUFBQTtFQUFlLGlDQUFBO0FETWpCO0FDRkE7RUFDRSxpQkFBQTtBREtGO0FDSEE7RUFDRSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7QURNRjtBQ0hBO0VBQ0UscUJBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsMEJBQUE7RUFDQSxlQUFBO0VBQ0Esc0JBQUE7RUFDQSw2QkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTtBRE1GO0FDSEE7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0FETUY7QUNIQTtFQUNFLGVBQUE7QURNRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvbGVnYWwvbGlxdWlkYXRpb24vbGlzdC1saXF1aWRhdGlvbnMuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn1cblxuLnNjcm9sbC13aW5kb3cge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MDBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogIzAwMDtcbn1cblxuLmZvcm0tZ3JvdXAge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5tLWItZG93bG9hZC1leGNlbCB7XG4gIG1hcmdpbi1ib3R0b206IC0yMHB4O1xufVxuXG4ucG9wb3ZlciB7XG4gIHotaW5kZXg6IDEwNjA7XG4gIC8qIEFqdXN0YSBzZWfDum4gdHVzIG5lY2VzaWRhZGVzICovXG59XG5cbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn1cblxuLnVwbG9hZC1idG51cC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5idG51cCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIgaW5wdXRbdHlwZT1maWxlXSB7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4ucG9pbnRlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn0iLCJcclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn1cclxuLnNjcm9sbC13aW5kb3cge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogNTAwcHg7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDA7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gIGNvbG9yOiAjMDAwO1xyXG59XHJcbi5mb3JtLWdyb3VwIHtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG4ubS1iLWRvd2xvYWQtZXhjZWwge1xyXG4gIG1hcmdpbi1ib3R0b206IC0yMHB4O1xyXG59XHJcbi5wb3BvdmVyIHtcclxuICB6LWluZGV4OiAxMDYwOyAvKiBBanVzdGEgc2Vnw7puIHR1cyBuZWNlc2lkYWRlcyAqL1xyXG59XHJcblxyXG5cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn1cclxuLnVwbG9hZC1idG51cC13cmFwcGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi5idG51cCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIHBhZGRpbmc6IDZweCAxMnB4O1xyXG4gIGZvbnQtc2l6ZTogOXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG59XHJcblxyXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIgaW5wdXRbdHlwZT1maWxlXSB7XHJcbiAgZm9udC1zaXplOiAxMDBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgb3BhY2l0eTogMDtcclxufVxyXG5cclxuLnBvaW50ZXIge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufSJdfQ== */\"","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoRelocation } from 'app/shared/models/request/relocation/dto-relocation.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoFilter } from 'app/shared/models/filter.model';\r\n\r\n@Injectable()\r\nexport class RelocationService {\r\n private requestUrl = '';\r\n private openingUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.openingUrl = this.configurationService.serverSettings.openingUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n this.openingUrl = this.configurationService.serverSettings.openingUrl;\r\n });\r\n }\r\n }\r\n public getCatalogRelocationReasons(): Observable {\r\n const url = `${this.requestUrl}api/RelocationReasons/getCatalogRelocationReasons/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addRelocation(dto: IDtoRelocation): Observable {\r\n const url =`${this.requestUrl}api/Relocations/addRelocation`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogRequisitions(codeNomCompanyPay: string, codeNomCustomer: string): Observable {\r\n const url = `${this.openingUrl}api/Requisitions/getCatalogRequisitionsByCompanyPayAndCustomer?codeNomCompanyPay=${codeNomCompanyPay}&codeNomCustomer=${codeNomCustomer}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getRelocations(data: IDtoFilter): Observable {\r\n const url =`${this.requestUrl}api/Relocations/getRelocations/`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n}\r\n","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ExcelService } from '../excel.service';\r\nimport { IMyDateModel } from 'angular-mydatepicker';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { RelocationService } from '../relocation.service';\r\nimport { IDtoFilter } from 'app/shared/models/filter.model';\r\nimport { IDtoRelocation } from 'app/shared/models/request/relocation/dto-relocation.model';\r\nimport { AppConfig } from 'app/app.config';\r\n@Component({\r\n selector: 'app-relocation-records',\r\n styleUrls: ['relocation-records.style.scss'],\r\n templateUrl: 'relocation-records.template.html'\r\n})\r\nexport class RelocationRecordsComponent implements OnInit {\r\n /**Formularios */\r\n private locale: string = 'es';\r\n private filters = {} as IDtoFilter;\r\n /**Notificaciones */\r\n private listRelocations: IDtoRelocation[]\r\n private listRelocationsTemp: IDtoRelocation[]\r\n private search: string;\r\n private start: IMyDateModel;\r\n private end: IMyDateModel;\r\n private showRoles: any;\r\n private employeeIniId: number;\r\n private profile: string;\r\n @ViewChild(DatatableComponent, { static: false }) tableRelocations: DatatableComponent;\r\n constructor(private spinner: NgxSpinnerService\r\n , private relocationService: RelocationService\r\n , private excelService: ExcelService\r\n , private securityService: SecurityService\r\n , private configGeneral: AppConfig) {\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n if (this.showRoles !== '') {\r\n this.employeeIniId = this.showRoles.employeeId;\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.profile = this.securityService.getProfileStorage('RelocationRecords');\r\n }\r\n\r\n private getWorkLeavebyFilters(): void {\r\n this.spinner.show();\r\n this.filters.startDate = this.getDate(this.start);\r\n this.filters.endDate = this.getDate(this.end);\r\n this.filters.employeeId = this.employeeIniId;\r\n this.filters.profile = this.profile;\r\n this.relocationService.getRelocations(this.filters).subscribe((res) => {\r\n if (res.isCorrect) {\r\n this.listRelocations = res.data as IDtoRelocation[];\r\n this.listRelocationsTemp = res.data as IDtoRelocation[];\r\n } else {\r\n this.configGeneral.newToast('Datos', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n generateExcel() {\r\n if (this.listRelocationsTemp != undefined) {\r\n this.excelService.generateExcelRelocations(this.listRelocations);\r\n }\r\n }\r\n private getDate(event?: IMyDateModel) {\r\n if(event === undefined) {\r\n return null;\r\n }\r\n return event.singleDate.jsDate;\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n\r\n const val = this.search.toLowerCase();\r\n const temp = this.listRelocationsTemp.filter((x: any) => x.employeeName.toLowerCase().startsWith(val)\r\n || x.reasonName.toLowerCase().startsWith(val)\r\n || x.trademark.toLowerCase().startsWith(val)\r\n || x.position.toLowerCase().startsWith(val)\r\n || x.employeeNum.startsWith(val));\r\n this.listRelocations = temp;\r\n this.tableRelocations.offset = 0;\r\n }\r\n}\r\n","module.exports = \".m-b-dowload-excel {\\n margin-bottom: -30px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9yZWxvY2F0aW9uL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccmVxdWVzdFxccmVsb2NhdGlvblxccmVsb2NhdGlvbi1yZWNvcmRzLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvcmVsb2NhdGlvbi9yZWxvY2F0aW9uLXJlY29yZHMuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLG9CQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L3JlbG9jYXRpb24vcmVsb2NhdGlvbi1yZWNvcmRzLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubS1iLWRvd2xvYWQtZXhjZWwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XHJcbn0iLCIubS1iLWRvd2xvYWQtZXhjZWwge1xuICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbn0iXX0= */\"","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IMyDateModel, IAngularMyDpOptions } from 'angular-mydatepicker';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalEmployeesComponet } from 'app/views/modales/employees/modal-employees.component';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { WorkLeaveService } from '../workLeave.service';\r\nimport { IDtoWorkLeave } from 'app/shared/models/request/work-leave/dto-work-leave.model';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoPeriodType } from 'app/shared/models/employee/dto-period-type.model';\r\nimport { RelocationService } from '../relocation.service';\r\nimport { IDtoRelocation } from 'app/shared/models/request/relocation/dto-relocation.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { AdministrationService } from '../../quote/administration.service';\r\n\r\n@Component({\r\n selector: 'app-relocation',\r\n styleUrls: ['relocation.style.scss'],\r\n templateUrl: 'relocation.template.html'\r\n})\r\nexport class RelocationComponent implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Notificaciones */\r\n @ViewChild('addSwal', { static: false }) private addSwal: SwalComponent;\r\n /**Formularios */\r\n private formRelocation: FormGroup;\r\n private locale: string = 'es';\r\n /**Catalogos */\r\n private catalogRelocationReasons: Observable;\r\n private catalogRequisitions: Observable;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private employee: IDtoEmployee;\r\n private employeePeriod: IDtoPeriodType;\r\n private hasEmployee = false;\r\n private currentDate: Date;\r\n private isOther: boolean;\r\n private codeNomCustomer: string;\r\n private pickerOptions: IAngularMyDpOptions;\r\n private isOpenPeriod: boolean;\r\n constructor(private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private relocationService: RelocationService\r\n , private configurationService: ConfigurationService\r\n , private modalService: BsModalService\r\n , private workLeaveService: WorkLeaveService\r\n , private identityService: IdentityService\r\n , private administrationService: AdministrationService) {\r\n\r\n }\r\n ngOnInit(): void {\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getCatalogs();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getCatalogs();\r\n });\r\n }\r\n this.initializeFormWorkLeave();\r\n this.getOpenCalendar();\r\n }\r\n private getCatalogs(): void {\r\n this.catalogRelocationReasons = this.relocationService.getCatalogRelocationReasons();\r\n this.spinner.hide();\r\n }\r\n\r\n private initializeFormWorkLeave() {\r\n this.formRelocation = this.formBuilder.group({\r\n relocationDate: [null, Validators.required],\r\n reasonId: [null, Validators.required],\r\n generateVacancy: [null, Validators.required],\r\n requisitionId: [null, Validators.required],\r\n observations: [null, [Validators.maxLength(500)]],\r\n employee: [null, Validators.required],\r\n });\r\n }\r\n private submitForm(): void {\r\n if (this.formRelocation.valid) {\r\n this.addSwal.title = 'Se registrará la reubicación para el empleado seleccionado.';\r\n this.addSwal.show();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n this.configGeneral.touchedControls(this.formRelocation);\r\n }\r\n }\r\n private openModalEmployees() {\r\n this.modalRef = this.modalService.show(ModalEmployeesComponet\r\n , Object.assign({ class: 'modal-lg' }, this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.formRelocation.reset();\r\n this.employee = result;\r\n this.formRelocation.get('employee').setValue(this.employee.employeeName);\r\n this.hasEmployee = true;\r\n this.codeNomCustomer = this.employee.employeeMarkName.split('-')[0];\r\n this.catalogRequisitions = this.relocationService.getCatalogRequisitions(this.employee.employeeCompanyId, this.codeNomCustomer);\r\n } else {\r\n this.hasEmployee = false;\r\n }\r\n });\r\n }\r\n private getDate(event: IMyDateModel) {\r\n return event.singleDate.jsDate;\r\n }\r\n private save(): void {\r\n this.spinner.show();\r\n let data = Object.assign({}, this.formRelocation.value as IDtoRelocation);\r\n data.employeeId = this.employee.id;\r\n data.employeeNum = this.employee.employeeNum;\r\n data.employeeName = this.employee.employeeNames;\r\n data.employeeLastName = this.employee.employeeLastName;\r\n data.employeeSecondLastName = this.employee.employeeSecondLastName;\r\n data.codeNomCustomer = this.codeNomCustomer;\r\n data.relocationDate = this.configGeneral.getLocalISOTime(this.getDate(this.formRelocation.value.relocationDate));\r\n data.creationDate = this.configGeneral.getLocalISOTime(this.currentDate);\r\n data.previousRequisitionId = this.employee.requisitionId;\r\n data.uKey = this.employee.uKey;\r\n data.hiringDate = this.employee.hiringDate;\r\n this.relocationService.addRelocation(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let r = x.data as IDtoRelocation;\r\n this.addModuleLog(r.id);\r\n this.formRelocation.reset();\r\n this.hasEmployee = false;\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private restrictDate(current: Date) {\r\n //const current = new Date();\r\n current.setDate(current.getDate());\r\n var lastDay = new Date(current.getFullYear(), current.getMonth(), 0);\r\n this.pickerOptions = {\r\n dateFormat: 'dd.mm.yyyy',\r\n dateRange: false,\r\n disableSince: { year: current.getFullYear(), month: current.getMonth() + 1, day: 6 },\r\n disableDateRanges: [{\r\n begin: { year: 1000, month: 1, day: 1 },\r\n end: { year: current.getUTCFullYear(), month: current.getUTCMonth(), day: lastDay.getDate() }\r\n }]\r\n }\r\n }\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Relocations';\r\n dto.module = 'relocation';\r\n dto.action = 'new';\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n private getOpenCalendar(): void {\r\n this.workLeaveService.getCurrentDate().subscribe(x => {\r\n this.currentDate = new Date(x);\r\n this.administrationService.getOpenCalendar('open_relocation_calendar').subscribe(res => {\r\n let open = res;\r\n if (!open) {\r\n this.isOpenPeriod = this.currentDate.getDate() < 6;\r\n this.restrictDate(this.currentDate);\r\n } else {\r\n this.isOpenPeriod = true;\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC9yZWxvY2F0aW9uL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccmVxdWVzdFxccmVsb2NhdGlvblxccmVsb2NhdGlvbi5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L3JlbG9jYXRpb24vcmVsb2NhdGlvbi5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3QvcmVsb2NhdGlvbi9yZWxvY2F0aW9uLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ExcelService } from '../excel.service';\r\nimport { WorkLeaveService } from '../workLeave.service';\r\nimport { IDtoWorkLeaveFilter } from 'app/shared/models/request/work-leave/dto-work-leave-filter.model';\r\nimport { IDtoWorkLeave } from 'app/shared/models/request/work-leave/dto-work-leave.model';\r\nimport { IMyDateModel } from 'angular-mydatepicker';\r\nimport { IDtoWorkLeaveChangeStatus } from 'app/shared/models/request/work-leave/dto-work-leave-change-status.model';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { ModalDiscountDismissalComponet } from 'app/views/modales/liquidation/discount/modal-discount-dismissal.component';\r\nimport { BsModalService } from 'ngx-bootstrap';\r\n@Component({\r\n selector: 'app-work-leave-records',\r\n styleUrls: ['work-leave-records.style.scss'],\r\n templateUrl: 'work-leave-records.template.html'\r\n})\r\nexport class WorkLeaveRecordsComponent implements OnInit {\r\n /**Formularios */\r\n private locale: string = 'es';\r\n private filters = {} as IDtoWorkLeaveFilter;\r\n /**Notificaciones */\r\n private listWorkLeaves: IDtoWorkLeave[]\r\n private listWorkLeavesTemp: IDtoWorkLeave[]\r\n private search: string;\r\n private start: IMyDateModel;\r\n private end: IMyDateModel;\r\n private changeWorkLeave: IDtoWorkLeaveChangeStatus;\r\n private workLeave: IDtoWorkLeave;\r\n private listIds = new Array();\r\n private showRoles: any;\r\n private employeeIniId: number;\r\n private profile: string;\r\n @ViewChild(DatatableComponent, { static: false }) tableWorkLeave: DatatableComponent;\r\n @ViewChild('swalCancel', { static: false }) private swalCancel: SwalComponent;\r\n @ViewChild('swalUpdateList', { static: false }) private swalUpdateList: SwalComponent;\r\n constructor(private spinner: NgxSpinnerService\r\n , private workLeaveService: WorkLeaveService\r\n , private excelService: ExcelService\r\n , private configGeneral: AppConfig\r\n , private securityService: SecurityService\r\n , private modalService: BsModalService) {\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n if (this.showRoles !== '') {\r\n this.employeeIniId = this.showRoles.employeeId;\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.profile = this.securityService.getProfileStorage('WorkLeaveRecords');\r\n }\r\n\r\n private getWorkLeavebyFilters(): void {\r\n this.spinner.show();\r\n this.filters.startDischargedate = this.getDate(this.start);\r\n this.filters.endDischargedate = this.getDate(this.end);\r\n this.filters.employeeId = this.employeeIniId;\r\n this.filters.profile = this.profile;\r\n this.workLeaveService.getWorkLeavebyFilters(this.filters).subscribe((res) => {\r\n if (res.isCorrect) {\r\n this.listWorkLeaves = res.data as IDtoWorkLeave[];\r\n this.listWorkLeavesTemp = res.data as IDtoWorkLeave[];\r\n } else {\r\n this.configGeneral.newToast('Validación', res.message, 'warning');\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n generateExcel() {\r\n if (this.listWorkLeavesTemp != undefined) {\r\n this.excelService.generateExcelWorkLeave(this.listWorkLeaves);\r\n }\r\n }\r\n generateCsv() {\r\n if (this.listWorkLeavesTemp != undefined) {\r\n this.excelService.generateCsv(this.listWorkLeaves);\r\n }\r\n }\r\n private getDate(event?: IMyDateModel) {\r\n if (event === undefined) {\r\n return null;\r\n }\r\n return event.singleDate.jsDate;\r\n }\r\n private cancelWorkLeave(row: IDtoWorkLeave): void {\r\n this.workLeave = row;\r\n let a = new Array();\r\n a.push(this.workLeave.id);\r\n this.changeWorkLeave = {} as IDtoWorkLeaveChangeStatus;\r\n this.changeWorkLeave.ids = a;\r\n this.changeWorkLeave.Status = 1;\r\n this.swalCancel.title = 'La baja seleccionada será cancelada';\r\n this.swalCancel.show();\r\n }\r\n private updateListWorkLeave(): void {\r\n this.listIds = new Array();\r\n this.listWorkLeaves.forEach(element => {\r\n if (element.statusId == 0) {\r\n this.listIds.push(element.id);\r\n }\r\n });\r\n if (this.listIds.length > 0) {\r\n this.swalUpdateList.title = `Se enviarán a baja ${this.listIds.length} registros`;\r\n this.swalUpdateList.show();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'No existen registros para procesar', 'warning');\r\n }\r\n }\r\n private processListWorkLeave(): void {\r\n this.spinner.show();\r\n this.workLeaveService.downloadTxt(this.listIds).subscribe((res) => {\r\n if (res.isCorrect) {\r\n this.listWorkLeaves.forEach(element => {\r\n if (element.statusId == 0) {\r\n element.status = 'Completada'\r\n element.statusId = 2;\r\n }\r\n });\r\n this.listWorkLeaves = [...this.listWorkLeaves]\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n this.spinner.hide();\r\n saveAs(blob, file.fileDownloadName);\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private updateWorkLeave(): void {\r\n this.spinner.show();\r\n this.workLeaveService.changeWorkLeaveStatus(this.changeWorkLeave).subscribe((res) => {\r\n if (res.isCorrect) {\r\n this.workLeave.status = 'Cancelada'\r\n this.workLeave.statusId = 1;\r\n this.listWorkLeaves = [...this.listWorkLeaves]\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n private accessImss(): boolean {\r\n const profile = this.securityService.getProfileStorage('WorkLeaveRecords');\r\n return profile === 'IMSS' || profile === 'Auxiliar IMSS'\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n\r\n const val = this.search.toLowerCase();\r\n const temp = this.listWorkLeavesTemp.filter((x: any) => x.employeeName.toLowerCase().startsWith(val)\r\n || x.employeeMarkName.toLowerCase().startsWith(val)\r\n || x.positionNo.toLowerCase().startsWith(val)\r\n || x.employeeNum.startsWith(val));\r\n this.listWorkLeaves = temp;\r\n this.tableWorkLeave.offset = 0;\r\n }\r\n private openModalDiscount(row: IDtoWorkLeave) {\r\n const initialState = {\r\n employeeId: row.employeeId,\r\n requisitionId: row.requisitionId\r\n };\r\n this.modalService.show(ModalDiscountDismissalComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configGeneral.configModal));\r\n }\r\n}\r\n","module.exports = \".m-b-dowload-excel {\\n margin-bottom: -30px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC93b3JrLWxlYXZlL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccmVxdWVzdFxcd29yay1sZWF2ZVxcd29yay1sZWF2ZS1yZWNvcmRzLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3Qvd29yay1sZWF2ZS93b3JrLWxlYXZlLXJlY29yZHMuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLG9CQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L3dvcmstbGVhdmUvd29yay1sZWF2ZS1yZWNvcmRzLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubS1iLWRvd2xvYWQtZXhjZWwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XHJcbn0iLCIubS1iLWRvd2xvYWQtZXhjZWwge1xuICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbn0iXX0= */\"","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IMyDateModel, IAngularMyDpOptions } from 'angular-mydatepicker';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalEmployeesComponet } from 'app/views/modales/employees/modal-employees.component';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { WorkLeaveService } from '../workLeave.service';\r\nimport { IDtoWorkLeave } from 'app/shared/models/request/work-leave/dto-work-leave.model';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoPeriodType } from 'app/shared/models/employee/dto-period-type.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from '../../security/identity.service';\r\nimport { PayrollService } from '../../payroll.service';\r\nimport { take } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-work-leave',\r\n styleUrls: ['work-leave.style.scss'],\r\n templateUrl: 'work-leave.template.html'\r\n})\r\nexport class WorkLeaveComponent implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Notificaciones */\r\n @ViewChild('addSwal', { static: false }) private addSwal: SwalComponent;\r\n /**Formularios */\r\n private formWorkLeave: FormGroup;\r\n private locale: string = 'es';\r\n /**Catalogos */\r\n private catalogLineInsurances: Observable;\r\n private catalogPaymentTypes: Observable;\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n private employee: IDtoEmployee;\r\n private employeePeriod: IDtoPeriodType;\r\n private hasEmployee = false;\r\n private pickerOptionsPayroll: IAngularMyDpOptions;\r\n private currentDate: Date;\r\n private isRecountable: boolean = undefined;\r\n private isOther: boolean;\r\n constructor(private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private workLeaveService: WorkLeaveService\r\n , private configurationService: ConfigurationService\r\n , private modalService: BsModalService\r\n , private identityService: IdentityService\r\n , private payrollService: PayrollService) {\r\n\r\n }\r\n ngOnInit(): void {\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getCatalogs();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getCatalogs();\r\n });\r\n }\r\n this.initializeFormWorkLeave();\r\n }\r\n private getCatalogs(): void {\r\n this.catalogLineInsurances = this.workLeaveService.getCatalogLineInsurances();\r\n this.catalogPaymentTypes = this.workLeaveService.getCatalogPaymentTypes();\r\n this.workLeaveService.getCurrentDate().subscribe(x => {\r\n this.currentDate = new Date(x);\r\n });\r\n this.spinner.hide();\r\n }\r\n private initializeFormWorkLeave() {\r\n this.formWorkLeave = this.formBuilder.group({\r\n dismissalCauseId: [null, Validators.required],\r\n dismissalDate: [null, Validators.required],\r\n canGenerateVacancy: [null, Validators.required],\r\n applyBond: [null, Validators.required],\r\n bondComments: [null],\r\n hasSettlementRequest: [null, Validators.required],\r\n settlementComments: [null],\r\n hasCellPhone: [null, Validators.required],\r\n cellPhoneObservations: [null],\r\n hasPendingCommissions: [null, Validators.required],\r\n commissionComments: [null],\r\n isRechargeable: [null],\r\n dismissalObservations: [null],\r\n isChangePay: [null, Validators.required],\r\n paymentTypeId: [null],\r\n employee: [null, Validators.required],\r\n otherObservations: [null],\r\n hasChecks: [null, Validators.required],\r\n checkComments: [null]\r\n });\r\n }\r\n private submitForm(): void {\r\n if (this.formWorkLeave.valid) {\r\n this.addSwal.title = 'Se registrará la baja para el empleado seleccionado.';\r\n this.addSwal.show();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n this.configGeneral.touchedControls(this.formWorkLeave);\r\n }\r\n }\r\n private openModalEmployees() {\r\n this.modalRef = this.modalService.show(ModalEmployeesComponet\r\n , Object.assign({ class: 'modal-lg' }, this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.formWorkLeave.reset();\r\n this.employee = result;\r\n console.log(this.employee);\r\n this.formWorkLeave.get('employee').setValue(this.employee.employeeName);\r\n this.hasEmployee = true;\r\n this.getStartDatePeriod();\r\n } else {\r\n this.hasEmployee = false;\r\n }\r\n });\r\n }\r\n private isOtherCause(text: string): void {\r\n this.catalogLineInsurances.pipe(take(1)).subscribe((data: ISelect[]) => {\r\n const filteredData = data.filter((item: ISelect) =>\r\n item.text.toLowerCase().includes(text.toLowerCase())\r\n );\r\n if (filteredData.length > 0 && filteredData[0].additional == 'Recontratable') {\r\n this.formWorkLeave.get('isRechargeable').setValue(true);\r\n this.isRecountable = true;\r\n this.formWorkLeave.get('dismissalObservations').setValidators(null);\r\n this.formWorkLeave.get('dismissalObservations').updateValueAndValidity();\r\n }\r\n if (filteredData.length > 0 && filteredData[0].additional == 'No Recontratable') {\r\n this.formWorkLeave.get('isRechargeable').setValue(false);\r\n this.formWorkLeave.get('dismissalObservations').setValue(undefined);\r\n this.isRecountable = false;\r\n this.formWorkLeave.get('dismissalObservations').setValidators([Validators.required]);\r\n this.formWorkLeave.get('dismissalObservations').updateValueAndValidity();\r\n }\r\n if (filteredData.length > 0 && filteredData[0].additional == 'Es Recontratable?') {\r\n this.formWorkLeave.get('isRechargeable').setValue(undefined);\r\n this.formWorkLeave.get('dismissalObservations').setValue(undefined);\r\n this.isRecountable = undefined;\r\n this.formWorkLeave.get('isRechargeable').setValidators([Validators.required]);\r\n this.formWorkLeave.get('isRechargeable').updateValueAndValidity();\r\n }\r\n });\r\n\r\n if (text === 'Otra - No Recontratable') {\r\n this.isOther = true;\r\n this.formWorkLeave.get('otherObservations').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.isOther = false;\r\n this.formWorkLeave.get('otherObservations').setValidators(null);\r\n }\r\n this.formWorkLeave.get('otherObservations').updateValueAndValidity();\r\n }\r\n private isPreventive($event: MatRadioChange): void {\r\n if ($event.value) {\r\n this.formWorkLeave.get('isRelocation').setValue(false);\r\n this.formWorkLeave.get('canGenerateVacancy').setValue(false);\r\n } else {\r\n this.formWorkLeave.get('isRelocation').setValue(null);\r\n this.formWorkLeave.get('canGenerateVacancy').setValue(null);\r\n }\r\n }\r\n private getDate(event: IMyDateModel) {\r\n return event.singleDate.jsDate;\r\n }\r\n private save(): void {\r\n this.spinner.show();\r\n let data = Object.assign({}, this.formWorkLeave.value as IDtoWorkLeave);\r\n\r\n data.employeeId = this.employee.id;\r\n data.dismissalDate = this.configGeneral.getLocalISOTime(this.getDate(this.formWorkLeave.value.dismissalDate));\r\n data.codeNomPayroll = this.employee.employeeTypePayrollId;\r\n data.companyPay = this.employee.employeeCompanyId;\r\n data.employeeDate = this.employee.hiringDate;\r\n\r\n this.workLeaveService.addWorkLeave(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let d = x.data as IDtoWorkLeave;\r\n this.addModuleLog(d.id);\r\n this.formWorkLeave.reset();\r\n this.hasEmployee = false;\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private enableBondComments($event: MatRadioChange) {\r\n if ($event.value) {\r\n this.formWorkLeave.get('bondComments').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.formWorkLeave.get('bondComments').setValidators(null);\r\n }\r\n this.formWorkLeave.get('bondComments').updateValueAndValidity();\r\n }\r\n private enablesettlementComments($event: MatRadioChange) {\r\n if ($event.value) {\r\n this.formWorkLeave.get('settlementComments').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.formWorkLeave.get('settlementComments').setValidators(null);\r\n }\r\n this.formWorkLeave.get('settlementComments').updateValueAndValidity();\r\n }\r\n private enableCommissionComments($event: MatRadioChange) {\r\n if ($event.value) {\r\n this.formWorkLeave.get('commissionComments').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.formWorkLeave.get('commissionComments').setValidators(null);\r\n }\r\n this.formWorkLeave.get('commissionComments').updateValueAndValidity();\r\n }\r\n private enableChangePay($event: MatRadioChange) {\r\n if ($event.value) {\r\n this.formWorkLeave.get('paymentTypeId').setValidators([Validators.required]);\r\n } else {\r\n this.formWorkLeave.get('paymentTypeId').setValidators(null);\r\n }\r\n this.formWorkLeave.get('paymentTypeId').updateValueAndValidity();\r\n }\r\n private enableIsRechargeable($event: MatRadioChange) {\r\n if (!$event.value) {\r\n this.formWorkLeave.get('dismissalObservations').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.formWorkLeave.get('dismissalObservations').setValidators(null);\r\n }\r\n this.formWorkLeave.get('dismissalObservations').updateValueAndValidity();\r\n }\r\n private enableCellPhoneObservations($event: MatRadioChange) {\r\n if ($event.value) {\r\n this.formWorkLeave.get('cellPhoneObservations').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.formWorkLeave.get('cellPhoneObservations').setValidators(null);\r\n }\r\n this.formWorkLeave.get('cellPhoneObservations').updateValueAndValidity();\r\n }\r\n private enableCheckComments($event: MatRadioChange) {\r\n if ($event.value) {\r\n this.formWorkLeave.get('checkComments').setValidators([Validators.required, Validators.maxLength(500)]);\r\n } else {\r\n this.formWorkLeave.get('checkComments').setValidators(null);\r\n }\r\n this.formWorkLeave.get('checkComments').updateValueAndValidity();\r\n }\r\n private restrictDatePayroll(year: number, month: number, day: number) {\r\n this.pickerOptionsPayroll = {\r\n dateFormat: 'dd.mm.yyyy',\r\n dateRange: false,\r\n disableDateRanges: [{\r\n begin: { year: 1000, month: 1, day: 1 },\r\n end: { year: year, month: month, day: day }\r\n }]\r\n }\r\n }\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Dismissals';\r\n dto.module = 'workLeave';\r\n dto.action = 'new';\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n private getStartDatePeriod(): void {\r\n this.payrollService.getStartDatePeriod(this.employee.employeeCompanyId, this.employee.employeeTypePayrollId, this.configGeneral.dateFormat(this.currentDate, 'yyyy-mm-dd')).subscribe(x => {\r\n if (x.data != null) {\r\n let init = new Date(x.data as Date);\r\n let current = new Date(this.configGeneral.dateFormat(this.currentDate, 'mm/dd/yyyy'));\r\n let minDate = new Date(this.configGeneral.dateFormat(this.currentDate, 'mm/dd/yyyy'));\r\n minDate.setDate(minDate.getDate() - 5);\r\n let count = this.countWeekends(new Date(minDate.valueOf()), current);\r\n if (count > 0) {\r\n minDate.setDate(minDate.getDate() - count);\r\n }\r\n if (minDate.getTime() < init.getTime()) {\r\n let dif = init.getTime() - minDate.getTime();\r\n let daysMin = Math.round(dif / (1000 * 60 * 60 * 24))\r\n minDate.setDate(minDate.getDate() + daysMin);\r\n let day = minDate.getUTCDate();\r\n let month = minDate.getUTCMonth() + 1;\r\n let year = minDate.getUTCFullYear();\r\n if (day == 1 && month == 1) {\r\n this.restrictDatePayroll(year - 1, 12, 31);\r\n }\r\n if (day == 1) {\r\n day = new Date(year, month - 1, 0).getDate();\r\n month = month - 1;\r\n } else {\r\n day = day - 1;\r\n }\r\n this.restrictDatePayroll(year, month, day);\r\n } else {\r\n let day = minDate.getUTCDate() - 1;\r\n let month = minDate.getUTCMonth() + 1;\r\n let year = minDate.getUTCFullYear();\r\n this.restrictDatePayroll(year, month, day);\r\n }\r\n } else {\r\n let minDate = new Date(this.configGeneral.dateFormat(this.currentDate, 'mm/dd/yyyy'));\r\n let day = minDate.getUTCDate() - 1;\r\n let month = minDate.getUTCMonth() + 1;\r\n let year = minDate.getUTCFullYear();\r\n this.restrictDatePayroll(year, month, day);\r\n }\r\n });\r\n this.spinner.hide();\r\n }\r\n // private prueba(): void {\r\n // let init = new Date(\"08/25/2021\");\r\n // if (init != null) {\r\n // let current = new Date(this.configGeneral.dateFormat(this.currentDate, 'mm/dd/yyyy'));\r\n // let minDate = new Date(this.configGeneral.dateFormat(this.currentDate, 'mm/dd/yyyy'));//new Date(this.currentDate.valueOf());\r\n // minDate.setDate(minDate.getDate() - 5);\r\n // let count = this.countWeekends(new Date(minDate.valueOf()), current);\r\n // if (count > 0) {\r\n // minDate.setDate(minDate.getDate() - count);\r\n // }\r\n // if (minDate.getTime() < init.getTime()) {\r\n // let dif = init.getTime() - minDate.getTime();\r\n // let daysMin = Math.round(dif / (1000 * 60 * 60 * 24))\r\n // minDate.setDate(minDate.getDate() + daysMin);\r\n // this.restrictDatePayroll(minDate);\r\n // } else {\r\n // minDate.setDate(minDate.getDate());\r\n // this.restrictDatePayroll(minDate);\r\n // }\r\n // }\r\n // }\r\n private countWeekends(init: Date, end: Date): number {\r\n var timeDiff = Math.abs(end.getTime() - init.getTime());\r\n var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); //Días entre las dos fechas\r\n var count = 0; //Número de Sábados y Domingos\r\n var array = new Array(diffDays);\r\n\r\n for (var i = 0; i < diffDays; i++) {\r\n //0 => Domingo - 6 => Sábado\r\n if (init.getDay() == 0 || init.getDay() == 6) {\r\n count++;\r\n }\r\n init.setDate(init.getDate() + 1);\r\n }\r\n\r\n return count;\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXBwdmlld3MvcmVxdWVzdC93b3JrLWxlYXZlL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxhcHB2aWV3c1xccmVxdWVzdFxcd29yay1sZWF2ZVxcd29yay1sZWF2ZS5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9hcHB2aWV3cy9yZXF1ZXN0L3dvcmstbGVhdmUvd29yay1sZWF2ZS5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3JlcXVlc3Qvd29yay1sZWF2ZS93b3JrLWxlYXZlLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoWorkLeave } from 'app/shared/models/request/work-leave/dto-work-leave.model';\r\nimport { IDtoWorkLeaveFilter } from 'app/shared/models/request/work-leave/dto-work-leave-filter.model';\r\nimport { IDtoWorkLeaveChangeStatus } from 'app/shared/models/request/work-leave/dto-work-leave-change-status.model';\r\n\r\n@Injectable()\r\nexport class WorkLeaveService {\r\n private requestUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x =>\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl);\r\n }\r\n }\r\n public getCatalogLineInsurances(): Observable {\r\n const url = `${this.requestUrl}api/Dismissals/getLineInsurance/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogPaymentTypes(): Observable {\r\n const url = `${this.requestUrl}api/Dismissals/getPaymentTypes/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogLingeringIssuesKeys(typeRiskId: string): Observable {\r\n const url = `${this.requestUrl}api/Inabilities/getLingeringIssuesKey?typeRiskId=${typeRiskId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogInabilityControlKey(lingeringIssuesKeyId: string): Observable {\r\n const url = `${this.requestUrl}api/Inabilities/getInabilityControlKey?lingeringIssuesKeyId=${lingeringIssuesKeyId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getListEmployeeActive(): Observable {\r\n const url = `${this.requestUrl}api/Employees/getListEmployeeActive`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addWorkLeave(workLeave: IDtoWorkLeave): Observable {\r\n const url =`${this.requestUrl}api/Dismissals/`;\r\n return this.service.post(url, workLeave).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getWorkLeavebyFilters(data: IDtoWorkLeaveFilter): Observable {\r\n const url =`${this.requestUrl}api/Dismissals/getDismissalsbyFilter/`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public changeWorkLeaveStatus(data: IDtoWorkLeaveChangeStatus): Observable {\r\n const url =`${this.requestUrl}api/Dismissals/changeDismissalsChange/`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public downloadTxt(data: any): Observable {\r\n const url =`${this.requestUrl}api/Dismissals/DownloadTXT/`;\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCurrentDate(): Observable {\r\n const url =`${this.requestUrl}api/Dismissals/getCurrentDate/`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public hasDismissalWaiting(employeeId: number): Observable {\r\n const url = `${this.requestUrl}api/Dismissals/hasDismissalWaiting?employeeId=${employeeId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getLastDismissalDate(employeeId: number): Observable {\r\n const url =`${this.requestUrl}api/Dismissals/getLastDismissalDate?employeeId=${employeeId}`;\r\n return this.service.get(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoRetroactive } from 'app/shared/models/retroactive/dto-retroactive.model';\r\n\r\n@Injectable()\r\nexport class RetroactiveService {\r\n private requestUrl = '';\r\n constructor(private service: DataService, private configurationService: ConfigurationService) {\r\n if (this.configurationService.isReady) {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.requestUrl = this.configurationService.serverSettings.requestUrl;\r\n });\r\n }\r\n }\r\n public addRetroactive(dto: IDtoRetroactive): Observable {\r\n const url = `${this.requestUrl}api/Retroactives/addRetroactive`;\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addRetroactives(list: IDtoRetroactive[]): Observable {\r\n const url = `${this.requestUrl}api/Retroactives/addRetroactives`;\r\n return this.service.post(url, list).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getCatalogRetroactiveReasonsByCustomerId(companyId: number): Observable {\r\n const url = `${this.requestUrl}api/RetroactiveReasons/getCatalogRetroactiveReasonsByCustomerId?customerId=${companyId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getRetroactivesByPoriodKeyNomAndEmployeeId(periodKeyNom: Date, employeeId: number): Observable {\r\n const url = `${this.requestUrl}api/Retroactives/getRetroactivesByPoriodKeyNomAndEmployeeId?periodKeyNom=${periodKeyNom}&employeeId=${employeeId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getRetroactivesByPayrollId(payrollId: number): Observable {\r\n const url = `${this.requestUrl}api/Retroactives/getRetroactivesByPayrollId?payrollId=${payrollId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public deleteRetroactive(id: number): Observable {\r\n const url = `${this.requestUrl}api/Retroactives/deleteRetroactive?id=${id}`;\r\n return this.service.delete(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getRetroactivesByPayrollIdAndBossId(payrollId: number, bossId: number): Observable {\r\n const url = `${this.requestUrl}api/Retroactives/getRetroactivesByPayrollIdAndBossId?payrollId=${payrollId}&bossId=${bossId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n}\r\n}\r\n","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IDtoRole } from 'app/shared/models/security/dto-role.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { IdentityService } from '../identity.service';\r\nimport { AppConfig } from 'app/app.config';\r\n\r\n@Component({\r\n selector: 'app-role',\r\n styleUrls: ['./role.style.scss'],\r\n templateUrl: 'role.template.html'\r\n})\r\nexport class RoleComponent implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formRole: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Variables */\r\n private now: number;\r\n private search: string;\r\n /**Listas */\r\n private roles = new Array() as IDtoRole[];\r\n private rolesTemp = new Array() as IDtoRole[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableRoles: DatatableComponent;\r\n public constructor(private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private identityService: IdentityService\r\n , private configGeneral: AppConfig) {\r\n this.configToast = this.configGeneral.getConfigToast();\r\n this.initializeFormRole();\r\n }\r\n ngOnInit(): void {\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getRoles();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getRoles();\r\n });\r\n }\r\n }\r\n private initializeFormRole() {\r\n this.formRole = this.formBuilder.group({\r\n name: [null, Validators.required]\r\n });\r\n }\r\n private getRoles(): void {\r\n this.identityService.getRoles()\r\n .subscribe(\r\n (x) => {\r\n this.roles = x.data as IDtoRole[];\r\n this.rolesTemp = this.roles;\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private save(): void {\r\n if (!this.formRole.valid) {\r\n this.snotifyService.error('Ingrese un nombre para el rol'\r\n , 'Error', this.configToast);\r\n return;\r\n }\r\n const data = this.formRole.value;\r\n this.identityService.addRole(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.formRole.reset();\r\n this.getRoles();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private delete(row: IDtoRole): void {\r\n this.identityService.deleteRole(row)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.getRoles()\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n\r\n const val = this.search.toLowerCase();\r\n const temp = this.rolesTemp.filter((x: any) => x.name.toLowerCase().startsWith(val));\r\n \r\n this.roles = temp;\r\n this.tableRoles.offset = 0;\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3NlY3VyaXR5L1JvbGUvcm9sZS5zdHlsZS5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IdentityService } from '../identity.service';\r\nimport { Router } from '@angular/router';\r\nimport { IDtoUser } from 'app/shared/models/security/dto-user.model';\r\n@Component({\r\n selector: 'app-account-activation',\r\n templateUrl: 'account-activation.template.html'\r\n})\r\nexport class AccountActivationComponent implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formulario */\r\n private frmActivation: FormGroup;\r\n constructor(private formBuilder: FormBuilder\r\n , private serviceSecurity: SecurityService\r\n , private identityService: IdentityService\r\n , private configGeneral: AppConfig\r\n , public snotifyService: SnotifyService\r\n , private router: Router\r\n , private spinner: NgxSpinnerService) {\r\n this.frmActivation = formBuilder.group({\r\n email: [null, [Validators.required, Validators.email]],\r\n code: [null, [Validators.required, Validators.maxLength(8), Validators.minLength(8)]],\r\n password: [null, [Validators.required, ValidatorService.formatPasswordValidator]],\r\n passwordConfirm: [null, Validators.required]\r\n },\r\n {\r\n validator: [ValidatorService.matchPassword('password', 'passwordConfirm')]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n private onSubmit() {\r\n if (this.frmActivation.valid) {\r\n this.activateAccount();\r\n } else {\r\n // validate all form fields\r\n }\r\n }\r\n\r\n private activateAccount(): void {\r\n this.spinner.show();\r\n let user = {} as IDtoUser;\r\n user.email = this.frmActivation.value.email;\r\n user.username = this.frmActivation.value.email;\r\n user.password = this.frmActivation.value.password;\r\n user.code = this.frmActivation.value.code;\r\n this.identityService.accountActivation(user)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.router.navigate(['login']);\r\n }\r\n this.spinner.hide()\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { IUser } from 'app/shared/models/user.model';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IdentityService } from '../identity.service';\r\nimport { Router } from '@angular/router';\r\nimport { IDtoUser } from 'app/shared/models/security/dto-user.model';\r\n@Component({\r\n selector: 'app-change-password',\r\n templateUrl: 'change-password.template.html'\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formulario */\r\n private frmChangePassword: FormGroup;\r\n constructor(private formBuilder: FormBuilder\r\n , private serviceSecurity: SecurityService\r\n , private identityService: IdentityService\r\n , private configGeneral: AppConfig\r\n , public snotifyService: SnotifyService\r\n , private router: Router\r\n , private spinner: NgxSpinnerService) {\r\n this.frmChangePassword = formBuilder.group({\r\n password: [null, [Validators.required, ValidatorService.formatPasswordValidator]],\r\n passwordConfirm: [null, Validators.required]\r\n },\r\n {\r\n validator: [ValidatorService.matchPassword('password', 'passwordConfirm')]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n private onSubmit() {\r\n\r\n if (this.frmChangePassword.valid) {\r\n this.changePassword();\r\n } else {\r\n // validate all form fields\r\n }\r\n }\r\n\r\n private changePassword(): void {\r\n let user = {} as IDtoUser;\r\n const userData = this.serviceSecurity.getUserDataStorage();\r\n user.email = userData.username;\r\n user.username = userData.username;\r\n user.password = this.frmChangePassword.value.password;\r\n this.identityService.changePassword(user)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.router.navigate(['login']);\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataService } from 'app/shared/services/data.service';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { Observable } from 'rxjs';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { IDtoSystem } from 'app/shared/models/security/dto-system.model';\r\nimport { IDtoRole } from 'app/shared/models/security/dto-role.model';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IDtoModule } from 'app/shared/models/security/dto-module.model';\r\nimport { IDtoUserRole } from 'app/shared/models/security/dto-user-role.model';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoUser } from 'app/shared/models/security/dto-user.model';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IdentityService {\r\n private roles: any;\r\n public userData: any;\r\n private identityUrl = '';\r\n constructor(private service: DataService\r\n , private configurationService: ConfigurationService\r\n , private securityService: SecurityService\r\n , private configGeneral: AppConfig) {\r\n if (this.configurationService.isReady) {\r\n this.identityUrl = this.configurationService.serverSettings.identityUrl;\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x =>\r\n this.identityUrl = this.configurationService.serverSettings.identityUrl);\r\n }\r\n }\r\n\r\n loadUserData(): Promise {\r\n return new Promise((resolve, reject) => {\r\n const showRoles = this.securityService.getUserRolesStorage();\r\n if (showRoles) {\r\n this.roles = showRoles.listRoles;\r\n }\r\n this.userData = this.securityService.getUserDataStorage();\r\n resolve();\r\n });\r\n }\r\n\r\n public getUsers(): Observable {\r\n const url = `${this.identityUrl}api/users/getUsers/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addUser(data: any): Observable {\r\n const url = `${this.identityUrl}api/users/addUser/`;\r\n\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateUser(data: any): Observable {\r\n const url = `${this.identityUrl}api/users/putUser/`;\r\n\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public changePassword(data: any): Observable {\r\n const url = `${this.identityUrl}api/users/changePassword/`;\r\n\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public restorePassword(data: IDtoUser): Observable {\r\n const url = `${this.identityUrl}api/users/restorePassword/`;\r\n\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public accountActivation(data: IDtoUser): Observable {\r\n const url = `${this.identityUrl}api/users/accountActivation/`;\r\n\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public deleteUser(id: string): Observable {\r\n const url = `${this.identityUrl}api/users/deleteUser?id=${id}`;\r\n\r\n return this.service.delete(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addSystem(data: IDtoSystem): Observable {\r\n const url = `${this.identityUrl}api/systems/addSystem/`;\r\n\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getSystems(): Observable {\r\n const url = `${this.identityUrl}api/systems/getSystems/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addRole(data: IDtoRole): Observable {\r\n const url = `${this.identityUrl}api/roles/addRole/`;\r\n\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getRoles(): Observable {\r\n const url = `${this.identityUrl}api/roles/getRoles/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogRoles(): Observable {\r\n const url = `${this.identityUrl}api/roles/getCatalogRoles/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public deleteRole(data: IDtoRole): Observable {\r\n const url = `${this.identityUrl}api/roles/deleteRole?name=${data.name}`;\r\n\r\n return this.service.delete(url).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addModule(data: IDtoModule): Observable {\r\n const url = `${this.identityUrl}api/modules/addModule/`;\r\n\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public updateModule(data: IDtoModule): Observable {\r\n const url = `${this.identityUrl}api/modules/putModule/`;\r\n\r\n return this.service.putWithId(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getModulesBySystem(systemId: number): Observable {\r\n const url = `${this.identityUrl}api/modules/getModulebySystemId?systemId=${systemId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogSystems(): Observable {\r\n const url = `${this.identityUrl}api/systems/getCatalogSystems/`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogModulesBySystem(systemId: number): Observable {\r\n const url = `${this.identityUrl}api/modules/getCatalogModules?systemId=${systemId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getCatalogRoleByModule(moduleId: string): Observable {\r\n const url = `${this.identityUrl}api/roles/getCatalogRolebyModule?moduleId=${moduleId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getRolesByUser(userId: string): Observable {\r\n const url = `${this.identityUrl}api/UsersRoles/getUserRolebyUserId?userId=${userId}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addUserRole(data: IDtoUserRole): Observable {\r\n const url = `${this.identityUrl}api/usersRoles/addUserRol/`;\r\n\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public deleteUserRole(data: IDtoUserRole): Observable {\r\n const url = `${this.identityUrl}api/usersRoles/deleteUserRol/`;\r\n\r\n return this.service.post(url, data).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n /**Accesos */\r\n public RolesAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Roles')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public RequestAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Request')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public RequestReviewsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'RequestReviews')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public UsersAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Users')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public RequisitionReviewsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'RequisitionReviews')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public SystemsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Systems')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public RequisitionDetailAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'RequisitionDetail')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public HolidayRequestAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'HolidayRequest')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public HolidayApprovalAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'HolidayApproval')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public InabilityAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Inability')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public InabilityRecordsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'InabilityRecords')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public WorkLeaveAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'WorkLeave')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public WorkLeaveRecordsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'WorkLeaveRecords')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public CompaniesAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Companies')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public CustomersAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Customers')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public ProjectsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Projects')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public ProductsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Products')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public WorkingDaysAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'WorkingDays')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public JobRecordsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Jobs')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public JobAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'JobCreation')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public BudgetRecordsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Budgets')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public BudgetAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'BudgetCreation')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public NotesAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Notes')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public CustomerCommissionsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'CustomerCommissions')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public RelocationAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Relocation')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public RelocationRecordsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'RelocationRecords')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public RetroactiveAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Retroactives')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public PayrollAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.securityService.getUserRolesStorage().listRoles.filter((item) => item.nameModule === 'Payroll')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public PayrollRecordsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'PayrollRecords')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public CommissionRecordsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'CommissionRecords')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public CommissionAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Commission')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public EmployeesAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Employees')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public LiquidationAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'Liquidation')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n public LiquidationRecordsAccess(): boolean {\r\n if (this.roles !== undefined) {\r\n const acceso = this.roles.filter((item) => item.nameModule === 'LiquidationRecords')[0];\r\n return acceso === undefined ? false : true;\r\n }\r\n }\r\n /** */\r\n public getRouteByUrl(base: string): Observable {\r\n const url = `${this.identityUrl}api/Routes/getRouteByUrl?url=${base}`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public getUserRequestCapture(): Observable {\r\n const url = `${this.identityUrl}api/Tokens/getUserRequestCapture`;\r\n return this.service.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n return res;\r\n })\r\n );\r\n }\r\n public addModuleLog(dto: IDtoModuleLog): Observable {\r\n const url = `${this.identityUrl}api/ModuleLogs/addModuleLog/`;\r\n dto.userId = this.roles[0].userId;\r\n dto.employeeId = this.roles[0].employeeId;\r\n dto.role = this.securityService.getProfileStorage(dto.module);\r\n dto.creationDate = this.configGeneral.getLocalISOTime(new Date());\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public addModuleLogComplete(dto: IDtoModuleLog): Observable {\r\n const url = `${this.identityUrl}api/ModuleLogs/addModuleLog/`;\r\n dto.creationDate = this.configGeneral.getLocalISOTime(new Date());\r\n return this.service.post(url, dto).pipe(map((response: any) => {\r\n return response;\r\n }));\r\n }\r\n private employeeModuleProfiles: IDtoEmployeeModuleProfile[] = [\r\n {\r\n profile: 'Administrador', activateSaveFormGeneralData: true, activateSaveFormPersonalData: true, activateSaveFormPaymentData: true, activateSaveFormBasicData: true, activateSaveFormStudy: true, activateSaveFormDocument: true, actions: [\r\n { control: 'firstName', read: true, write: true }\r\n , { control: 'lastName', read: true, write: true }\r\n , { control: 'secondLastName', read: true, write: true }\r\n , { control: 'birthDate', read: true, write: true }\r\n , { control: 'stateBirthId', read: true, write: true }\r\n , { control: 'gender', read: true, write: true }\r\n , { control: 'curp', read: true, write: true }\r\n , { control: 'rfc', read: true, write: true }\r\n , { control: 'imss', read: true, write: true }\r\n , { control: 'email', read: true, write: true }\r\n , { control: 'bossId', read: true, write: true }\r\n , { control: 'supervisorId', read: true, write: true }\r\n , { control: 'payrollOfficerId', read: true, write: true }\r\n , { control: 'workingDayId', read: true, write: true }\r\n , { control: 'maritalStatusId', read: true, write: true }\r\n , { control: 'personalNumber', read: true, write: true }\r\n , { control: 'street', read: true, write: true }\r\n , { control: 'interiorNumber', read: true, write: true }\r\n , { control: 'externalNumber', read: true, write: true }\r\n , { control: 'postalCode', read: true, write: true }\r\n , { control: 'suburb', read: true, write: true }\r\n , { control: 'stateId', read: true, write: true }\r\n , { control: 'townId', read: true, write: true }\r\n , { control: 'patrimonialRegimeId', read: true, write: true }\r\n , { control: 'dailySalary', read: true, write: false }\r\n , { control: 'integratedDailySalary', read: true, write: false }\r\n , { control: 'bankId', read: true, write: true }\r\n , { control: 'bankAccount', read: true, write: true }\r\n , { control: 'methodPaymentId', read: true, write: true }\r\n , { control: 'classification', read: true, write: true }\r\n , { control: 'typeSalaryId', read: true, write: true }\r\n , { control: 'pantryAccount', read: true, write: true }\r\n , { control: 'pantryCard', read: true, write: true }\r\n , { control: 'gasolineCard', read: true, write: true }\r\n , { control: 'gasolineIdentifier', read: true, write: true }\r\n , { control: 'interbankClabe', read: true, write: true }\r\n , { control: 'subsidy', read: true, write: true }\r\n , { control: 'requisitionContractTypeId', read: true, write: true }\r\n , { control: 'laborSeniorityDate', read: true, write: false }\r\n , { control: 'employerRegisterId', read: true, write: true }\r\n , { control: 'salaryZoneId', read: true, write: true }\r\n , { control: 'familyMedicalUnitId', read: true, write: true }\r\n , { control: 'unionized', read: true, write: true }\r\n , { control: 'accountingSegmentId', read: true, write: true }\r\n , { control: 'individualAccount', read: true, write: true }\r\n , { control: 'pieceWorker', read: true, write: true }\r\n , { control: 'benefitCategoryId', read: true, write: true }\r\n , { control: 'alimony', read: true, write: true }\r\n , { control: 'hasInfonavit', read: true, write: true }\r\n , { control: 'schoolLevelId', read: true, write: true }\r\n , { control: 'educationLevelId', read: true, write: true }\r\n , { control: 'institute', read: true, write: true }\r\n , { control: 'documentReceivedId', read: true, write: true }\r\n , { control: 'studyPeriod', read: true, write: true }\r\n , { control: 'document', read: true, write: true }]\r\n },\r\n {\r\n profile: 'Nomina', activateSaveFormGeneralData: false, activateSaveFormPersonalData: false, activateSaveFormPaymentData: true, activateSaveFormBasicData: true, activateSaveFormStudy: false, activateSaveFormDocument: true, actions: [\r\n { control: 'firstName', read: true, write: false }\r\n , { control: 'lastName', read: true, write: false }\r\n , { control: 'secondLastName', read: true, write: false }\r\n , { control: 'birthDate', read: true, write: false }\r\n , { control: 'stateBirthId', read: true, write: false }\r\n , { control: 'gender', read: true, write: false }\r\n , { control: 'curp', read: true, write: false }\r\n , { control: 'rfc', read: true, write: false }\r\n , { control: 'imss', read: true, write: false }\r\n , { control: 'email', read: true, write: false }\r\n , { control: 'bossId', read: true, write: false }\r\n , { control: 'supervisorId', read: true, write: false }\r\n , { control: 'payrollOfficerId', read: true, write: false }\r\n , { control: 'workingDayId', read: true, write: false }\r\n , { control: 'maritalStatusId', read: true, write: false }\r\n , { control: 'personalNumber', read: true, write: false }\r\n , { control: 'street', read: true, write: false }\r\n , { control: 'interiorNumber', read: true, write: false }\r\n , { control: 'externalNumber', read: true, write: false }\r\n , { control: 'postalCode', read: true, write: false }\r\n , { control: 'suburb', read: true, write: false }\r\n , { control: 'stateId', read: true, write: false }\r\n , { control: 'townId', read: true, write: false }\r\n , { control: 'patrimonialRegimeId', read: true, write: false }\r\n , { control: 'dailySalary', read: true, write: false }\r\n , { control: 'integratedDailySalary', read: true, write: false }\r\n , { control: 'bankId', read: true, write: true }\r\n , { control: 'bankAccount', read: true, write: true }\r\n , { control: 'methodPaymentId', read: true, write: true }\r\n , { control: 'classification', read: true, write: false }\r\n , { control: 'typeSalaryId', read: true, write: false }\r\n , { control: 'pantryAccount', read: true, write: true }\r\n , { control: 'pantryCard', read: true, write: true }\r\n , { control: 'gasolineCard', read: true, write: true }\r\n , { control: 'gasolineIdentifier', read: true, write: true }\r\n , { control: 'interbankClabe', read: true, write: true }\r\n , { control: 'subsidy', read: true, write: true }\r\n , { control: 'requisitionContractTypeId', read: true, write: false }\r\n , { control: 'laborSeniorityDate', read: true, write: false }\r\n , { control: 'employerRegisterId', read: true, write: false }\r\n , { control: 'salaryZoneId', read: true, write: true }\r\n , { control: 'familyMedicalUnitId', read: true, write: true }\r\n , { control: 'unionized', read: true, write: true }\r\n , { control: 'accountingSegmentId', read: true, write: true }\r\n , { control: 'individualAccount', read: true, write: true }\r\n , { control: 'pieceWorker', read: true, write: true }\r\n , { control: 'benefitCategoryId', read: true, write: true }\r\n , { control: 'alimony', read: true, write: false }\r\n , { control: 'hasInfonavit', read: true, write: false }\r\n , { control: 'schoolLevelId', read: true, write: false }\r\n , { control: 'educationLevelId', read: true, write: false }\r\n , { control: 'institute', read: true, write: false }\r\n , { control: 'documentReceivedId', read: true, write: false }\r\n , { control: 'studyPeriod', read: true, write: false }\r\n , { control: 'document', read: true, write: true }]\r\n },\r\n {\r\n profile: 'Coordinador', activateSaveFormGeneralData: true, activateSaveFormPersonalData: true, activateSaveFormPaymentData: false, activateSaveFormBasicData: true, activateSaveFormStudy: true, activateSaveFormDocument: true, actions: [\r\n { control: 'firstName', read: true, write: false }\r\n , { control: 'lastName', read: true, write: false }\r\n , { control: 'secondLastName', read: true, write: false }\r\n , { control: 'birthDate', read: true, write: false }\r\n , { control: 'stateBirthId', read: true, write: false }\r\n , { control: 'gender', read: true, write: false }\r\n , { control: 'curp', read: true, write: false }\r\n , { control: 'rfc', read: true, write: false }\r\n , { control: 'imss', read: true, write: false }\r\n , { control: 'email', read: true, write: true }\r\n , { control: 'bossId', read: true, write: true }\r\n , { control: 'supervisorId', read: true, write: true }\r\n , { control: 'payrollOfficerId', read: true, write: true }\r\n , { control: 'workingDayId', read: true, write: true }\r\n , { control: 'maritalStatusId', read: true, write: true }\r\n , { control: 'personalNumber', read: true, write: true }\r\n , { control: 'street', read: true, write: true }\r\n , { control: 'interiorNumber', read: true, write: true }\r\n , { control: 'externalNumber', read: true, write: true }\r\n , { control: 'postalCode', read: true, write: true }\r\n , { control: 'suburb', read: true, write: true }\r\n , { control: 'stateId', read: true, write: true }\r\n , { control: 'townId', read: true, write: true }\r\n , { control: 'patrimonialRegimeId', read: true, write: true }\r\n , { control: 'dailySalary', read: true, write: false }\r\n , { control: 'integratedDailySalary', read: true, write: false }\r\n , { control: 'bankId', read: true, write: false }\r\n , { control: 'bankAccount', read: true, write: false }\r\n , { control: 'methodPaymentId', read: true, write: false }\r\n , { control: 'classification', read: true, write: false }\r\n , { control: 'typeSalaryId', read: true, write: false }\r\n , { control: 'pantryAccount', read: true, write: false }\r\n , { control: 'pantryCard', read: true, write: false }\r\n , { control: 'gasolineCard', read: true, write: false }\r\n , { control: 'gasolineIdentifier', read: true, write: false }\r\n , { control: 'interbankClabe', read: true, write: false }\r\n , { control: 'subsidy', read: true, write: false }\r\n , { control: 'requisitionContractTypeId', read: true, write: true }\r\n , { control: 'laborSeniorityDate', read: true, write: false }\r\n , { control: 'employerRegisterId', read: true, write: false }\r\n , { control: 'salaryZoneId', read: true, write: false }\r\n , { control: 'familyMedicalUnitId', read: true, write: false }\r\n , { control: 'unionized', read: true, write: false }\r\n , { control: 'accountingSegmentId', read: true, write: false }\r\n , { control: 'individualAccount', read: true, write: false }\r\n , { control: 'pieceWorker', read: true, write: false }\r\n , { control: 'benefitCategoryId', read: true, write: false }\r\n , { control: 'alimony', read: true, write: false }\r\n , { control: 'hasInfonavit', read: true, write: false }\r\n , { control: 'schoolLevelId', read: true, write: true }\r\n , { control: 'educationLevelId', read: true, write: true }\r\n , { control: 'institute', read: true, write: true }\r\n , { control: 'documentReceivedId', read: true, write: true }\r\n , { control: 'studyPeriod', read: true, write: true }\r\n , { control: 'document', read: true, write: true }]\r\n },\r\n {\r\n profile: 'Ejecutivo', activateSaveFormGeneralData: true, activateSaveFormPersonalData: true, activateSaveFormPaymentData: false, activateSaveFormBasicData: true, activateSaveFormStudy: true, activateSaveFormDocument: true, actions: [\r\n { control: 'firstName', read: true, write: false }\r\n , { control: 'lastName', read: true, write: false }\r\n , { control: 'secondLastName', read: true, write: false }\r\n , { control: 'birthDate', read: true, write: false }\r\n , { control: 'stateBirthId', read: true, write: false }\r\n , { control: 'gender', read: true, write: false }\r\n , { control: 'curp', read: true, write: false }\r\n , { control: 'rfc', read: true, write: false }\r\n , { control: 'imss', read: true, write: false }\r\n , { control: 'email', read: true, write: true }\r\n , { control: 'bossId', read: true, write: true }\r\n , { control: 'supervisorId', read: true, write: true }\r\n , { control: 'payrollOfficerId', read: true, write: true }\r\n , { control: 'workingDayId', read: true, write: true }\r\n , { control: 'maritalStatusId', read: true, write: true }\r\n , { control: 'personalNumber', read: true, write: true }\r\n , { control: 'street', read: true, write: true }\r\n , { control: 'interiorNumber', read: true, write: true }\r\n , { control: 'externalNumber', read: true, write: true }\r\n , { control: 'postalCode', read: true, write: true }\r\n , { control: 'suburb', read: true, write: true }\r\n , { control: 'stateId', read: true, write: true }\r\n , { control: 'townId', read: true, write: true }\r\n , { control: 'patrimonialRegimeId', read: true, write: true }\r\n , { control: 'dailySalary', read: true, write: false }\r\n , { control: 'integratedDailySalary', read: true, write: false }\r\n , { control: 'bankId', read: true, write: false }\r\n , { control: 'bankAccount', read: true, write: false }\r\n , { control: 'methodPaymentId', read: true, write: false }\r\n , { control: 'classification', read: true, write: false }\r\n , { control: 'typeSalaryId', read: true, write: false }\r\n , { control: 'pantryAccount', read: true, write: false }\r\n , { control: 'pantryCard', read: true, write: false }\r\n , { control: 'gasolineCard', read: true, write: false }\r\n , { control: 'gasolineIdentifier', read: true, write: false }\r\n , { control: 'interbankClabe', read: true, write: false }\r\n , { control: 'subsidy', read: true, write: false }\r\n , { control: 'requisitionContractTypeId', read: true, write: true }\r\n , { control: 'laborSeniorityDate', read: true, write: false }\r\n , { control: 'employerRegisterId', read: true, write: false }\r\n , { control: 'salaryZoneId', read: true, write: false }\r\n , { control: 'familyMedicalUnitId', read: true, write: false }\r\n , { control: 'unionized', read: true, write: false }\r\n , { control: 'accountingSegmentId', read: true, write: false }\r\n , { control: 'individualAccount', read: true, write: false }\r\n , { control: 'pieceWorker', read: true, write: false }\r\n , { control: 'benefitCategoryId', read: true, write: false }\r\n , { control: 'alimony', read: true, write: false }\r\n , { control: 'hasInfonavit', read: true, write: false }\r\n , { control: 'schoolLevelId', read: true, write: true }\r\n , { control: 'educationLevelId', read: true, write: true }\r\n , { control: 'institute', read: true, write: true }\r\n , { control: 'documentReceivedId', read: true, write: true }\r\n , { control: 'studyPeriod', read: true, write: true }\r\n , { control: 'document', read: true, write: true }]\r\n },\r\n {\r\n profile: 'Reclutamiento', activateSaveFormGeneralData: true, activateSaveFormPersonalData: true, activateSaveFormPaymentData: false, activateSaveFormBasicData: false, activateSaveFormStudy: true, activateSaveFormDocument: true, actions: [\r\n { control: 'firstName', read: true, write: true }\r\n , { control: 'lastName', read: true, write: true }\r\n , { control: 'secondLastName', read: true, write: true }\r\n , { control: 'birthDate', read: true, write: true }\r\n , { control: 'stateBirthId', read: true, write: true }\r\n , { control: 'gender', read: true, write: true }\r\n , { control: 'curp', read: true, write: true }\r\n , { control: 'rfc', read: true, write: true }\r\n , { control: 'imss', read: true, write: true }\r\n , { control: 'email', read: true, write: false }\r\n , { control: 'bossId', read: true, write: false }\r\n , { control: 'supervisorId', read: true, write: false }\r\n , { control: 'payrollOfficerId', read: true, write: false }\r\n , { control: 'workingDayId', read: true, write: false }\r\n , { control: 'maritalStatusId', read: true, write: true }\r\n , { control: 'personalNumber', read: true, write: true }\r\n , { control: 'street', read: true, write: true }\r\n , { control: 'interiorNumber', read: true, write: true }\r\n , { control: 'externalNumber', read: true, write: true }\r\n , { control: 'postalCode', read: true, write: true }\r\n , { control: 'suburb', read: true, write: true }\r\n , { control: 'stateId', read: true, write: true }\r\n , { control: 'townId', read: true, write: true }\r\n , { control: 'patrimonialRegimeId', read: true, write: true }\r\n , { control: 'dailySalary', read: false, write: false }\r\n , { control: 'integratedDailySalary', read: false, write: false }\r\n , { control: 'bankId', read: true, write: false }\r\n , { control: 'bankAccount', read: true, write: false }\r\n , { control: 'methodPaymentId', read: true, write: false }\r\n , { control: 'classification', read: false, write: false }\r\n , { control: 'typeSalaryId', read: false, write: false }\r\n , { control: 'pantryAccount', read: false, write: false }\r\n , { control: 'pantryCard', read: false, write: false }\r\n , { control: 'gasolineCard', read: false, write: false }\r\n , { control: 'gasolineIdentifier', read: false, write: false }\r\n , { control: 'interbankClabe', read: true, write: false }\r\n , { control: 'subsidy', read: false, write: false }\r\n , { control: 'requisitionContractTypeId', read: false, write: false }\r\n , { control: 'laborSeniorityDate', read: false, write: false }\r\n , { control: 'employerRegisterId', read: true, write: false }\r\n , { control: 'salaryZoneId', read: false, write: false }\r\n , { control: 'familyMedicalUnitId', read: false, write: false }\r\n , { control: 'unionized', read: false, write: false }\r\n , { control: 'accountingSegmentId', read: false, write: false }\r\n , { control: 'individualAccount', read: false, write: false }\r\n , { control: 'pieceWorker', read: false, write: false }\r\n , { control: 'benefitCategoryId', read: false, write: false }\r\n , { control: 'alimony', read: true, write: false }\r\n , { control: 'hasInfonavit', read: true, write: false }\r\n , { control: 'schoolLevelId', read: true, write: true }\r\n , { control: 'educationLevelId', read: true, write: true }\r\n , { control: 'institute', read: true, write: true }\r\n , { control: 'documentReceivedId', read: true, write: true }\r\n , { control: 'studyPeriod', read: true, write: true }\r\n , { control: 'document', read: true, write: true }]\r\n },\r\n {\r\n profile: 'IMSS', activateSaveFormGeneralData: false, activateSaveFormPersonalData: false, activateSaveFormPaymentData: true, activateSaveFormBasicData: true, activateSaveFormStudy: false, activateSaveFormDocument: true, actions: [\r\n { control: 'firstName', read: true, write: false }\r\n , { control: 'lastName', read: true, write: false }\r\n , { control: 'secondLastName', read: true, write: false }\r\n , { control: 'birthDate', read: true, write: false }\r\n , { control: 'stateBirthId', read: true, write: false }\r\n , { control: 'gender', read: true, write: false }\r\n , { control: 'curp', read: true, write: false }\r\n , { control: 'rfc', read: true, write: false }\r\n , { control: 'imss', read: true, write: false }\r\n , { control: 'email', read: true, write: false }\r\n , { control: 'bossId', read: true, write: false }\r\n , { control: 'supervisorId', read: true, write: false }\r\n , { control: 'payrollOfficerId', read: true, write: false }\r\n , { control: 'workingDayId', read: true, write: false }\r\n , { control: 'maritalStatusId', read: true, write: false }\r\n , { control: 'personalNumber', read: true, write: false }\r\n , { control: 'street', read: true, write: false }\r\n , { control: 'interiorNumber', read: true, write: false }\r\n , { control: 'externalNumber', read: true, write: false }\r\n , { control: 'postalCode', read: true, write: false }\r\n , { control: 'suburb', read: true, write: false }\r\n , { control: 'stateId', read: true, write: false }\r\n , { control: 'townId', read: true, write: false }\r\n , { control: 'patrimonialRegimeId', read: true, write: false }\r\n , { control: 'dailySalary', read: true, write: false }\r\n , { control: 'integratedDailySalary', read: true, write: false }\r\n , { control: 'bankId', read: false, write: false }\r\n , { control: 'bankAccount', read: false, write: false }\r\n , { control: 'methodPaymentId', read: false, write: false }\r\n , { control: 'classification', read: false, write: false }\r\n , { control: 'typeSalaryId', read: true, write: true }\r\n , { control: 'pantryAccount', read: false, write: false }\r\n , { control: 'pantryCard', read: false, write: false }\r\n , { control: 'gasolineCard', read: false, write: false }\r\n , { control: 'gasolineIdentifier', read: false, write: false }\r\n , { control: 'interbankClabe', read: false, write: false }\r\n , { control: 'subsidy', read: false, write: false }\r\n , { control: 'requisitionContractTypeId', read: true, write: false }\r\n , { control: 'laborSeniorityDate', read: false, write: false }\r\n , { control: 'employerRegisterId', read: true, write: true }\r\n , { control: 'salaryZoneId', read: false, write: false }\r\n , { control: 'familyMedicalUnitId', read: false, write: false }\r\n , { control: 'unionized', read: false, write: false }\r\n , { control: 'accountingSegmentId', read: false, write: false }\r\n , { control: 'individualAccount', read: false, write: false }\r\n , { control: 'pieceWorker', read: false, write: false }\r\n , { control: 'benefitCategoryId', read: false, write: false }\r\n , { control: 'alimony', read: false, write: false }\r\n , { control: 'hasInfonavit', read: true, write: true }\r\n , { control: 'schoolLevelId', read: false, write: false }\r\n , { control: 'educationLevelId', read: false, write: false }\r\n , { control: 'institute', read: false, write: false }\r\n , { control: 'documentReceivedId', read: false, write: false }\r\n , { control: 'studyPeriod', read: false, write: false }\r\n , { control: 'document', read: true, write: true }]\r\n },\r\n {\r\n profile: 'Juridico', activateSaveFormGeneralData: false, activateSaveFormPersonalData: false, activateSaveFormPaymentData: false, activateSaveFormBasicData: true, activateSaveFormStudy: false, activateSaveFormDocument: false, actions: [\r\n { control: 'firstName', read: true, write: false }\r\n , { control: 'lastName', read: true, write: false }\r\n , { control: 'secondLastName', read: true, write: false }\r\n , { control: 'birthDate', read: true, write: false }\r\n , { control: 'stateBirthId', read: true, write: false }\r\n , { control: 'gender', read: true, write: false }\r\n , { control: 'curp', read: true, write: false }\r\n , { control: 'rfc', read: true, write: false }\r\n , { control: 'imss', read: true, write: false }\r\n , { control: 'email', read: true, write: false }\r\n , { control: 'bossId', read: true, write: false }\r\n , { control: 'supervisorId', read: true, write: false }\r\n , { control: 'payrollOfficerId', read: true, write: false }\r\n , { control: 'workingDayId', read: true, write: false }\r\n , { control: 'maritalStatusId', read: true, write: false }\r\n , { control: 'personalNumber', read: true, write: false }\r\n , { control: 'street', read: true, write: false }\r\n , { control: 'interiorNumber', read: true, write: false }\r\n , { control: 'externalNumber', read: true, write: false }\r\n , { control: 'postalCode', read: true, write: false }\r\n , { control: 'suburb', read: true, write: false }\r\n , { control: 'stateId', read: true, write: false }\r\n , { control: 'townId', read: true, write: false }\r\n , { control: 'patrimonialRegimeId', read: true, write: false }\r\n , { control: 'dailySalary', read: true, write: false }\r\n , { control: 'integratedDailySalary', read: true, write: false }\r\n , { control: 'bankId', read: true, write: false }\r\n , { control: 'bankAccount', read: true, write: false }\r\n , { control: 'methodPaymentId', read: true, write: false }\r\n , { control: 'classification', read: false, write: false }\r\n , { control: 'typeSalaryId', read: false, write: false }\r\n , { control: 'pantryAccount', read: false, write: false }\r\n , { control: 'pantryCard', read: false, write: false }\r\n , { control: 'gasolineCard', read: false, write: false }\r\n , { control: 'gasolineIdentifier', read: false, write: false }\r\n , { control: 'interbankClabe', read: true, write: false }\r\n , { control: 'subsidy', read: false, write: false }\r\n , { control: 'requisitionContractTypeId', read: false, write: false }\r\n , { control: 'laborSeniorityDate', read: false, write: false }\r\n , { control: 'employerRegisterId', read: false, write: false }\r\n , { control: 'salaryZoneId', read: false, write: false }\r\n , { control: 'familyMedicalUnitId', read: false, write: false }\r\n , { control: 'unionized', read: false, write: false }\r\n , { control: 'accountingSegmentId', read: false, write: false }\r\n , { control: 'individualAccount', read: false, write: false }\r\n , { control: 'pieceWorker', read: false, write: false }\r\n , { control: 'benefitCategoryId', read: false, write: false }\r\n , { control: 'alimony', read: true, write: true }\r\n , { control: 'hasInfonavit', read: false, write: false }\r\n , { control: 'schoolLevelId', read: false, write: false }\r\n , { control: 'educationLevelId', read: false, write: false }\r\n , { control: 'institute', read: false, write: false }\r\n , { control: 'documentReceivedId', read: false, write: false }\r\n , { control: 'studyPeriod', read: false, write: false }\r\n , { control: 'document', read: false, write: false }]\r\n },\r\n {\r\n profile: 'DO', activateSaveFormGeneralData: false, activateSaveFormPersonalData: false, activateSaveFormPaymentData: false, activateSaveFormBasicData: false, activateSaveFormStudy: false, activateSaveFormDocument: false, actions: [\r\n { control: 'firstName', read: true, write: false }\r\n , { control: 'lastName', read: true, write: false }\r\n , { control: 'secondLastName', read: true, write: false }\r\n , { control: 'birthDate', read: true, write: false }\r\n , { control: 'stateBirthId', read: true, write: false }\r\n , { control: 'gender', read: true, write: false }\r\n , { control: 'curp', read: true, write: false }\r\n , { control: 'rfc', read: true, write: false }\r\n , { control: 'imss', read: true, write: false }\r\n , { control: 'email', read: true, write: false }\r\n , { control: 'bossId', read: true, write: false }\r\n , { control: 'supervisorId', read: true, write: false }\r\n , { control: 'payrollOfficerId', read: true, write: false }\r\n , { control: 'workingDayId', read: true, write: false }\r\n , { control: 'maritalStatusId', read: true, write: false }\r\n , { control: 'personalNumber', read: true, write: false }\r\n , { control: 'street', read: true, write: false }\r\n , { control: 'interiorNumber', read: true, write: false }\r\n , { control: 'externalNumber', read: true, write: false }\r\n , { control: 'postalCode', read: true, write: false }\r\n , { control: 'suburb', read: true, write: false }\r\n , { control: 'stateId', read: true, write: false }\r\n , { control: 'townId', read: true, write: false }\r\n , { control: 'patrimonialRegimeId', read: true, write: false }\r\n , { control: 'dailySalary', read: false, write: false }\r\n , { control: 'integratedDailySalary', read: false, write: false }\r\n , { control: 'bankId', read: true, write: false }\r\n , { control: 'bankAccount', read: true, write: false }\r\n , { control: 'methodPaymentId', read: true, write: false }\r\n , { control: 'classification', read: false, write: false }\r\n , { control: 'typeSalaryId', read: false, write: false }\r\n , { control: 'pantryAccount', read: false, write: false }\r\n , { control: 'pantryCard', read: false, write: false }\r\n , { control: 'gasolineCard', read: false, write: false }\r\n , { control: 'gasolineIdentifier', read: false, write: false }\r\n , { control: 'interbankClabe', read: true, write: false }\r\n , { control: 'subsidy', read: false, write: false }\r\n , { control: 'requisitionContractTypeId', read: false, write: false }\r\n , { control: 'laborSeniorityDate', read: false, write: false }\r\n , { control: 'employerRegisterId', read: false, write: false }\r\n , { control: 'salaryZoneId', read: false, write: false }\r\n , { control: 'familyMedicalUnitId', read: false, write: false }\r\n , { control: 'unionized', read: false, write: false }\r\n , { control: 'accountingSegmentId', read: false, write: false }\r\n , { control: 'individualAccount', read: false, write: false }\r\n , { control: 'pieceWorker', read: false, write: false }\r\n , { control: 'benefitCategoryId', read: false, write: false }\r\n , { control: 'alimony', read: false, write: false }\r\n , { control: 'hasInfonavit', read: false, write: false }\r\n , { control: 'schoolLevelId', read: true, write: false }\r\n , { control: 'educationLevelId', read: true, write: false }\r\n , { control: 'institute', read: true, write: false }\r\n , { control: 'documentReceivedId', read: true, write: false }\r\n , { control: 'studyPeriod', read: true, write: false }\r\n , { control: 'document', read: false, write: false }]\r\n },\r\n {\r\n profile: 'Datagos', activateSaveFormGeneralData: false, activateSaveFormPersonalData: false, activateSaveFormPaymentData: false, activateSaveFormBasicData: false, activateSaveFormStudy: false, activateSaveFormDocument: true, actions: [\r\n { control: 'firstName', read: true, write: false }\r\n , { control: 'lastName', read: true, write: false }\r\n , { control: 'secondLastName', read: true, write: false }\r\n , { control: 'birthDate', read: true, write: false }\r\n , { control: 'stateBirthId', read: true, write: false }\r\n , { control: 'gender', read: true, write: false }\r\n , { control: 'curp', read: true, write: false }\r\n , { control: 'rfc', read: true, write: false }\r\n , { control: 'imss', read: true, write: false }\r\n , { control: 'email', read: true, write: false }\r\n , { control: 'bossId', read: true, write: false }\r\n , { control: 'supervisorId', read: true, write: false }\r\n , { control: 'payrollOfficerId', read: true, write: false }\r\n , { control: 'workingDayId', read: true, write: false }\r\n , { control: 'maritalStatusId', read: false, write: false }\r\n , { control: 'personalNumber', read: true, write: false }\r\n , { control: 'street', read: true, write: false }\r\n , { control: 'interiorNumber', read: true, write: false }\r\n , { control: 'externalNumber', read: true, write: false }\r\n , { control: 'postalCode', read: true, write: false }\r\n , { control: 'suburb', read: true, write: false }\r\n , { control: 'stateId', read: true, write: false }\r\n , { control: 'townId', read: true, write: false }\r\n , { control: 'patrimonialRegimeId', read: false, write: false }\r\n , { control: 'dailySalary', read: false, write: false }\r\n , { control: 'integratedDailySalary', read: false, write: false }\r\n , { control: 'bankId', read: false, write: false }\r\n , { control: 'bankAccount', read: false, write: false }\r\n , { control: 'methodPaymentId', read: false, write: false }\r\n , { control: 'classification', read: false, write: false }\r\n , { control: 'typeSalaryId', read: false, write: false }\r\n , { control: 'pantryAccount', read: false, write: false }\r\n , { control: 'pantryCard', read: false, write: false }\r\n , { control: 'gasolineCard', read: false, write: false }\r\n , { control: 'gasolineIdentifier', read: false, write: false }\r\n , { control: 'interbankClabe', read: false, write: false }\r\n , { control: 'subsidy', read: false, write: false }\r\n , { control: 'requisitionContractTypeId', read: false, write: false }\r\n , { control: 'laborSeniorityDate', read: false, write: false }\r\n , { control: 'employerRegisterId', read: false, write: false }\r\n , { control: 'salaryZoneId', read: false, write: false }\r\n , { control: 'familyMedicalUnitId', read: false, write: false }\r\n , { control: 'unionized', read: false, write: false }\r\n , { control: 'accountingSegmentId', read: false, write: false }\r\n , { control: 'individualAccount', read: false, write: false }\r\n , { control: 'pieceWorker', read: false, write: false }\r\n , { control: 'benefitCategoryId', read: false, write: false }\r\n , { control: 'alimony', read: false, write: false }\r\n , { control: 'hasInfonavit', read: false, write: false }\r\n , { control: 'schoolLevelId', read: false, write: false }\r\n , { control: 'educationLevelId', read: false, write: false }\r\n , { control: 'institute', read: false, write: false }\r\n , { control: 'documentReceivedId', read: false, write: false }\r\n , { control: 'studyPeriod', read: false, write: false }\r\n , { control: 'document', read: true, write: true }]\r\n },\r\n {\r\n profile: 'Administracion', activateSaveFormGeneralData: false, activateSaveFormPersonalData: false, activateSaveFormPaymentData: false, activateSaveFormBasicData: false, activateSaveFormStudy: false, activateSaveFormDocument: false, actions: [\r\n { control: 'firstName', read: true, write: false }\r\n , { control: 'lastName', read: true, write: false }\r\n , { control: 'secondLastName', read: true, write: false }\r\n , { control: 'birthDate', read: true, write: false }\r\n , { control: 'stateBirthId', read: true, write: false }\r\n , { control: 'gender', read: true, write: false }\r\n , { control: 'curp', read: true, write: false }\r\n , { control: 'rfc', read: true, write: false }\r\n , { control: 'imss', read: true, write: false }\r\n , { control: 'email', read: true, write: false }\r\n , { control: 'bossId', read: true, write: false }\r\n , { control: 'supervisorId', read: true, write: false }\r\n , { control: 'payrollOfficerId', read: true, write: false }\r\n , { control: 'workingDayId', read: true, write: false }\r\n , { control: 'maritalStatusId', read: false, write: false }\r\n , { control: 'personalNumber', read: false, write: false }\r\n , { control: 'street', read: false, write: false }\r\n , { control: 'interiorNumber', read: false, write: false }\r\n , { control: 'externalNumber', read: false, write: false }\r\n , { control: 'postalCode', read: false, write: false }\r\n , { control: 'suburb', read: false, write: false }\r\n , { control: 'stateId', read: false, write: false }\r\n , { control: 'townId', read: false, write: false }\r\n , { control: 'country', read: false, write: false }\r\n , { control: 'patrimonialRegimeId', read: false, write: false }\r\n , { control: 'dailySalary', read: false, write: false }\r\n , { control: 'integratedDailySalary', read: false, write: false }\r\n , { control: 'bankId', read: true, write: false }\r\n , { control: 'bankAccount', read: true, write: false }\r\n , { control: 'methodPaymentId', read: true, write: false }\r\n , { control: 'classification', read: false, write: false }\r\n , { control: 'typeSalaryId', read: false, write: false }\r\n , { control: 'pantryAccount', read: true, write: false }\r\n , { control: 'pantryCard', read: true, write: false }\r\n , { control: 'gasolineCard', read: true, write: false }\r\n , { control: 'gasolineIdentifier', read: true, write: false }\r\n , { control: 'interbankClabe', read: true, write: false }\r\n , { control: 'subsidy', read: false, write: false }\r\n , { control: 'requisitionContractTypeId', read: false, write: false }\r\n , { control: 'laborSeniorityDate', read: false, write: false }\r\n , { control: 'employerRegisterId', read: false, write: false }\r\n , { control: 'salaryZoneId', read: false, write: false }\r\n , { control: 'familyMedicalUnitId', read: false, write: false }\r\n , { control: 'unionized', read: false, write: false }\r\n , { control: 'accountingSegmentId', read: false, write: false }\r\n , { control: 'individualAccount', read: false, write: false }\r\n , { control: 'pieceWorker', read: false, write: false }\r\n , { control: 'benefitCategoryId', read: false, write: false }\r\n , { control: 'alimony', read: false, write: false }\r\n , { control: 'hasInfonavit', read: false, write: false }\r\n , { control: 'schoolLevelId', read: false, write: false }\r\n , { control: 'educationLevelId', read: false, write: false }\r\n , { control: 'institute', read: false, write: false }\r\n , { control: 'documentReceivedId', read: false, write: false }\r\n , { control: 'studyPeriod', read: false, write: false }\r\n , { control: 'document', read: false, write: false }]\r\n },\r\n {\r\n profile: 'Sistemas', activateSaveFormGeneralData: false, activateSaveFormPersonalData: false, activateSaveFormPaymentData: false, activateSaveFormBasicData: false, activateSaveFormStudy: false, activateSaveFormDocument: true, actions: [\r\n { control: 'firstName', read: true, write: false }\r\n , { control: 'lastName', read: true, write: false }\r\n , { control: 'secondLastName', read: true, write: false }\r\n , { control: 'birthDate', read: true, write: false }\r\n , { control: 'stateBirthId', read: true, write: false }\r\n , { control: 'gender', read: true, write: false }\r\n , { control: 'curp', read: true, write: false }\r\n , { control: 'rfc', read: true, write: false }\r\n , { control: 'imss', read: true, write: false }\r\n , { control: 'email', read: true, write: false }\r\n , { control: 'bossId', read: true, write: false }\r\n , { control: 'supervisorId', read: true, write: false }\r\n , { control: 'payrollOfficerId', read: true, write: false }\r\n , { control: 'workingDayId', read: true, write: false }\r\n , { control: 'maritalStatusId', read: true, write: false }\r\n , { control: 'personalNumber', read: true, write: false }\r\n , { control: 'street', read: true, write: false }\r\n , { control: 'interiorNumber', read: true, write: false }\r\n , { control: 'externalNumber', read: true, write: false }\r\n , { control: 'postalCode', read: true, write: false }\r\n , { control: 'suburb', read: true, write: false }\r\n , { control: 'stateId', read: true, write: false }\r\n , { control: 'townId', read: true, write: false }\r\n , { control: 'country', read: true, write: false }\r\n , { control: 'patrimonialRegimeId', read: true, write: false }\r\n , { control: 'dailySalary', read: false, write: false }\r\n , { control: 'integratedDailySalary', read: false, write: false }\r\n , { control: 'bankId', read: true, write: false }\r\n , { control: 'bankAccount', read: true, write: false }\r\n , { control: 'methodPaymentId', read: true, write: false }\r\n , { control: 'classification', read: true, write: false }\r\n , { control: 'typeSalaryId', read: true, write: false }\r\n , { control: 'pantryAccount', read: true, write: false }\r\n , { control: 'pantryCard', read: true, write: false }\r\n , { control: 'gasolineCard', read: true, write: false }\r\n , { control: 'gasolineIdentifier', read: true, write: false }\r\n , { control: 'interbankClabe', read: true, write: false }\r\n , { control: 'subsidy', read: true, write: false }\r\n , { control: 'requisitionContractTypeId', read: true, write: false }\r\n , { control: 'laborSeniorityDate', read: true, write: false }\r\n , { control: 'employerRegisterId', read: true, write: false }\r\n , { control: 'salaryZoneId', read: true, write: false }\r\n , { control: 'familyMedicalUnitId', read: true, write: false }\r\n , { control: 'unionized', read: true, write: false }\r\n , { control: 'accountingSegmentId', read: true, write: false }\r\n , { control: 'individualAccount', read: true, write: false }\r\n , { control: 'pieceWorker', read: true, write: false }\r\n , { control: 'benefitCategoryId', read: true, write: false }\r\n , { control: 'alimony', read: true, write: false }\r\n , { control: 'hasInfonavit', read: true, write: false }\r\n , { control: 'schoolLevelId', read: true, write: false }\r\n , { control: 'educationLevelId', read: true, write: false }\r\n , { control: 'institute', read: true, write: false }\r\n , { control: 'documentReceivedId', read: true, write: false }\r\n , { control: 'studyPeriod', read: true, write: false }\r\n , { control: 'document', read: true, write: true }]\r\n },\r\n {\r\n profile: 'Logistica', activateSaveFormGeneralData: false, activateSaveFormPersonalData: false, activateSaveFormPaymentData: false, activateSaveFormBasicData: false, activateSaveFormStudy: false, activateSaveFormDocument: false, actions: [\r\n { control: 'firstName', read: true, write: false }\r\n , { control: 'lastName', read: true, write: false }\r\n , { control: 'secondLastName', read: true, write: false }\r\n , { control: 'birthDate', read: false, write: false }\r\n , { control: 'hiringDate', read: false, write: false }\r\n , { control: 'stateBirthId', read: false, write: false }\r\n , { control: 'gender', read: false, write: false }\r\n , { control: 'curp', read: false, write: false }\r\n , { control: 'rfc', read: false, write: false }\r\n , { control: 'imss', read: false, write: false }\r\n , { control: 'email', read: false, write: false }\r\n , { control: 'bossId', read: true, write: false }\r\n , { control: 'supervisorId', read: true, write: false }\r\n , { control: 'payrollOfficerId', read: false, write: false }\r\n , { control: 'job', read: false, write: false }\r\n , { control: 'positionNo', read: false, write: false }\r\n , { control: 'companyName', read: true, write: false }\r\n , { control: 'projectName', read: false, write: false }\r\n , { control: 'planName', read: false, write: false }\r\n , { control: 'zoneName', read: false, write: false }\r\n , { control: 'townName', read: false, write: false }\r\n , { control: 'businessPhone', read: false, write: false }\r\n , { control: 'workingDayId', read: false, write: false }\r\n , { control: 'maritalStatusId', read: false, write: false }\r\n , { control: 'personalNumber', read: true, write: false }\r\n , { control: 'street', read: true, write: false }\r\n , { control: 'interiorNumber', read: true, write: false }\r\n , { control: 'externalNumber', read: true, write: false }\r\n , { control: 'postalCode', read: true, write: false }\r\n , { control: 'suburb', read: true, write: false }\r\n , { control: 'stateId', read: true, write: false }\r\n , { control: 'townId', read: true, write: false }\r\n , { control: 'country', read: true, write: false }\r\n , { control: 'patrimonialRegimeId', read: false, write: false }\r\n , { control: 'dailySalary', read: false, write: false }\r\n , { control: 'integratedDailySalary', read: false, write: false }\r\n , { control: 'bankId', read: false, write: false }\r\n , { control: 'bankAccount', read: false, write: false }\r\n , { control: 'methodPaymentId', read: false, write: false }\r\n , { control: 'classification', read: false, write: false }\r\n , { control: 'typeSalaryId', read: false, write: false }\r\n , { control: 'pantryAccount', read: false, write: false }\r\n , { control: 'pantryCard', read: false, write: false }\r\n , { control: 'gasolineCard', read: false, write: false }\r\n , { control: 'gasolineIdentifier', read: false, write: false }\r\n , { control: 'interbankClabe', read: false, write: false }\r\n , { control: 'subsidy', read: false, write: false }\r\n , { control: 'requisitionContractTypeId', read: false, write: false }\r\n , { control: 'laborSeniorityDate', read: false, write: false }\r\n , { control: 'employerRegisterId', read: false, write: false }\r\n , { control: 'salaryZoneId', read: false, write: false }\r\n , { control: 'familyMedicalUnitId', read: false, write: false }\r\n , { control: 'unionized', read: false, write: false }\r\n , { control: 'accountingSegmentId', read: false, write: false }\r\n , { control: 'individualAccount', read: false, write: false }\r\n , { control: 'pieceWorker', read: false, write: false }\r\n , { control: 'benefitCategoryId', read: false, write: false }\r\n , { control: 'alimony', read: false, write: false }\r\n , { control: 'hasInfonavit', read: false, write: false }\r\n , { control: 'schoolLevelId', read: false, write: false }\r\n , { control: 'educationLevelId', read: false, write: false }\r\n , { control: 'institute', read: false, write: false }\r\n , { control: 'documentReceivedId', read: false, write: false }\r\n , { control: 'studyPeriod', read: false, write: false }\r\n , { control: 'document', read: false, write: false }]\r\n },\r\n {\r\n profile: 'SMC', activateSaveFormGeneralData: false, activateSaveFormPersonalData: false, activateSaveFormPaymentData: false, activateSaveFormBasicData: false, activateSaveFormStudy: false, activateSaveFormDocument: false, actions: [\r\n { control: 'firstName', read: true, write: false }\r\n , { control: 'lastName', read: true, write: false }\r\n , { control: 'secondLastName', read: true, write: false }\r\n , { control: 'birthDate', read: false, write: false }\r\n , { control: 'trackingStatus', read: false, write: false }\r\n , { control: 'hiringDate', read: false, write: false }\r\n , { control: 'dismissalDate', read: false, write: false }\r\n , { control: 'stateBirthId', read: false, write: false }\r\n , { control: 'gender', read: false, write: false }\r\n , { control: 'curp', read: false, write: false }\r\n , { control: 'rfc', read: false, write: false }\r\n , { control: 'imss', read: false, write: false }\r\n , { control: 'email', read: false, write: false }\r\n , { control: 'bossId', read: false, write: false }\r\n , { control: 'supervisorId', read: false, write: false }\r\n , { control: 'payrollOfficerId', read: false, write: false }\r\n , { control: 'job', read: false, write: false }\r\n , { control: 'positionNo', read: false, write: false }\r\n , { control: 'companyName', read: true, write: false }\r\n , { control: 'projectName', read: false, write: false }\r\n , { control: 'planName', read: false, write: false }\r\n , { control: 'customer', read: true, write: false }\r\n , { control: 'zoneName', read: false, write: false }\r\n , { control: 'townName', read: false, write: false }\r\n , { control: 'businessPhone', read: false, write: false }\r\n , { control: 'workingDayId', read: false, write: false }\r\n , { control: 'maritalStatusId', read: false, write: false }\r\n , { control: 'personalNumber', read: false, write: false }\r\n , { control: 'street', read: false, write: false }\r\n , { control: 'interiorNumber', read: false, write: false }\r\n , { control: 'externalNumber', read: false, write: false }\r\n , { control: 'postalCode', read: false, write: false }\r\n , { control: 'suburb', read: false, write: false }\r\n , { control: 'stateId', read: false, write: false }\r\n , { control: 'townId', read: false, write: false }\r\n , { control: 'country', read: false, write: false }\r\n , { control: 'patrimonialRegimeId', read: false, write: false }\r\n , { control: 'dailySalary', read: false, write: false }\r\n , { control: 'integratedDailySalary', read: false, write: false }\r\n , { control: 'bankId', read: false, write: false }\r\n , { control: 'bankAccount', read: false, write: false }\r\n , { control: 'methodPaymentId', read: false, write: false }\r\n , { control: 'classification', read: false, write: false }\r\n , { control: 'typeSalaryId', read: false, write: false }\r\n , { control: 'pantryAccount', read: false, write: false }\r\n , { control: 'pantryCard', read: false, write: false }\r\n , { control: 'gasolineCard', read: false, write: false }\r\n , { control: 'gasolineIdentifier', read: false, write: false }\r\n , { control: 'interbankClabe', read: false, write: false }\r\n , { control: 'subsidy', read: false, write: false }\r\n , { control: 'requisitionContractTypeId', read: false, write: false }\r\n , { control: 'laborSeniorityDate', read: false, write: false }\r\n , { control: 'employerRegisterId', read: false, write: false }\r\n , { control: 'salaryZoneId', read: false, write: false }\r\n , { control: 'familyMedicalUnitId', read: false, write: false }\r\n , { control: 'unionized', read: false, write: false }\r\n , { control: 'accountingSegmentId', read: false, write: false }\r\n , { control: 'individualAccount', read: false, write: false }\r\n , { control: 'pieceWorker', read: false, write: false }\r\n , { control: 'benefitCategoryId', read: false, write: false }\r\n , { control: 'alimony', read: false, write: false }\r\n , { control: 'hasInfonavit', read: false, write: false }\r\n , { control: 'schoolLevelId', read: false, write: false }\r\n , { control: 'educationLevelId', read: false, write: false }\r\n , { control: 'institute', read: false, write: false }\r\n , { control: 'documentReceivedId', read: false, write: false }\r\n , { control: 'studyPeriod', read: false, write: false }\r\n , { control: 'document', read: false, write: false }]\r\n }];\r\n public readFormControlEmployeeModule(profile: string, control: string): boolean {\r\n let p = this.employeeModuleProfiles.filter(x => x.profile == profile)[0];\r\n let a = p.actions.filter(c => c.control == control)[0];\r\n return a == null ? true : a.read;\r\n }\r\n public writeFormControlEmployeeModule(profile: string, control: string): boolean {\r\n let p = this.employeeModuleProfiles.filter(x => x.profile == profile)[0];\r\n let a = p.actions.filter(c => c.control == control)[0];\r\n return a == null ? false : a.write;\r\n }\r\n public activateSaveForm(profile: string): IDtoEmployeeModuleProfile {\r\n return this.employeeModuleProfiles.filter(x => x.profile == profile)[0];\r\n }\r\n}\r\n\r\nexport interface IDtoEmployeeModuleProfile {\r\n profile: string;\r\n activateSaveFormGeneralData: boolean;\r\n activateSaveFormPersonalData: boolean;\r\n activateSaveFormPaymentData: boolean;\r\n activateSaveFormBasicData: boolean;\r\n activateSaveFormStudy: boolean;\r\n activateSaveFormDocument: boolean;\r\n actions: IDtoActions[];\r\n}\r\nexport interface IDtoActions {\r\n control: string;\r\n write: boolean;\r\n read: boolean;\r\n}","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { DatatableComponent, SelectionType } from '@swimlane/ngx-datatable';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { IdentityService } from '../identity.service';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoSystem } from 'app/shared/models/security/dto-system.model';\r\nimport { ModalSystemModuleComponet } from 'app/views/modales/security/system-module/modal-system-module.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-system',\r\n styleUrls: ['./system.style.scss'],\r\n templateUrl: 'system.template.html'\r\n})\r\nexport class SystemComponent implements OnInit {\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formSystem: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Variables */\r\n private now: number;\r\n SelectionType = SelectionType;\r\n /**Listas */\r\n private systems = new Array() as IDtoSystem[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableSystems: DatatableComponent;\r\n public constructor(private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private formBuilder: FormBuilder\r\n , private modalService: BsModalService\r\n , public snotifyService: SnotifyService\r\n , private identityService: IdentityService\r\n , private configGeneral: AppConfig) {\r\n this.initializeFormSystem();\r\n this.configToast = this.configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getSystems();\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getSystems();\r\n });\r\n }\r\n }\r\n private initializeFormSystem() {\r\n this.formSystem = this.formBuilder.group({\r\n name: [null, Validators.required]\r\n });\r\n }\r\n private getSystems(): void {\r\n this.identityService.getSystems()\r\n .subscribe(\r\n (x) => {\r\n this.systems = x.data as IDtoSystem[];\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private save(): void {\r\n if (!this.formSystem.valid) {\r\n this.snotifyService.error('Ingrese un nombre para el sistema'\r\n , 'Error', this.configToast);\r\n return;\r\n }\r\n const data = this.formSystem.value;\r\n this.identityService.addSystem(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.formSystem.reset();\r\n this.getSystems();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private openModalSystemModule(item: any) {\r\n const initialState = {\r\n system: item,\r\n title: `Asignación de modulos al sistema ${item.name}`\r\n };\r\n this.modalRef = this.modalService.show(ModalSystemModuleComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n\r\n });\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3NlY3VyaXR5L3N5c3RlbS9zeXN0ZW0uc3R5bGUuc2NzcyJ9 */\"","import { OnInit, Component, ViewChild } from '@angular/core';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ConfigurationService } from 'app/shared/services/configuration.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { ModalUserComponet } from 'app/views/modales/security/user/modal-user.component';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDtoUser } from 'app/shared/models/security/dto-user.model';\r\nimport { IdentityService } from '../identity.service';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { ModalUserRoleComponet } from 'app/views/modales/security/user-role/modal-user-role.component';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\n\r\n@Component({\r\n selector: 'app-user',\r\n styleUrls: ['./user.style.scss'],\r\n templateUrl: 'user.template.html'\r\n})\r\nexport class UserComponent implements OnInit {\r\n /**Modales */\r\n private modalRef: BsModalRef;\r\n private configModal = {\r\n backdrop: true,\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n };\r\n /**Validadores */\r\n private errorMessages: any;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Variables */\r\n private now: number;\r\n private search: string;\r\n /**Listas */\r\n private users = new Array() as IDtoUser[];\r\n private usersTemp = new Array() as IDtoUser[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableUsers: DatatableComponent;\r\n public constructor(private configurationService: ConfigurationService\r\n , private spinner: NgxSpinnerService\r\n , private modalService: BsModalService\r\n , private serviceSecurity: SecurityService\r\n , private identityService: IdentityService\r\n , private configGeneral: AppConfig) {\r\n }\r\n ngOnInit(): void {\r\n this.now = Date.now();\r\n if (this.configurationService.isReady) {\r\n this.spinner.show();\r\n this.getUsers()\r\n } else {\r\n this.configurationService.settingsLoaded$.subscribe(x => {\r\n this.spinner.show();\r\n this.getUsers()\r\n });\r\n }\r\n }\r\n private getUsers(): void {\r\n this.identityService.getUsers()\r\n .subscribe(\r\n (x) => {\r\n this.users = x.data as IDtoUser[];\r\n this.usersTemp = this.users;\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private deleteUser(item: IDtoUser): void {\r\n this.spinner.show();\r\n this.identityService.deleteUser(item.id)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.getUsers();\r\n } else {\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private openModalUser(item: any, action: string) {\r\n const initialState = {\r\n user: item,\r\n action: action,\r\n title: action === 'add' ? 'Alta de usuario' : 'Modificación de usuario'\r\n };\r\n this.modalRef = this.modalService.show(ModalUserComponet\r\n , Object.assign({ initialState }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.configGeneral.newToast('Éxito', 'Exito', 'success');\r\n this.getUsers();\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private openModalUserRole(item: any) {\r\n const initialState = {\r\n user: item,\r\n title: 'Asignación de perfil de usuario'\r\n };\r\n this.modalRef = this.modalService.show(ModalUserRoleComponet\r\n , Object.assign({ initialState }\r\n , { class: 'modal-lg' }\r\n , this.configModal));\r\n this.modalRef.content.onClose.subscribe((result) => {\r\n if (result) {\r\n this.configGeneral.newToast('Éxito', 'Roles asignados correctamente', 'success');\r\n this.getUsers();\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ocurrió un error al intentar guardar los datos, intente de nuevo', 'error');\r\n }\r\n });\r\n }\r\n private restorePassword(item: any): void {\r\n this.spinner.show();\r\n let user = {} as IDtoUser;\r\n user.email = item.email;\r\n user.username = item.email;\r\n this.identityService.restorePassword(user)\r\n .subscribe(\r\n (x) => {\r\n this.configGeneral.notificationSuccessError(x)\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n\r\n const val = this.search.toLowerCase();\r\n const temp = this.usersTemp.filter((x: any) => x.username.toLowerCase().startsWith(val)\r\n || x.email.toLowerCase().startsWith(val));\r\n \r\n this.users = temp;\r\n this.tableUsers.offset = 0;\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FwcHZpZXdzL3NlY3VyaXR5L3VzZXIvdXNlci5zdHlsZS5zY3NzIn0= */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoProduct } from 'app/shared/models/position/dto-product.model';\r\nimport { IDtoBudgetList } from 'app/shared/models/quote/dto-budget-list.model';\r\nimport { BudgetService } from 'app/views/appviews/quote/budget.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoBudget } from 'app/shared/models/quote/budget.model';\r\n\r\n@Component({\r\n selector: 'app-modal-duplicate-budget',\r\n styleUrls: ['./modal-duplicate.style.scss'],\r\n templateUrl: './modal-duplicate.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalDuplicateBudgetComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDuplicate: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private product: IDtoProduct;\r\n private action: string;\r\n private budget: IDtoBudgetList;\r\n /**Catalogos */\r\n private catalogProductTypes: Observable;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private budgetService: BudgetService\r\n , private configGeneral: AppConfig\r\n , private spinner: NgxSpinnerService\r\n , private identityService: IdentityService) {\r\n this.initializeFormDuplicate();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n }\r\n private initializeFormDuplicate() {\r\n this.formDuplicate = this.formBuilder.group({\r\n duration: [null, [Validators.required, Validators.maxLength(2)]],\r\n isReplace: [false],\r\n comments: [null]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formDuplicate.valid) {\r\n this.save();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n }\r\n }\r\n private save(): void {\r\n let dto = this.formDuplicate.value as IDtoBudgetList;\r\n if (this.budget.statusName == 'Sustituida' && dto.isReplace) {\r\n this.configGeneral.newToast('Validación', 'No es posible generar versión de presupuesto cancelado. Seleccione la versión final de este presupuesto', 'warning');\r\n return;\r\n }\r\n this.spinner.show();\r\n dto.id = this.budget.id;\r\n dto.version = this.budget.version;\r\n this.budgetService.duplicateBudget(dto).subscribe(x => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let dtoNew = x.data as IDtoBudget;\r\n if (dto.isReplace) {\r\n this.addModuleLog(dto.id, 'replaced');\r\n } else {\r\n this.addModuleLog(dto.id, 'duplicate');\r\n }\r\n this.addModuleLog(dtoNew.id, 'new');\r\n this.onClose.next(x.isCorrect);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages)\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Budgets';\r\n dto.module = 'budgets';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9idWRnZXQvZHVwbGljYXRlL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxtb2RhbGVzXFxidWRnZXRcXGR1cGxpY2F0ZVxcbW9kYWwtZHVwbGljYXRlLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvYnVkZ2V0L2R1cGxpY2F0ZS9tb2RhbC1kdXBsaWNhdGUuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9tb2RhbGVzL2J1ZGdldC9kdXBsaWNhdGUvbW9kYWwtZHVwbGljYXRlLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { BudgetService } from 'app/views/appviews/quote/budget.service';\r\nimport { IDtoNote } from 'app/shared/models/quote/note.model';\r\nimport { IDtoBudgetNote } from 'app/shared/models/quote/budget-note.model';\r\nimport { EnumBudgetStatus } from 'app/shared/enums/budget-status.enum';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\n\r\n@Component({\r\n selector: 'app-modal-notes',\r\n templateUrl: './modal-notes.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalNotesComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formBudgetNote: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private budgetId?: number;\r\n private budgetNote: IDtoBudgetNote;\r\n private profile: string;\r\n private status?: number;\r\n /**Catalogos */\r\n private catalogNotes = new Array() as IDtoNote[];\r\n /**Listas */\r\n private budgetNotes = new Array() as IDtoBudgetNote[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableNotes: DatatableComponent;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private budgetService: BudgetService\r\n , private configGeneral: AppConfig\r\n , private securityService: SecurityService) {\r\n this.initializeFormUserRole();\r\n this.configToast = this.configGeneral.getConfigToast();\r\n this.profile = this.securityService.getProfileStorage('BudgetCreation');\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.getBudgetNotes(this.budgetId);\r\n this.getCatalogNotes();\r\n }\r\n private initializeFormUserRole() {\r\n this.formBudgetNote = this.formBuilder.group({\r\n noteId: [null, [Validators.required]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.budgetId == undefined) {\r\n this.configGeneral.newToast('Validación', 'Guarde primeramente el presupuesto para poder agregar sus notas', 'warning');\r\n return;\r\n }\r\n if (this.formBudgetNote.valid) {\r\n let dto = this.formBudgetNote.value as IDtoBudgetNote;\r\n dto.budgetId = this.budgetId;\r\n let exist = this.budgetNotes.filter(bf => bf.noteId == dto.noteId);\r\n if (exist.length > 0) {\r\n this.configGeneral.newToast('Validación', 'La nota seleccionada ya existe en este presupuesto', 'warning');\r\n return;\r\n }\r\n this.save(dto);\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Seleccione la información requerida para poder continuar', 'warning');\r\n }\r\n }\r\n private save(dto: IDtoBudgetNote): void {\r\n this.budgetService.addBudgetNote(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n const item = x.data as IDtoBudgetNote;\r\n let note = this.catalogNotes.filter(n => n.id == item.noteId)[0];\r\n item.description = note.description;\r\n item.isDefault = note.isDefault;\r\n this.budgetNotes.push(item);\r\n this.budgetNotes = [...this.budgetNotes];\r\n this.resetForm();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private getBudgetNotes(budgetId: number): void {\r\n if (budgetId == undefined) {\r\n return;\r\n }\r\n this.budgetService.getBudgetNotes(budgetId)\r\n .subscribe(\r\n (x) => {\r\n this.budgetNotes = x.data as IDtoBudgetNote[];\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private resetForm(): void {\r\n this.formBudgetNote.reset();\r\n }\r\n private getCatalogNotes(): void {\r\n this.budgetService.getNotes()\r\n .subscribe(\r\n (x) => {\r\n //let tempCatalogNotes = x.data as IDtoNote[];\r\n this.catalogNotes = x.data as IDtoNote[];//tempCatalogNotes.filter(d => d.isDefault == false);\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private deleteBudgetNote(row: IDtoBudgetNote): void {\r\n this.budgetService.deleteBudgetNote(row.id)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n const index = this.budgetNotes.indexOf(row, 0);\r\n if (index > -1) {\r\n this.budgetNotes.splice(index, 1);\r\n }\r\n this.budgetNotes = [...this.budgetNotes];\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n\r\n private validateButtonTrash(row: IDtoBudgetNote) : boolean {\r\n let access = true;\r\n if (row.isDefault || this.profile == 'Cliente' || this.status != 0) {\r\n access = false;\r\n }\r\n return access;\r\n }\r\n}\r\n","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { IDtoBudgetList } from 'app/shared/models/quote/dto-budget-list.model';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-modal-budget-versions',\r\n templateUrl: './modal-versions.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalBudgetVersionsComponet implements OnInit {\r\n /**Variables */\r\n private budgetsList: IDtoBudgetList[];\r\n constructor(private bsModalRef: BsModalRef\r\n , private router: Router\r\n , private route: ActivatedRoute) {\r\n }\r\n ngOnInit(): void {\r\n }\r\n private navigateTo(row: IDtoBudgetList): void {\r\n this.bsModalRef.hide();\r\n this.router.navigate(['/budgets/create',\r\n { id: row.id, action: 'update' }], { relativeTo: this.route });\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","import { OnDestroy, OnInit, Component } from '@angular/core';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-modal-reason',\r\n styleUrls: ['modal-reason.style.scss'],\r\n templateUrl: 'modal-reason.template.html'\r\n})\r\nexport class ModalReasonComponent implements OnDestroy, OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formReason: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n private reason: string;\r\n constructor(private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private bsModalRef: BsModalRef) {\r\n this.initializeFormReason();\r\n }\r\n ngOnDestroy(): void {\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.formReason.get('reason').setValue(this.reason);\r\n }\r\n private initializeFormReason() {\r\n this.formReason = this.formBuilder.group({\r\n reason: [null, [Validators.required, Validators.maxLength(250)]]\r\n });\r\n }\r\n private submitForm(): void {\r\n if (this.formReason.valid) {\r\n this.update();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formReason);\r\n }\r\n }\r\n private update(): void {\r\n this.reason = this.formReason.value.reason;\r\n this.onClose.next(this.reason);\r\n this.bsModalRef.hide();\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvY29tbW9uL21vZGFsLXJlYXNvbi5zdHlsZS5zY3NzIn0= */\"","import { OnDestroy, OnInit, Component } from '@angular/core';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { CustomerService } from 'app/views/appviews/quote/customer.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\n\r\n@Component({\r\n selector: 'app-modal-budget-approver',\r\n styleUrls: ['modal-budget-approver.style.scss'],\r\n templateUrl: 'modal-budget-approver.template.html'\r\n})\r\nexport class ModalBudgetApproverComponent implements OnDestroy, OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formApprover: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Catalogos */\r\n private catalogApprovers: Observable;\r\n private approver: string;\r\n private staffTypeName: string;\r\n private projectCustomerId: number;\r\n private customerId: number;\r\n private module: string;\r\n constructor(private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private bsModalRef: BsModalRef\r\n , private customerService: CustomerService) {\r\n this.initializeFormApprover();\r\n }\r\n ngOnDestroy(): void {\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n if (this.module == 'Commission' || this.module == 'Payroll') {\r\n this.catalogApprovers = this.customerService.getCatalogPayrollApprovers(this.projectCustomerId);\r\n this.catalogApprovers.subscribe(x => {\r\n if(x.length == 0) {\r\n this.configGeneral.newToast('Validación', 'No existen aprobadores para este presupuesto', 'error');\r\n }\r\n });\r\n } else {\r\n if (this.staffTypeName == 'Oficina') {\r\n this.catalogApprovers = this.customerService.getCatalogApprovers(this.customerId);\r\n this.catalogApprovers.subscribe(x => {\r\n if(x.length == 0) {\r\n this.configGeneral.newToast('Validación', 'No existen aprobadores para este presupuesto', 'error');\r\n }\r\n });\r\n } else {\r\n this.catalogApprovers = this.customerService.getCatalogApproversByProjectCustomer(this.projectCustomerId);\r\n this.catalogApprovers.subscribe(x => {\r\n if(x.length == 0) {\r\n this.configGeneral.newToast('Validación', 'No existen aprobadores para este presupuesto', 'error');\r\n }\r\n });\r\n }\r\n }\r\n }\r\n private initializeFormApprover() {\r\n this.formApprover = this.formBuilder.group({\r\n approver: [null, [Validators.required]]\r\n });\r\n }\r\n private submitForm(): void {\r\n if (this.formApprover.valid) {\r\n this.update();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n }\r\n }\r\n private update(): void {\r\n //this.approver = this.formApprover.value.approver;\r\n this.onClose.next(this.approver);\r\n this.bsModalRef.hide();\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private changeApprover(dto: IDtoCatalog): void {\r\n if (dto === undefined) {\r\n return;\r\n }\r\n this.approver = dto.additional;\r\n }\r\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvY3VzdG9tZXIvYnVkZ2V0LWFwcHJvdmVyL21vZGFsLWJ1ZGdldC1hcHByb3Zlci5zdHlsZS5zY3NzIn0= */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { OrganizationService } from 'app/views/appviews/organization/organization.service';\r\nimport { IDtoCustomer } from 'app/shared/models/customer/dto-customer.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { CustomerService } from 'app/views/appviews/quote/customer.service';\r\nimport { PositionService } from 'app/views/appviews/quote/position.service';\r\nimport { IDtoMinimumSalary } from 'app/shared/models/position/dto-minimum-salary.model';\r\nimport { IDtoRiskPremium } from 'app/shared/models/organization/dto-risk-premium.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { saveAs } from 'file-saver';\r\n@Component({\r\n selector: 'app-modal-customer',\r\n styleUrls: ['./modal-customer.style.scss'],\r\n templateUrl: './modal-customer.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalCustomerComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formCustomer: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private customer = {} as IDtoCustomer;\r\n private action: string;\r\n private minimumSalary = {} as IDtoMinimumSalary;\r\n private riskPremium = {} as IDtoRiskPremium;\r\n /**Catalogos */\r\n private catalogCompanies: Observable;\r\n private catalogCustomerTypes: Observable;\r\n private catalogPaymentTerms: Observable;\r\n private files: FileList;\r\n private fileName = '';\r\n private document = {} as IDtoDocument;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private organizationService: OrganizationService\r\n , private customerService: CustomerService\r\n , private configGeneral: AppConfig\r\n , private positionService: PositionService\r\n , private identityService: IdentityService\r\n , private spinner: NgxSpinnerService\r\n , private datePipe: DatePipe\r\n , private documentService: DocumentService) {\r\n this.initializeFormRiskPremium();\r\n }\r\n ngOnInit(): void {\r\n this.catalogCompanies = this.organizationService.getCatalogCompanies();\r\n this.catalogCustomerTypes = this.organizationService.getCatalogCustomerTypes();\r\n this.catalogPaymentTerms = this.organizationService.getCatalogPaymentTerms();\r\n this.getMinimumSalary();\r\n this.onClose = new Subject();\r\n if (this.action === 'edit') {\r\n let contractExpirationDate = this.configGeneral.setDate(this.customer.contractExpirationDate);\r\n this.formCustomer.patchValue(this.customer);\r\n this.formCustomer.get('contractExpirationDate').setValue(contractExpirationDate);\r\n this.getLatesDocumentVersion();\r\n }\r\n }\r\n private getMinimumSalary(): void {\r\n this.positionService.getMinimumSalary().subscribe(res => {\r\n this.minimumSalary = res.data as IDtoMinimumSalary;\r\n if (this.action === 'add') {\r\n this.formCustomer.get('minimumSalary').setValue(this.minimumSalary.value);\r\n }\r\n })\r\n }\r\n private getLatesDocumentVersion(): void {\r\n this.documentService.getLatesDocumentVersion(this.customer.id, 'ContratoCliente').subscribe(res => {\r\n this.document = res.data as IDtoDocument;\r\n this.fileName = this.document.fileName;\r\n })\r\n }\r\n private getRiskPremiumByCompanyId(companyId: number): void {\r\n this.organizationService.getRiskPremiumByCompanyId(companyId).subscribe(res => {\r\n if (res.data == null) {\r\n this.configGeneral.newToast('Validación', 'No existe una prima de riesgo activa para esta compañia', 'warning');\r\n } else {\r\n this.riskPremium = res.data as IDtoRiskPremium;\r\n this.formCustomer.get('riskPremiumValue').setValue(this.riskPremium.value);\r\n }\r\n })\r\n }\r\n private initializeFormRiskPremium() {\r\n this.formCustomer = this.formBuilder.group({\r\n codeNom: [null, []],\r\n rfc: [null, [Validators.required, Validators.maxLength(13)]],\r\n name: [null, [Validators.required, Validators.maxLength(150)]],\r\n shortName:[null, [Validators.required, Validators.maxLength(100)]],\r\n billCompanyId: [null, [Validators.required]],\r\n payCompanyId: [null, [Validators.required]],\r\n customerTypeId: [null, [Validators.required]],\r\n paymentTermId: [null, [Validators.required]],\r\n agencyPercentage: [null, [Validators.required]],\r\n expensesPercentage: [null, [Validators.required]],\r\n administrativeExpensesPercentage: [null, [Validators.required]],\r\n creditDays: [null, [Validators.required]],\r\n minimumSalary: [null, [Validators.required]],\r\n riskPremiumValue: [null, [Validators.required]],\r\n staffType: [null, [Validators.required]],\r\n contractExpirationDate: [null],\r\n legalResponsibleName: [null, [Validators.required, Validators.maxLength(200)]],\r\n legalResponsibleEmail: [null, [Validators.required, Validators.email, Validators.maxLength(100)]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formCustomer.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formCustomer);\r\n }\r\n }\r\n private save(): void {\r\n const dto = this.formCustomer.value as IDtoCustomer;\r\n if (this.formCustomer.value.contractExpirationDate != null) {\r\n dto.contractExpirationDate = this.configGeneral.getLocalISOTime(this.configGeneral.getDate(this.formCustomer.value.contractExpirationDate));\r\n }\r\n this.customerService.addCustomer(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let c = x.data as IDtoCustomer;\r\n this.addModuleLog(c.id, 'new');\r\n this.onClose.next(c);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n const dto = this.formCustomer.value as IDtoCustomer;\r\n dto.id = this.customer.id;\r\n if (this.formCustomer.value.contractExpirationDate != null) {\r\n dto.contractExpirationDate = this.configGeneral.getLocalISOTime(this.configGeneral.getDate(this.formCustomer.value.contractExpirationDate));\r\n }\r\n this.customerService.updateCustomer(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n if (this.customer.minimumSalary != +dto.minimumSalary || this.customer.riskPremiumValue != +dto.riskPremiumValue) {\r\n this.updatePositionMasiveByCustomer(dto.minimumSalary, dto.riskPremiumValue);\r\n }\r\n this.addModuleLog(dto.id, 'update');\r\n this.onClose.next(dto);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private updatePositionMasiveByCustomer(uma: number, riskPremiumValue: number): void {\r\n const dto = {} as IDtoCatalog;\r\n dto.id = this.customer.id;\r\n dto.name = `${uma}|${riskPremiumValue}`;\r\n this.positionService.updatePositionMasiveByCustomer(dto)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect == false) {\r\n this.configGeneral.newToast('Error', 'La actualización de puestos no pudo ser completada', 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Customers';\r\n dto.module = 'customers';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private handleFileInput(files: FileList) {\r\n //this.fileName = files.item(0).name;\r\n this.upload(files);\r\n }\r\n private upload(files: FileList): void {\r\n if (files != undefined) {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = files.item(0).name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.customer.id}_Contrato_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileName = fileNameNew;\r\n document.referenceId = this.customer.id;\r\n document.folder = 'CustomerContracts';\r\n document.module = 'Customers';\r\n document.name = \"ContratoCliente\";\r\n document.acceptDuplicate = true;\r\n const file = files.item(0);\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n this.document = res.data as IDtoDocument;\r\n this.fileName = this.document.fileName;\r\n this.addModuleLog(this.customer.id, 'addContract');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n }\r\n private downloadFile(): void {\r\n this.documentService.downloadFile(this.document.id).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n this.addModuleLog(this.document.id, 'downloadFile');\r\n this.spinner.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\n.upload-btnup-wrapper {\\n position: relative;\\n overflow: hidden;\\n display: inline-block;\\n}\\n\\n.btnup {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n padding: 6px 12px;\\n font-size: 9px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.upload-btnup-wrapper input[type=file] {\\n font-size: 100px;\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9jdXN0b21lci9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcbW9kYWxlc1xcY3VzdG9tZXJcXG1vZGFsLWN1c3RvbWVyLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvY3VzdG9tZXIvbW9kYWwtY3VzdG9tZXIuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7QUNDRjs7QURFQTtFQUNFLHFCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxzQkFBQTtFQUNBLDBCQUFBO0VBQ0EsZUFBQTtFQUNBLHNCQUFBO0VBQ0EsNkJBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7QUNDRjs7QURFQTtFQUNFLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsTUFBQTtFQUNBLFVBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvY3VzdG9tZXIvbW9kYWwtY3VzdG9tZXIuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtcmFkaW8tYnV0dG9ufi5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufVxyXG5cclxuLnVwbG9hZC1idG51cC13cmFwcGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi5idG51cCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIHBhZGRpbmc6IDZweCAxMnB4O1xyXG4gIGZvbnQtc2l6ZTogOXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG59XHJcblxyXG4udXBsb2FkLWJ0bnVwLXdyYXBwZXIgaW5wdXRbdHlwZT1maWxlXSB7XHJcbiAgZm9udC1zaXplOiAxMDBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgb3BhY2l0eTogMDtcclxufVxyXG4iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5cbi51cGxvYWQtYnRudXAtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYnRudXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDlweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnVwbG9hZC1idG51cC13cmFwcGVyIGlucHV0W3R5cGU9ZmlsZV0ge1xuICBmb250LXNpemU6IDEwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgb3BhY2l0eTogMDtcbn0iXX0= */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { IDtoRiskPremium } from 'app/shared/models/organization/dto-risk-premium.model';\r\nimport { IDtoPlan } from 'app/shared/models/customer/dto-plan.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { CustomerService } from 'app/views/appviews/quote/customer.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\n\r\n@Component({\r\n selector: 'app-modal-plan',\r\n styleUrls: ['./modal-plan.style.scss'],\r\n templateUrl: './modal-plan.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalPlanComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formPlan: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private projectCustomerId?: number;\r\n private plan: IDtoPlan;\r\n private action = 'add';\r\n /**Listas */\r\n private plans = new Array() as IDtoPlan[];\r\n /**Catalogos */\r\n private catalogCategories: Observable;\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tablePlans: DatatableComponent;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private customerService: CustomerService\r\n , private configGeneral: AppConfig\r\n , private identityService: IdentityService) {\r\n this.initializeFormRiskPremium();\r\n }\r\n ngOnInit(): void {\r\n this.catalogCategories = this.customerService.getCatalogCategories();\r\n this.onClose = new Subject();\r\n }\r\n private initializeFormRiskPremium() {\r\n this.formPlan = this.formBuilder.group({\r\n codeNom: [null, []],\r\n name: [null, [Validators.required, Validators.maxLength(255)]],\r\n categoryId: [null, [Validators.required]],\r\n description: [null, [Validators.maxLength(255)]],\r\n isActive: [null, [Validators.required]],\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formPlan.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formPlan);\r\n }\r\n }\r\n private save(): void {\r\n const dto = this.formPlan.value as IDtoPlan;\r\n dto.projectCustomerId = this.projectCustomerId;\r\n this.customerService.addPlan(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let p = x.data as IDtoPlan;\r\n this.addModuleLog(p.id, 'new');\r\n this.plans.push(p);\r\n this.onClose.next(this.plans);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n const dto = this.formPlan.value as IDtoPlan;\r\n dto.projectCustomerId = this.plan.projectCustomerId;\r\n dto.id = this.plan.id;\r\n this.customerService.updatePlan(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let index = this.plans.indexOf(this.plan)\r\n if (index > -1) {\r\n this.plans.splice(index, 1);\r\n this.plans.push(dto);\r\n this.onClose.next(this.plans);\r\n this.bsModalRef.hide();\r\n }\r\n this.addModuleLog(dto.id, 'update');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private selectRow(item: IDtoPlan): void {\r\n this.plan = item;\r\n this.formPlan.patchValue(this.plan);\r\n this.action = 'edit';\r\n }\r\n private resetForm(): void {\r\n this.formPlan.reset();\r\n this.action = 'add';\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'PlanTrademarks';\r\n dto.module = 'projects';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9jdXN0b21lci9wbGFuL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxtb2RhbGVzXFxjdXN0b21lclxccGxhblxcbW9kYWwtcGxhbi5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9tb2RhbGVzL2N1c3RvbWVyL3BsYW4vbW9kYWwtcGxhbi5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvY3VzdG9tZXIvcGxhbi9tb2RhbC1wbGFuLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { CustomerService } from 'app/views/appviews/quote/customer.service';\r\nimport { IDtoProject } from 'app/shared/models/customer/dto-project.model';\r\nimport { OrganizationService } from 'app/views/appviews/organization/organization.service';\r\nimport { IDtoRiskPremium } from 'app/shared/models/organization/dto-risk-premium.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { PositionService } from 'app/views/appviews/quote/position.service';\r\n\r\n@Component({\r\n selector: 'app-modal-project',\r\n styleUrls: ['./modal-project.style.scss'],\r\n templateUrl: './modal-project.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalProjectComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formProject: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private customerId: number;\r\n private staffType: string;\r\n private project: IDtoProject;\r\n private action: string;\r\n /**Catalogos */\r\n private catalogCategories: Observable;\r\n private catalogAccountExecutives: Observable;\r\n private catalogApprovers: Observable;\r\n private catalogCompanies: Observable;\r\n private riskPremium = {} as IDtoRiskPremium;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private customerService: CustomerService\r\n , private configGeneral: AppConfig\r\n , private organizationService: OrganizationService\r\n , private identityService: IdentityService\r\n , private positionService: PositionService) {\r\n this.initializeFormProject();\r\n }\r\n ngOnInit(): void {\r\n this.catalogCategories = this.customerService.getCatalogCategories();\r\n this.catalogAccountExecutives = this.customerService.getCatalogAccountExecutives();\r\n this.catalogApprovers = this.customerService.getCatalogApprovers(this.customerId);\r\n this.catalogCompanies = this.organizationService.getCatalogCompanies();\r\n this.onClose = new Subject();\r\n if (this.action === 'edit') {\r\n this.formProject.patchValue(this.project);\r\n }\r\n if(this.staffType == 'Oficina') {\r\n this.formProject.get('payCompanyId').setValidators([Validators.required]);\r\n this.formProject.get('riskPremiumValue').setValidators([Validators.required]);\r\n this.formProject.get('payCompanyId').updateValueAndValidity();\r\n this.formProject.get('riskPremiumValue').updateValueAndValidity();\r\n }\r\n }\r\n private initializeFormProject() {\r\n this.formProject = this.formBuilder.group({\r\n codeNom: [null, []],\r\n name: [null, [Validators.required, Validators.maxLength(255)]],\r\n description:[null, [Validators.maxLength(255)]],\r\n categoryId: [null, [Validators.required]],\r\n accountExecutiveId: [null, [Validators.required]],\r\n approversId: [null, [Validators.required]],\r\n payCompanyId: [null],\r\n riskPremiumValue: [null],\r\n isActive: [null, [Validators.required]],\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formProject.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formProject);\r\n }\r\n }\r\n private save(): void {\r\n const dto = this.formProject.value as IDtoProject;\r\n dto.customerId = this.customerId;\r\n this.customerService.addProject(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let p = x.data as IDtoProject;\r\n this.addModuleLog(p.id, 'new');\r\n this.onClose.next(true);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n const dto = this.formProject.value as IDtoProject;\r\n dto.id = this.project.id;\r\n dto.customerId = this.project.customerId;\r\n this.customerService.updateProject(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n if (this.project.riskPremiumValue != +dto.riskPremiumValue) {\r\n this.updatePositionMasiveByProject(dto.riskPremiumValue);\r\n }\r\n this.addModuleLog(dto.id, 'update');\r\n this.onClose.next(true);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private getRiskPremiumByCompanyId(dto: IDtoCatalog): void {\r\n if (dto == null) {\r\n this.formProject.get('riskPremiumValue').setValue(null);\r\n return;\r\n }\r\n this.organizationService.getRiskPremiumByCompanyId(dto.id).subscribe(res => {\r\n if (res.data == null) {\r\n this.configGeneral.newToast('Validación', 'No existe una prima de riesgo activa para esta compañia', 'warning');\r\n this.formProject.get('riskPremiumValue').setValue(null);\r\n } else {\r\n this.riskPremium = res.data as IDtoRiskPremium;\r\n this.formProject.get('riskPremiumValue').setValue(this.riskPremium.value);\r\n }\r\n })\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private updatePositionMasiveByProject(riskPremiumValue: number): void {\r\n const dto = {} as IDtoCatalog;\r\n dto.id = this.project.id;\r\n dto.name = `${riskPremiumValue}`;\r\n this.positionService.updatePositionMasiveByProject(dto)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect == false) {\r\n this.configGeneral.newToast('Error', 'La actualización de puestos no pudo ser completada', 'error');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'ProjectCustomers';\r\n dto.module = 'projects';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9jdXN0b21lci9wcm9qZWN0L0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxtb2RhbGVzXFxjdXN0b21lclxccHJvamVjdFxcbW9kYWwtcHJvamVjdC5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9tb2RhbGVzL2N1c3RvbWVyL3Byb2plY3QvbW9kYWwtcHJvamVjdC5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvY3VzdG9tZXIvcHJvamVjdC9tb2RhbC1wcm9qZWN0LnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoOfferAdmissionEvidenceDetail } from 'app/shared/models/legal/demand/offer-admission-evidence-detail.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoPreliminaryAudienceEvidenceDetail } from 'app/shared/models/legal/demand/dto-preliminary-audience-evidence-detail.model';\r\n\r\n@Component({\r\n selector: 'app-modal-audience-judgment-evidence',\r\n templateUrl: './modal-audience-judgment-evidence.template.html',\r\n styleUrls: ['./modal-audience-judgment-evidence.style.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalAudienceJudgmentEvidenceComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formEvidence: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n\r\n private fileNameVoucherEvidence: string;\r\n private fileVoucherEvidence: File;\r\n private catalogTypeTest: Observable;\r\n private evidence: IDtoPreliminaryAudienceEvidenceDetail;\r\n private employeeId: number;\r\n private isSecond: boolean;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private demandService: DemandService\r\n , private spinner: NgxSpinnerService\r\n , private datePipe: DatePipe\r\n , private documentService: DocumentService) {\r\n this.initializeFormEvidence();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.patchData();\r\n }\r\n private initializeFormEvidence() {\r\n this.formEvidence = this.formBuilder.group({\r\n moneyRequest: [null, [Validators.required]],\r\n requestedAmount: [null],\r\n comment: [null, [Validators.required, Validators.maxLength(2000)]],\r\n voucher: [null, [Validators.required]],\r\n concludeEvidence: [null, [Validators.required]],\r\n });\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'moneyRequest':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n }\r\n }\r\n private patchData(): void {\r\n this.formEvidence.patchValue(this.evidence);\r\n if (this.evidence.documentReleaseEvidence) {\r\n this.fileNameVoucherEvidence = this.evidence.documentReleaseEvidence.fileName;\r\n this.formEvidence.get('voucher').setValidators(null);\r\n this.formEvidence.get('voucher').updateValueAndValidity();\r\n }\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formEvidence.get('requestedAmount').setValidators([Validators.required]);\r\n } else {\r\n this.formEvidence.get('requestedAmount').setValidators(null);\r\n }\r\n this.formEvidence.get('requestedAmount').updateValueAndValidity();\r\n }\r\n private submit(): void {\r\n if (this.formEvidence.valid) {\r\n this.update();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n }\r\n }\r\n private onFileSelectedVoucherEvidence(event) {\r\n\r\n this.fileVoucherEvidence = event.target.files[0];\r\n\r\n if (this.fileVoucherEvidence) {\r\n\r\n this.fileNameVoucherEvidence = this.fileVoucherEvidence.name;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private resetForm() {\r\n this.formEvidence.reset();\r\n this.fileNameVoucherEvidence = null;\r\n }\r\n private update(): void {\r\n const data = this.formEvidence.value as IDtoPreliminaryAudienceEvidenceDetail;\r\n \r\n this.evidence.moneyRequest = data.moneyRequest;\r\n this.evidence.requestedAmount = data.requestedAmount;\r\n this.evidence.comment = data.comment;\r\n this.evidence.concludeEvidence = data.concludeEvidence;\r\n this.spinner.show();\r\n data.preliminaryAudienceId = this.evidence.id;\r\n this.demandService.updatePreliminaryAudienceEvidenceDetail(this.evidence)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let item = x.data as IDtoPreliminaryAudienceEvidenceDetail;\r\n if(this.fileVoucherEvidence) {\r\n let name = '';\r\n name = this.isSecond == true ? `${this.evidence.typeTestName}_Segundo` : this.evidence.typeTestName\r\n this.uploadFileEvidence(item.id, true, this.fileVoucherEvidence, name);\r\n }\r\n this.onClose.next(item);\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private uploadFileEvidence(referenceId: number, isReplaced: boolean, file: File, name: string): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeId}_AudienciaJuicioPrueba${name}_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n document.referenceId = referenceId;\r\n document.folder = 'AudienciaJuicioPruebas';\r\n document.module = 'Demand';\r\n document.name = `AudienciaJuicio_${name}`;\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9kZW1hbmQvYXVkaWVuY2UtanVkZ21lbnQtZXZpZGVuY2UvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXG1vZGFsZXNcXGRlbWFuZFxcYXVkaWVuY2UtanVkZ21lbnQtZXZpZGVuY2VcXG1vZGFsLWF1ZGllbmNlLWp1ZGdtZW50LWV2aWRlbmNlLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZGVtYW5kL2F1ZGllbmNlLWp1ZGdtZW50LWV2aWRlbmNlL21vZGFsLWF1ZGllbmNlLWp1ZGdtZW50LWV2aWRlbmNlLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBQTtBQ0NGOztBRENBO0VBQ0UsYUFBQTtBQ0VGOztBREFBO0VBQ0UsaUJBQUE7QUNHRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZGVtYW5kL2F1ZGllbmNlLWp1ZGdtZW50LWV2aWRlbmNlL21vZGFsLWF1ZGllbmNlLWp1ZGdtZW50LWV2aWRlbmNlLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBwZXJjYXNle1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLmZpbGUtaW5wdXQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn0iLCIudXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { IDtoLawyerCost } from 'app/shared/models/legal/dto-lawyer-cost.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoDemand } from 'app/shared/models/legal/demand/dto-demand.model';\r\n\r\n@Component({\r\n selector: 'app-modal-demand-cost',\r\n templateUrl: './modal-demand-cost.template.html',\r\n styleUrls: ['./modal-demand-cost.style.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalDemandCostComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formCost: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n\r\n private fileNameVoucherEvidence: string;\r\n private fileVoucherEvidence: File;\r\n private catalogTypeTest: Observable;\r\n private costs: IDtoLawyerCost[];\r\n private employeeId: number;\r\n private catalogLawyers: Observable;\r\n private catalogAuthorities: Observable;\r\n private liquidationId: number;\r\n private settlement: number;\r\n private demand: IDtoDemand;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private demandService: DemandService\r\n , private spinner: NgxSpinnerService\r\n , private datePipe: DatePipe\r\n , private documentService: DocumentService) {\r\n this.initializeFormEvidence();\r\n }\r\n ngOnInit(): void {\r\n this.catalogLawyers = this.demandService.getCatalogLawyers();\r\n this.catalogAuthorities = this.demandService.getCatalogAuthorities();\r\n this.getDemandByLiquidationId();\r\n this.patchData();\r\n\r\n }\r\n private initializeFormEvidence() {\r\n this.formCost = this.formBuilder.group({\r\n calculation: [null, [Validators.required]],\r\n lawyerId: [null, [Validators.required]],\r\n authorityId: [null, [Validators.required]]\r\n });\r\n }\r\n private getDemandByLiquidationId(): void {\r\n this.spinner.show()\r\n this.demandService.getDemandBasicByliquidationId(this.liquidationId)\r\n .subscribe(\r\n (x) => {\r\n if (x.data != null) {\r\n this.demand = x.data as IDtoDemand;\r\n this.formCost.patchValue(this.demand);\r\n this.formCost.get('calculation').setValue(2);\r\n this.getRealCost();\r\n //this.patchValueGeneralData();\r\n } else {\r\n this.configGeneral.newToast('Error', 'No existe una demanda en proceso para esta liquidación', 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private patchData(): void {\r\n // this.formEvidence.patchValue(this.evidence);\r\n // if (this.evidence.documentReleaseEvidence) {\r\n // this.fileNameVoucherEvidence = this.evidence.documentReleaseEvidence.fileName;\r\n // this.formEvidence.get('voucher').setValidators(null);\r\n // this.formEvidence.get('voucher').updateValueAndValidity();\r\n // }\r\n }\r\n\r\n // private submit(): void {\r\n // if (this.formEvidence.valid) {\r\n // this.update();\r\n // } else {\r\n // this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n // }\r\n // }\r\n private onFileSelectedVoucherEvidence(event) {\r\n\r\n this.fileVoucherEvidence = event.target.files[0];\r\n\r\n if (this.fileVoucherEvidence) {\r\n\r\n this.fileNameVoucherEvidence = this.fileVoucherEvidence.name;\r\n }\r\n }\r\n private getCost(): void {\r\n this.formCost.value.calculation == 1 ? this.getEstimatedCost() : this.getRealCost();\r\n }\r\n private getEstimatedCost(): void {\r\n if (!this.formCost.valid) {\r\n this.configGeneral.newToast('Validación', 'Seleccione la información requerida para poder continuar', 'error');\r\n return;\r\n } \r\n let values = this.formCost.value;\r\n \r\n this.spinner.show()\r\n this.demandService.getEstimatedCostProceduralStagesByAuthorityAndLawyer(values.authorityId, values.lawyerId, this.liquidationId)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.costs = x.data as IDtoLawyerCost[];\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getRealCost(): void {\r\n if (!this.formCost.valid) {\r\n this.configGeneral.newToast('Validación', 'Seleccione la información requerida para poder continuar', 'error');\r\n return;\r\n } \r\n let values = this.formCost.value;\r\n \r\n this.spinner.show()\r\n this.demandService.getCostProceduralStagesByAuthorityAndLawyer(values.authorityId, values.lawyerId, this.liquidationId)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.costs = x.data as IDtoLawyerCost[];\r\n this.formCost.patchValue(this.demand);\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n // private resetForm() {\r\n // this.formEvidence.reset();\r\n // this.fileNameVoucherEvidence = null;\r\n // }\r\n\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9kZW1hbmQvZGVtYW5kLWNvc3QvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXG1vZGFsZXNcXGRlbWFuZFxcZGVtYW5kLWNvc3RcXG1vZGFsLWRlbWFuZC1jb3N0LnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZGVtYW5kL2RlbWFuZC1jb3N0L21vZGFsLWRlbWFuZC1jb3N0LnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBQTtBQ0NGOztBRENBO0VBQ0UsYUFBQTtBQ0VGOztBREFBO0VBQ0UsaUJBQUE7QUNHRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZGVtYW5kL2RlbWFuZC1jb3N0L21vZGFsLWRlbWFuZC1jb3N0LnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBwZXJjYXNle1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLmZpbGUtaW5wdXQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn0iLCIudXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoOfferAdmissionEvidenceDetail } from 'app/shared/models/legal/demand/offer-admission-evidence-detail.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\n\r\n@Component({\r\n selector: 'app-modal-offter-admission-evidences',\r\n templateUrl: './modal-offter-admission-evidences.template.html',\r\n styleUrls: ['./modal-offter-admission-evidences.style.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModaloOffterAdmissionEvidencesComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formEvidence: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Listas */\r\n private listOfferAdmissionEvidences = new Array() as IDtoOfferAdmissionEvidenceDetail[];\r\n\r\n private fileNameVoucherEvidence: string;\r\n private fileVoucherEvidence: File;\r\n private catalogTypeTest: Observable;\r\n private offerAdmissionEvidenceId: number;\r\n private employeeId: number;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private demandService: DemandService\r\n , private spinner: NgxSpinnerService\r\n , private datePipe: DatePipe\r\n , private documentService: DocumentService) {\r\n this.initializeFormEvidence();\r\n }\r\n ngOnInit(): void {\r\n this.catalogTypeTest = this.demandService.getCatalogTypeTests();\r\n this.getEvidences();\r\n }\r\n private initializeFormEvidence() {\r\n this.formEvidence = this.formBuilder.group({\r\n typeTestId: [null, [Validators.required]],\r\n evidenceDateTime: [null, [Validators.required]],\r\n voucherEvidence: [null, [Validators.required]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formEvidence.valid) {\r\n this.save();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n }\r\n }\r\n private onFileSelectedVoucherEvidence(event) {\r\n\r\n this.fileVoucherEvidence = event.target.files[0];\r\n\r\n if (this.fileVoucherEvidence) {\r\n\r\n this.fileNameVoucherEvidence = this.fileVoucherEvidence.name;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private save(): void {\r\n const data = this.formEvidence.value as IDtoOfferAdmissionEvidenceDetail;\r\n let exist = this.listOfferAdmissionEvidences.find((x) => x.typeTestId == data.typeTestId);\r\n if (exist) {\r\n this.configGeneral.newToast('Validación', 'La prueba seleccionada ya ha sido agregada en esta demanda. Seleccione otra', 'error');\r\n return;\r\n }\r\n this.spinner.show();\r\n data.offerAdmissionEvidenceId = this.offerAdmissionEvidenceId;\r\n this.demandService.addOfferAdmissionEvidenceDetail(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let item = x.data as IDtoOfferAdmissionEvidenceDetail;\r\n this.catalogTypeTest.subscribe(i => {\r\n let c = i.filter(o => o.id == item.typeTestId)[0];\r\n this.uploadFileEvidence(item.id, false, this.fileVoucherEvidence, c.name);\r\n });\r\n this.getEvidences();\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getEvidences(): void {\r\n this.spinner.show();\r\n this.demandService.getOfferAdmissionEvidenceDetailByOfferAdmissionEvidenceId(this.offerAdmissionEvidenceId)\r\n .subscribe(\r\n (x) => {\r\n this.listOfferAdmissionEvidences = x;\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n\r\n private delete(item: IDtoOfferAdmissionEvidenceDetail): void {\r\n this.demandService.deleteDetailEvidence(item.id)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.documentService.deleteDocument(item.id, item.typeTestName).subscribe((d) =>{\r\n this.configGeneral.notificationSuccessError(x)\r\n });\r\n this.getEvidences();\r\n }\r\n },\r\n (errMessage) => {\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private uploadFileEvidence(referenceId: number, isReplaced: boolean, file: File, name: string): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeId}_ComprobanteAdmisionPrueba${name}_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n document.referenceId = referenceId;\r\n document.folder = 'OfrecimientoAdmisionPruebas';\r\n document.module = 'Demand';\r\n document.name = name;\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\nbs-datepicker-container {\\n z-index: 9999 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9kZW1hbmQvb2ZmdGVyLWFkbWlzc2lvbi1ldmlkZW5jZXMvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXG1vZGFsZXNcXGRlbWFuZFxcb2ZmdGVyLWFkbWlzc2lvbi1ldmlkZW5jZXNcXG1vZGFsLW9mZnRlci1hZG1pc3Npb24tZXZpZGVuY2VzLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZGVtYW5kL29mZnRlci1hZG1pc3Npb24tZXZpZGVuY2VzL21vZGFsLW9mZnRlci1hZG1pc3Npb24tZXZpZGVuY2VzLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBQTtBQ0NGOztBRENBO0VBQ0UsYUFBQTtBQ0VGOztBREFBO0VBQ0UsaUJBQUE7QUNHRjs7QUREQTtFQUNFLHdCQUFBO0FDSUYiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9tb2RhbGVzL2RlbWFuZC9vZmZ0ZXItYWRtaXNzaW9uLWV2aWRlbmNlcy9tb2RhbC1vZmZ0ZXItYWRtaXNzaW9uLWV2aWRlbmNlcy5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwcGVyY2FzZXtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcbi5maWxlLWlucHV0IHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcbi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG59XHJcbmJzLWRhdGVwaWNrZXItY29udGFpbmVyIHtcclxuICB6LWluZGV4OiA5OTk5ICFpbXBvcnRhbnQ7XHJcbn0iLCIudXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5cbmJzLWRhdGVwaWNrZXItY29udGFpbmVyIHtcbiAgei1pbmRleDogOTk5OSAhaW1wb3J0YW50O1xufSJdfQ== */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoOfferAdmissionEvidenceDetail } from 'app/shared/models/legal/demand/offer-admission-evidence-detail.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { MatRadioChange } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'app-modal-release-evidence',\r\n templateUrl: './modal-release-evidence.template.html',\r\n styleUrls: ['./modal-release-evidence.style.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalReleaseEvidenceComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formEvidence: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Listas */\r\n private listOfferAdmissionEvidences = new Array() as IDtoOfferAdmissionEvidenceDetail[];\r\n\r\n private fileNameVoucherEvidence: string;\r\n private fileVoucherEvidence: File;\r\n private catalogTypeTest: Observable;\r\n private evidence: IDtoOfferAdmissionEvidenceDetail;\r\n private employeeId: number;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private demandService: DemandService\r\n , private spinner: NgxSpinnerService\r\n , private datePipe: DatePipe\r\n , private documentService: DocumentService) {\r\n this.initializeFormEvidence();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.patchData();\r\n }\r\n private initializeFormEvidence() {\r\n this.formEvidence = this.formBuilder.group({\r\n moneyRequest: [null, [Validators.required]],\r\n requestedAmount: [null],\r\n comment: [null, [Validators.required, Validators.maxLength(2000)]],\r\n voucher: [null, [Validators.required]],\r\n });\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'moneyRequest':\r\n this.makeRequiredFields($event.value);\r\n break;\r\n }\r\n }\r\n private patchData(): void {\r\n this.formEvidence.patchValue(this.evidence);\r\n if (this.evidence.documentReleaseEvidence) {\r\n this.fileNameVoucherEvidence = this.evidence.documentReleaseEvidence.fileName;\r\n this.formEvidence.get('voucher').setValidators(null);\r\n this.formEvidence.get('voucher').updateValueAndValidity();\r\n }\r\n }\r\n private makeRequiredFields(value: boolean): void {\r\n if (value) {\r\n this.formEvidence.get('requestedAmount').setValidators([Validators.required]);\r\n } else {\r\n this.formEvidence.get('requestedAmount').setValidators(null);\r\n }\r\n this.formEvidence.get('requestedAmount').updateValueAndValidity();\r\n }\r\n private submit(): void {\r\n if (this.formEvidence.valid) {\r\n this.update();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n }\r\n }\r\n private onFileSelectedVoucherEvidence(event) {\r\n\r\n this.fileVoucherEvidence = event.target.files[0];\r\n\r\n if (this.fileVoucherEvidence) {\r\n\r\n this.fileNameVoucherEvidence = this.fileVoucherEvidence.name;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private resetForm() {\r\n this.formEvidence.reset();\r\n this.fileNameVoucherEvidence = null;\r\n }\r\n private update(): void {\r\n const data = this.formEvidence.value as IDtoOfferAdmissionEvidenceDetail;\r\n \r\n this.evidence.moneyRequest = data.moneyRequest;\r\n this.evidence.requestedAmount = data.requestedAmount;\r\n this.evidence.comment = data.comment;\r\n\r\n this.spinner.show();\r\n data.offerAdmissionEvidenceId = this.evidence.id;\r\n this.demandService.updateOfferAdmissionEvidenceDetail(this.evidence)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let item = x.data as IDtoOfferAdmissionEvidenceDetail;\r\n if(this.fileVoucherEvidence) {\r\n this.uploadFileEvidence(item.id, true, this.fileVoucherEvidence, this.evidence.typeTestName);\r\n }\r\n this.onClose.next(item);\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private uploadFileEvidence(referenceId: number, isReplaced: boolean, file: File, name: string): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeId}_DesahogoPrueba${name}_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n document.referenceId = referenceId;\r\n document.folder = 'DesahogoPruebas';\r\n document.module = 'Demand';\r\n document.name = `Desahogo_${name}`;\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9kZW1hbmQvb2ZmdGVyLXJlbGVhc2UtZXZpZGVuY2UvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXG1vZGFsZXNcXGRlbWFuZFxcb2ZmdGVyLXJlbGVhc2UtZXZpZGVuY2VcXG1vZGFsLXJlbGVhc2UtZXZpZGVuY2Uuc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvbW9kYWxlcy9kZW1hbmQvb2ZmdGVyLXJlbGVhc2UtZXZpZGVuY2UvbW9kYWwtcmVsZWFzZS1ldmlkZW5jZS5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQUE7QUNDRjs7QURDQTtFQUNFLGFBQUE7QUNFRjs7QURBQTtFQUNFLGlCQUFBO0FDR0YiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9tb2RhbGVzL2RlbWFuZC9vZmZ0ZXItcmVsZWFzZS1ldmlkZW5jZS9tb2RhbC1yZWxlYXNlLWV2aWRlbmNlLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBwZXJjYXNle1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLmZpbGUtaW5wdXQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn0iLCIudXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { IDtoOfferAdmissionEvidenceDetail } from 'app/shared/models/legal/demand/offer-admission-evidence-detail.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { IDtoPreliminaryAudienceEvidenceDetail } from 'app/shared/models/legal/demand/dto-preliminary-audience-evidence-detail.model';\r\n\r\n@Component({\r\n selector: 'app-modal-preliminary-audience-evidences',\r\n templateUrl: './modal-preliminary-audience-evidences.template.html',\r\n styleUrls: ['./modal-preliminary-audience-evidences.style.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalPreliminaryAudienceEvidencesComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formEvidence: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Listas */\r\n private listEvidences = new Array() as IDtoPreliminaryAudienceEvidenceDetail[];\r\n\r\n private fileNameVoucherEvidence: string;\r\n private fileVoucherEvidence: File;\r\n private catalogTypeTest: Observable;\r\n private preliminaryAudienceId: number;\r\n private employeeId: number;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private demandService: DemandService\r\n , private spinner: NgxSpinnerService\r\n , private datePipe: DatePipe\r\n , private documentService: DocumentService) {\r\n this.initializeFormEvidence();\r\n }\r\n ngOnInit(): void {\r\n this.catalogTypeTest = this.demandService.getCatalogTypeTests();\r\n this.getEvidences();\r\n }\r\n private initializeFormEvidence() {\r\n this.formEvidence = this.formBuilder.group({\r\n typeTestId: [null, [Validators.required]],\r\n evidenceDateTime: [null, [Validators.required]],\r\n voucherEvidence: [null, [Validators.required]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formEvidence.valid) {\r\n this.save();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n }\r\n }\r\n private onFileSelectedVoucherEvidence(event) {\r\n\r\n this.fileVoucherEvidence = event.target.files[0];\r\n\r\n if (this.fileVoucherEvidence) {\r\n\r\n this.fileNameVoucherEvidence = this.fileVoucherEvidence.name;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private save(): void {\r\n const data = this.formEvidence.value as IDtoPreliminaryAudienceEvidenceDetail;\r\n let exist = this.listEvidences.find((x) => x.typeTestId == data.typeTestId);\r\n if (exist) {\r\n this.configGeneral.newToast('Validación', 'La prueba seleccionada ya ha sido agregada en esta demanda. Seleccione otra', 'error');\r\n return;\r\n }\r\n this.spinner.show();\r\n data.preliminaryAudienceId = this.preliminaryAudienceId;\r\n this.demandService.addPreliminaryAudienceEvidenceDetail(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let item = x.data as IDtoPreliminaryAudienceEvidenceDetail;\r\n this.catalogTypeTest.subscribe(i => {\r\n let c = i.filter(o => o.id == item.typeTestId)[0];\r\n this.uploadFileEvidence(item.id, false, this.fileVoucherEvidence, c.name);\r\n });\r\n this.getEvidences();\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getEvidences(): void {\r\n this.spinner.show();\r\n this.demandService.getPreliminaryAudienceEvidenceDetailByPreliminaryAudienceId(this.preliminaryAudienceId)\r\n .subscribe(\r\n (x) => {\r\n this.listEvidences = x;\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n\r\n private delete(item: IDtoPreliminaryAudienceEvidenceDetail): void {\r\n this.demandService.deletePreliminaryAudienceEvidenceDetail(item.id)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.documentService.deleteDocument(item.id, item.typeTestName).subscribe((d) =>{\r\n this.configGeneral.notificationSuccessError(x)\r\n });\r\n this.getEvidences();\r\n }\r\n },\r\n (errMessage) => {\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private uploadFileEvidence(referenceId: number, isReplaced: boolean, file: File, name: string): void {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = file.name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.employeeId}_ComprobanteAudienciaPreliminarPrueba${name}_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n document.referenceId = referenceId;\r\n document.folder = 'AudienciaPreliminar';\r\n document.module = 'Demand';\r\n document.name = name;\r\n document.acceptDuplicate = false;\r\n document.isReplaced = isReplaced;\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n let document = res.data as IDtoDocument;\r\n //this.addModuleLog(document.id, 'addDocument', 'documents');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n\\nbs-datepicker-container {\\n z-index: 9999 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9kZW1hbmQvcHJlbGltaW5hcnktYXVkaWVuY2UtZXZpZGVuY2VzL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxtb2RhbGVzXFxkZW1hbmRcXHByZWxpbWluYXJ5LWF1ZGllbmNlLWV2aWRlbmNlc1xcbW9kYWwtcHJlbGltaW5hcnktYXVkaWVuY2UtZXZpZGVuY2VzLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZGVtYW5kL3ByZWxpbWluYXJ5LWF1ZGllbmNlLWV2aWRlbmNlcy9tb2RhbC1wcmVsaW1pbmFyeS1hdWRpZW5jZS1ldmlkZW5jZXMuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlCQUFBO0FDQ0Y7O0FEQ0E7RUFDRSxhQUFBO0FDRUY7O0FEQUE7RUFDRSxpQkFBQTtBQ0dGOztBRERBO0VBQ0Usd0JBQUE7QUNJRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZGVtYW5kL3ByZWxpbWluYXJ5LWF1ZGllbmNlLWV2aWRlbmNlcy9tb2RhbC1wcmVsaW1pbmFyeS1hdWRpZW5jZS1ldmlkZW5jZXMuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cHBlcmNhc2V7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG4uZmlsZS1pbnB1dCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufVxyXG5icy1kYXRlcGlja2VyLWNvbnRhaW5lciB7XHJcbiAgei1pbmRleDogOTk5OSAhaW1wb3J0YW50O1xyXG59IiwiLnVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5maWxlLWlucHV0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuXG5icy1kYXRlcGlja2VyLWNvbnRhaW5lciB7XG4gIHotaW5kZXg6IDk5OTkgIWltcG9ydGFudDtcbn0iXX0= */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { DemandService } from 'app/views/appviews/demand.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { IDtoPreliminaryAudienceEvidenceDetail } from 'app/shared/models/legal/demand/dto-preliminary-audience-evidence-detail.model';\r\n\r\n@Component({\r\n selector: 'app-modal-restart-demand',\r\n templateUrl: './modal-restart-demand.template.html',\r\n styleUrls: ['./modal-restart-demand.style.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalRestartDemandComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private form: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n\r\n private liquidationId: number;\r\n private stage: string;\r\n private catalogProceduralStages: IDtoCatalog[];\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private demandService: DemandService\r\n , private spinner: NgxSpinnerService\r\n , private datePipe: DatePipe\r\n , private documentService: DocumentService) {\r\n this.initializeFormEvidence();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n switch (this.stage) {\r\n case 'Cita conciliatoria':\r\n case 'Recepción de la demanda':\r\n this.catalogProceduralStages = [{ id: 1, name: 'Cita conciliatoria' }] as IDtoCatalog[];\r\n break;\r\n case 'Contestación de la demanda':\r\n case 'Ofrecimiento y admisión de pruebas':\r\n case 'Audiencia de desahogo de pruebas':\r\n case 'Alegatos':\r\n case 'Laudos':\r\n this.catalogProceduralStages = [{ id: 1, name: 'Cita conciliatoria' }, { id: 1, name: 'Recepción de la demanda' }] as IDtoCatalog[];\r\n break;\r\n case 'Audiencia Preeliminar':\r\n case 'Audiencia de Juicio':\r\n this.catalogProceduralStages = [{ id: 1, name: 'Audiencia Preeliminar' }] as IDtoCatalog[];\r\n break;\r\n default:\r\n break;\r\n }\r\n // if (this.stage == 'Cita conciliatoria' || this.stage == 'Recepción de la demanda') {\r\n // this.catalogProceduralStages = [{ id: 1, name: 'Cita conciliatoria' }] as IDtoCatalog[];\r\n // }\r\n\r\n }\r\n private initializeFormEvidence() {\r\n this.form = this.formBuilder.group({\r\n stage: [null, [Validators.required]],\r\n });\r\n }\r\n private submit(): void {\r\n if (this.form.valid) {\r\n this.restartProceduralStages();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n }\r\n }\r\n private restartProceduralStages(): void {\r\n this.spinner.show()\r\n this.demandService.restartProceduralStages(this.liquidationId, this.form.value.stage)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.configGeneral.newToast('Éxito', x.message, 'success');\r\n this.onClose.next(true);\r\n this.bsModalRef.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","module.exports = \".uppercase {\\n text-transform: uppercase;\\n}\\n\\n.file-input {\\n display: none;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9kZW1hbmQvcmVzdGFydC1kZW1hbmQvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXG1vZGFsZXNcXGRlbWFuZFxccmVzdGFydC1kZW1hbmRcXG1vZGFsLXJlc3RhcnQtZGVtYW5kLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZGVtYW5kL3Jlc3RhcnQtZGVtYW5kL21vZGFsLXJlc3RhcnQtZGVtYW5kLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBQTtBQ0NGOztBRENBO0VBQ0UsYUFBQTtBQ0VGOztBREFBO0VBQ0UsaUJBQUE7QUNHRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZGVtYW5kL3Jlc3RhcnQtZGVtYW5kL21vZGFsLXJlc3RhcnQtZGVtYW5kLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBwZXJjYXNle1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLmZpbGUtaW5wdXQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn0iLCIudXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { RecruitmentService } from 'app/views/appviews/recruitment/recruitment.service';\r\nimport { EmployeeService } from 'app/views/appviews/employee.service';\r\nimport { IDtoEmployeeShippingAddress } from 'app/shared/models/employee/dto-employee-shipping-address.model';\r\nimport { IDtoJobCandidateBasic } from 'app/shared/models/employee/dto-jobcandidate-basic.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-modal-basic-data',\r\n styleUrls: ['./modal-basic-data.style.scss'],\r\n templateUrl: './modal-basic-data.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalBasicDataComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formBasicData: FormGroup;\r\n private uKey: string;\r\n /** Catalogos */\r\n private catalogTowns: ISelect[];\r\n private catalogStates: ISelect[];\r\n private address: IDtoEmployeeShippingAddress;\r\n private employee: IDtoJobCandidateBasic;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private recruitmentService: RecruitmentService\r\n , private employeeService: EmployeeService\r\n , private spinner: NgxSpinnerService) {\r\n this.initializeForm();\r\n this.getCatalogStates();\r\n }\r\n ngOnInit(): void {\r\n this.getEmployeeShippingAddress(this.uKey);\r\n }\r\n private getCatalogStates(): void {\r\n this.recruitmentService.getCatalogStates().subscribe((res) => {\r\n this.catalogStates = res;\r\n });\r\n }\r\n private getCatalogTowns(id: string): void {\r\n this.recruitmentService.getCatalogTowns(id).subscribe((res) => {\r\n this.formBasicData.get('townId').setValue(null);\r\n this.catalogTowns = res;\r\n this.formBasicData.get('townId').setValue(this.address.townId.toString());\r\n });\r\n }\r\n private initializeForm() {\r\n this.formBasicData = this.formBuilder.group({\r\n street: [null, [Validators.required, Validators.maxLength(100)]],\r\n interiorNumber: [null, [Validators.maxLength(10)]],\r\n externalNumber: [null, [Validators.required, Validators.maxLength(10)]],\r\n suburb: [null, [Validators.required, Validators.maxLength(50)]],\r\n townId: [null, [Validators.required]],\r\n state: [null, [Validators.required]],\r\n postalCode: [null, [Validators.required, Validators.maxLength(6), Validators.minLength(5)]],\r\n reference: [null, [Validators.maxLength(300)]],\r\n email: [null, [Validators.required, Validators.email, Validators.maxLength(100)]],\r\n personalNumber: [null, [Validators.required, Validators.minLength(10), Validators.maxLength(10)]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formBasicData.valid) {\r\n let dto = this.formBasicData.value as IDtoEmployeeShippingAddress;\r\n dto.jobCandidateId = this.address.jobCandidateId;\r\n dto.stateId = Number(dto.state);\r\n this.updateEmployeeShippingAddress(dto);\r\n this.updateEmployeeEmailAndPersonalNumber(dto);\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formBasicData);\r\n }\r\n }\r\n private getEmployeeShippingAddress(uKey: string): void {\r\n this.employeeService.getEmployeeShippingAddressByUKey(uKey).subscribe((res) => {\r\n if (res == null) {\r\n this.configGeneral.newToast('Error', 'No existe una dirección de envío valida', 'error');\r\n } else {\r\n this.address = res;\r\n this.address.state = this.address.stateId.toString();\r\n this.formBasicData.patchValue(res);\r\n this.getCatalogTowns(this.address.stateId.toString());\r\n }\r\n this.formBasicData.get('email').setValue(this.employee.email);\r\n this.formBasicData.get('personalNumber').setValue(this.employee.personalNumber);\r\n });\r\n }\r\n private updateEmployeeShippingAddress(dto: IDtoEmployeeShippingAddress): void {\r\n this.spinner.show();\r\n this.employeeService.updateEmployeeShippingAddress(dto)\r\n .subscribe(\r\n (x) => {\r\n this.configGeneral.notificationSuccessError(x)\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private updateEmployeeEmailAndPersonalNumber(dto: IDtoEmployeeShippingAddress): void {\r\n this.spinner.show();\r\n let ent = {} as IDtoJobCandidateBasic;\r\n ent.id = this.employee.id;\r\n ent.personalNumber = dto.personalNumber;\r\n ent.email = dto.email;\r\n this.employeeService.updateEmployeeEmailAndPersonalNumber(ent)\r\n .subscribe(\r\n (x) => {\r\n if(this.configGeneral.notificationSuccessError(x)) {\r\n this.employee.personalNumber = ent.personalNumber;\r\n this.employee.email = ent.email;\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9lbXBsb3llZXMvYmFzaWMtZGF0YS9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcbW9kYWxlc1xcZW1wbG95ZWVzXFxiYXNpYy1kYXRhXFxtb2RhbC1iYXNpYy1kYXRhLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZW1wbG95ZWVzL2Jhc2ljLWRhdGEvbW9kYWwtYmFzaWMtZGF0YS5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZW1wbG95ZWVzL2Jhc2ljLWRhdGEvbW9kYWwtYmFzaWMtZGF0YS5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcclxuICB9IiwiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufSJdfQ== */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { InabilityService } from 'app/views/appviews/request/inability.service';\r\nimport { IDtoEmployee } from 'app/shared/models/employee/dto-employee.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { HolidayService } from 'app/views/appviews/request/holiday.service';\r\nimport { SecurityService } from '../../../shared/services/security.service';\r\nimport { WorkLeaveService } from 'app/views/appviews/request/workLeave.service';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { EmployeeService } from 'app/views/appviews/employee.service';\r\nimport { IMyDateModel } from 'angular-mydatepicker';\r\nimport { LiquidationService } from 'app/views/appviews/liquidation.service';\r\n\r\n@Component({\r\n selector: 'app-modal-employees',\r\n templateUrl: './modal-employees.template.html',\r\n styleUrls: ['./modal-employees.style.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalEmployeesComponet implements OnInit {\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Catalogos */\r\n private catalogZones: Observable;\r\n private listEmployees: IDtoEmployee[]\r\n private listEmployeesTemp: IDtoEmployee[]\r\n private search: string;\r\n private module: string;\r\n private employeeIds: number[];\r\n /**Securty */\r\n private showRoles: any;\r\n private employeeIniId: string;\r\n private pickerOptions = {\r\n dateFormat: 'dd.mm.yyyy',\r\n dateRange: false\r\n }\r\n private init = new Date();\r\n private end = new Date();\r\n @ViewChild(DatatableComponent, { static: false }) tableEmployees: DatatableComponent;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private spinner: NgxSpinnerService\r\n , private inabilityService: InabilityService\r\n , private holidayService: HolidayService\r\n , private securityService: SecurityService\r\n , private dismissalService: WorkLeaveService\r\n , private configGeneral: AppConfig\r\n , private employeeService: EmployeeService\r\n , private liquidationService: LiquidationService) {\r\n this.init.setDate(this.init.getDate() - 5);\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n if (this.showRoles !== '') {\r\n this.employeeIniId = this.showRoles.employeeId;\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.getListEmployeeActive();\r\n this.onClose = new Subject();\r\n }\r\n\r\n // private onDateChangedInit(event: IMyDateModel): void {\r\n // this.init = event.singleDate; // Guardar la fecha seleccionada en la variable\r\n // }\r\n // private onDateChangedEnd(event: IMyDateModel): void {\r\n // this.end = event.singleDate; // Guardar la fecha seleccionada en la variable\r\n // }\r\n private getListEmployeeActive(): void {\r\n this.spinner.show();\r\n if (this.module == 'Retroactives') {\r\n this.employeeService.getListEmployeesByIds(this.employeeIds).subscribe((res) => {\r\n this.listEmployees = res;\r\n this.listEmployeesTemp = res;\r\n this.spinner.hide();\r\n });\r\n } else if (this.module == 'Liquidation') {\r\n let i = this.configGeneral.dateFormat(this.init, 'yyyy-mm-dd')\r\n let e = this.configGeneral.dateFormat(this.end, 'yyyy-mm-dd')\r\n this.employeeService.getListDismissalEmployeesByBossId(i, e).subscribe((res) => {\r\n this.listEmployees = res;\r\n this.listEmployeesTemp = res;\r\n this.spinner.hide();\r\n });\r\n } else {\r\n this.inabilityService.getListActiveEmployeesByBossId(this.employeeIniId).subscribe((res) => {\r\n this.listEmployees = res;\r\n this.listEmployeesTemp = res;\r\n this.spinner.hide();\r\n });\r\n }\r\n }\r\n private getListDismissalEmployees(): void {\r\n this.spinner.show();\r\n if (this.module == 'Liquidation') {\r\n let i = this.configGeneral.dateFormat(this.init, 'yyyy-mm-dd')\r\n let e = this.configGeneral.dateFormat(this.end, 'yyyy-mm-dd')\r\n this.employeeService.getListDismissalEmployeesByBossId(i, e).subscribe((res) => {\r\n this.listEmployees = res;\r\n this.listEmployeesTemp = res;\r\n this.spinner.hide();\r\n });\r\n }\r\n }\r\n private updateFilter() {\r\n if (this.search === undefined) {\r\n return;\r\n }\r\n\r\n const val = this.search.toLowerCase();\r\n // const temp = this.listEmployeesTemp.filter((x: any) => x.employeeName.toLowerCase().startsWith(val));\r\n //|| x.employeeMarkName.toLowerCase().startsWith(val))\r\n // || x.zone.toLowerCase().startsWith(val));\r\n const temp = this.listEmployeesTemp.filter(function (d) {\r\n return d.employeeName.toLowerCase().indexOf(val) !== -1 || !val;\r\n });\r\n this.listEmployees = temp;\r\n this.tableEmployees.offset = 0;\r\n }\r\n private navigateTo(row: IDtoEmployee): void {\r\n this.onClose.next(row);\r\n this.bsModalRef.hide();\r\n }\r\n private getEmployeeData(row: IDtoEmployee): void {\r\n this.spinner.show();\r\n if (this.module == 'Liquidation') {\r\n this.employeeService.getEmployeeDataDismissalById(Number(row.requisitionId)).subscribe((res) => {\r\n let employee = res;\r\n this.spinner.hide();\r\n this.hasLiquidation(employee)\r\n });\r\n } else {\r\n this.holidayService.getEmployeeData(row.id.toString()).subscribe((res) => {\r\n let employee = res.data as IDtoEmployee;\r\n this.spinner.hide();\r\n this.hasDismissalWaiting(employee)\r\n // this.onClose.next(employee);\r\n // this.bsModalRef.hide();\r\n });\r\n }\r\n }\r\n private hasDismissalWaiting(employee: IDtoEmployee): void {\r\n this.spinner.show();\r\n this.dismissalService.hasDismissalWaiting(employee.id).subscribe((res) => {\r\n let value = res.data;\r\n this.spinner.hide();\r\n if (value == true) {\r\n this.configGeneral.newToast('Error', 'El empleado seleccionado tiene actualmente una baja en espera. Seleccione otro empleado', 'error');\r\n } else {\r\n this.onClose.next(employee);\r\n this.bsModalRef.hide();\r\n }\r\n });\r\n }\r\n private hasLiquidation(employee: IDtoEmployee): void {\r\n this.spinner.show();\r\n this.liquidationService.hasLiquidation(employee.id, employee.requisitionId).subscribe((res) => {\r\n let value = res.data;\r\n this.spinner.hide();\r\n if (value == true) {\r\n this.configGeneral.newToast('Error', 'El empleado seleccionado ya tiene una liquidación. Seleccione otro empleado', 'error');\r\n } else {\r\n this.onClose.next(employee);\r\n this.bsModalRef.hide();\r\n }\r\n });\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","module.exports = \"bs-datepicker-container {\\n z-index: 9999 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9lbXBsb3llZXMvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXG1vZGFsZXNcXGVtcGxveWVlc1xcbW9kYWwtZW1wbG95ZWVzLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZW1wbG95ZWVzL21vZGFsLWVtcGxveWVlcy5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usd0JBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZW1wbG95ZWVzL21vZGFsLWVtcGxveWVlcy5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiYnMtZGF0ZXBpY2tlci1jb250YWluZXIge1xyXG4gIHotaW5kZXg6IDk5OTkgIWltcG9ydGFudDtcclxufSIsImJzLWRhdGVwaWNrZXItY29udGFpbmVyIHtcbiAgei1pbmRleDogOTk5OSAhaW1wb3J0YW50O1xufSJdfQ== */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject } from 'rxjs';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { EmployeeService } from 'app/views/appviews/employee.service';\r\nimport { IDtoEmployeeSalaryHistory } from 'app/shared/models/employee/dto-employee-salary-history.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { saveAs } from 'file-saver';\r\nimport { IDtoEmail } from 'app/shared/models/dto-email.model';\r\nimport { EmailService } from 'app/views/appviews/email.service';\r\nimport { EnumMovementType } from 'app/shared/enums/budget-movement-type.enum';\r\n\r\n@Component({\r\n selector: 'app-modal-salary-format',\r\n styleUrls: ['./modal-salary-format.style.scss'],\r\n templateUrl: './modal-salary-format.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalSalaryFormatComponet implements OnInit {\r\n /**Variable de trasporte de datos */\r\n private errorMessages: any;\r\n private result: IResult;\r\n private employeeId: number;\r\n private email: string;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Listas */\r\n private salaryHistories = new Array() as IDtoEmployeeSalaryHistory[];\r\n constructor(private bsModalRef: BsModalRef\r\n , private employeeService: EmployeeService\r\n , private configGeneral: AppConfig\r\n , private identityService: IdentityService\r\n , private spinner: NgxSpinnerService\r\n , private emailService: EmailService) {\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.getEmployeeSalaryHistories();\r\n }\r\n private getEmployeeSalaryHistories(): void {\r\n this.employeeService.getEmployeeSalaryHistoriesbyEmployeeId(this.employeeId)\r\n .subscribe(\r\n (x) => {\r\n this.salaryHistories = x.data as IDtoEmployeeSalaryHistory[];\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private downloadFile(item: IDtoEmployeeSalaryHistory): void {\r\n this.spinner.show();\r\n this.employeeService.downloadFileEmployeeSalaryUpdate(item.id).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n this.spinner.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n \r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private sentFormatUpdateSalary(item: IDtoEmployeeSalaryHistory): void {\r\n this.spinner.show();\r\n let message = '';\r\n let email = {} as IDtoEmail;\r\n switch (item.movementType) {\r\n case EnumMovementType.Contratacion:\r\n message = `Estimado Colaborador (a)

A continuación se adjunta el formato de Ajuste de salario donde se desglosa tu salario el cual es de ${item.dailySalary}, favor de revisar, firmar y entregar a tu jefe directo ó coordinador de marca.

Si tiene alguna duda con respecto a su propuesta favor de revisarlo con recursos humanos.

`;\r\n break;\r\n case EnumMovementType.Reubicacion:\r\n case EnumMovementType.Salario:\r\n message = `Estimado Colaborador (a)

A continuación se adjunta el formato de Ajuste de salario donde se desglosa tu salario el cual es de ${item.salaryAdjust}, favor de revisar, firmar y entregar a tu jefe directo ó coordinador de marca.

Si tiene alguna duda con respecto a su propuesta favor de revisarlo con recursos humanos.

`;\r\n break;\r\n }\r\n\r\n email.fromSubject = 'Redpromex';\r\n email.userId = null;\r\n email.subject = 'Propuesta Salarial';\r\n email.toRol = 'Usuario';\r\n email.message = message;\r\n email.usedRecord = item.id;\r\n email.to = this.email;\r\n email.template = 'update_salary_format';\r\n this.emailService.sendEmail(email).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'RiskPremiums';\r\n dto.module = 'companies';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9lbXBsb3llZXMvc2FsYXJ5LWZvcm1hdC9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcbW9kYWxlc1xcZW1wbG95ZWVzXFxzYWxhcnktZm9ybWF0XFxtb2RhbC1zYWxhcnktZm9ybWF0LnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZW1wbG95ZWVzL3NhbGFyeS1mb3JtYXQvbW9kYWwtc2FsYXJ5LWZvcm1hdC5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvZW1wbG95ZWVzL3NhbGFyeS1mb3JtYXQvbW9kYWwtc2FsYXJ5LWZvcm1hdC5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcclxuICB9IiwiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufSJdfQ== */\"","import { IResult } from 'app/shared/models/result.model';\r\nimport { AfterViewInit, Component, ElementRef, OnInit, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { IDtoJobCandidateBasic } from 'app/shared/models/employee/dto-jobcandidate-basic.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoEvent } from 'app/shared/models/incident/dto-event.model';\r\nimport { IDtoTicket } from 'app/shared/models/incident/dto-ticket.model';\r\nimport { IncidentService } from 'app/views/appviews/incident.service';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { StorageService } from 'app/shared/services/storage.service';\r\nimport { IDtoTicketResourceLocation } from 'app/shared/models/incident/dto-ticket-resource-location.model';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { MessageService } from 'app/views/appviews/message.service';\r\nimport { IDtoMessageDetail } from 'app/shared/models/dto-message-detail.model';\r\nimport { IDtoTicketResource } from 'app/shared/models/incident/dto-ticket-resource.model';\r\nimport { EmployeeService } from 'app/views/appviews/employee.service';\r\n\r\n@Component({\r\n selector: 'modal-incident',\r\n templateUrl: './modal.incident.template.html',\r\n styleUrls: ['./modal.incident.style.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\n\r\nexport class ModalIncidentComponent implements OnInit, AfterViewInit {\r\n private title: string;\r\n private businessPhone: string;\r\n private accion: string;\r\n private eventId: number;\r\n private onClose: Subject;\r\n private resourceLocation = {} as IDtoTicketResourceLocation;\r\n private resource = {} as IDtoTicketResource;\r\n private event = {} as IDtoEvent;\r\n private tiket = {} as IDtoTicket;\r\n private result: IResult;\r\n //private list: any[] = [];\r\n private listResources: IDtoTicketResource[];\r\n private listLocations: IDtoCatalog[];\r\n private errorReceived: boolean;\r\n private formModalIncident: FormGroup;\r\n employee = {} as IDtoJobCandidateBasic;\r\n location: IDtoTicketResourceLocation;\r\n @ViewChild('locationId', { static: false }) private locationId: ElementRef;\r\n constructor(private incidentService: IncidentService\r\n , private bsModalRef: BsModalRef\r\n , private storageService: StorageService\r\n , private formBuilder: FormBuilder\r\n , private messageService: MessageService\r\n , private employeeService: EmployeeService\r\n , private configGeneral: AppConfig) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n let requisition = this.storageService.retrieve('requisition');\r\n this.onClose = new Subject();\r\n this.formModalIncident = this.formBuilder.group({\r\n ticketResourceId: [null, Validators.required],\r\n locationId: [requisition.customerId],\r\n txtDescripcion: [null, Validators.required]\r\n });\r\n \r\n this.initializeSelect();\r\n \r\n }\r\n ngAfterViewInit() {\r\n if (this.locationId != undefined) {\r\n (this.locationId).setDisabledState(true);\r\n }\r\n }\r\n public onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n\r\n private initializeSelect() {\r\n this.incidentService.getCatalogResource().subscribe(resources => {\r\n this.listResources = resources;\r\n });\r\n this.incidentService.getCatalogLocations().subscribe(locations => {\r\n this.listLocations = locations;\r\n });\r\n }\r\n\r\n private onSelect(item: IDtoTicketResource) {\r\n if (item != null || item !== undefined) {\r\n let form = this.formModalIncident.value;\r\n if (form.locationId == null || form.ticketResourceId == null) {\r\n this.configGeneral.newToast('¡Error!', 'Seleccione los datos del formulario para poder continuar', 'error');\r\n return;\r\n }\r\n let res = this.listResources.find(r => r.ticketResourceId == form.ticketResourceId);\r\n\r\n this.location = res.ticketResourceLocations.find(r => r.locationId == form.locationId && r.ticketResourceId == form.ticketResourceId);\r\n if(this.location == null) {\r\n this.configGeneral.newToast('¡Error!', 'No existe una atención de ticket para la ubicación seleccionada. Seleccione otra ubicación', 'error');\r\n return;\r\n }\r\n this.resource = res;\r\n this.resourceLocation = this.location;\r\n this.event.title = res.description;\r\n this.tiket.title = res.description;\r\n this.tiket.ticketResourceId = res.ticketResourceId;\r\n //this.getResourceLocation();\r\n }\r\n }\r\n private getResourceLocation() {\r\n this.incidentService.getResourceLocation(this.resourceLocation.locationId, this.resourceLocation.ticketResourceId)\r\n .catch((err) => this.handleError(err))\r\n .subscribe((data) => {\r\n if(data.isCorrect) {\r\n this.resourceLocation = data.data as IDtoTicketResourceLocation;\r\n this.configGeneral.newToast('Éxito!', data.message, 'success');\r\n } else {\r\n this.configGeneral.newToast('¡Error!', data.message, 'error');\r\n this.resourceLocation = null;\r\n }\r\n });\r\n }\r\n private save(): void {\r\n if (this.formModalIncident.valid) {\r\n if (this.eventId > 0) {\r\n this.addTicket();\r\n } else {\r\n this.addEvent();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Validación!', 'Capture todos los datos para poder continuar', 'warning');\r\n }\r\n }\r\n\r\n private addEvent(): Observable {\r\n if (this.resource == null) {\r\n this.configGeneral.newToast('¡Error!', 'Seleccione una falla o incidente de la lista para poder continuar', 'error');\r\n return;\r\n }\r\n this.event.description = this.tiket.description;\r\n this.event.ownerEmpId = this.employee.id;\r\n this.event.status = 1;\r\n this.event.locationId = this.location.locationId;\r\n this.event.type = 'Incident';\r\n\r\n this.tiket.ticketSubCategoryId = this.resource.ticketSubCategoryId;\r\n this.tiket.ticketCategoryId = this.resource.ticketCategoryId;\r\n this.tiket.allocatorEmpId = this.resource.managerEmpId;\r\n\r\n this.tiket.assignedEmpId = this.resource.reviewerType == 'User' ? this.resourceLocation.managerEmpId : this.employee.bossId;\r\n this.tiket.locationId = this.location.locationId;\r\n this.tiket.ownerEmpId = this.employee.id;\r\n this.tiket.priority = 'Baja';\r\n this.tiket.status = 1;\r\n this.tiket.type = 'Incident';\r\n this.event.tickets = [];\r\n this.event.tickets.push(this.tiket);\r\n const addEventObservable = this.incidentService.addEvent(this.event);\r\n addEventObservable\r\n .subscribe(\r\n (x) => {\r\n this.result = x;\r\n if (this.result.isCorrect === true) {\r\n this.event = this.result.data as IDtoEvent;\r\n this.sendMessage(this.event.tickets[0].ticketId, this.event.title, this.event.personalNumber, this.tiket.assignedEmpId, this.event.uKey);\r\n //this.sendMessage(this.event.tickets[0].ticketId, this.event.title, '9933890285', this.tiket.assignedEmpId, this.event.uKey);\r\n this.event.ownerEmp = `${this.employee.firstName} ${this.employee.lastName} ${this.employee.secondLastName}`;\r\n this.onClose.next(this.event);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.handleError = errMessage.messages);\r\n return addEventObservable;\r\n }\r\n\r\n private addTicket(): Observable {\r\n if (this.resource == null) {\r\n this.configGeneral.newToast('¡Error!', 'Seleccione una falla o incidente de la lista para poder continuar', 'error');\r\n return;\r\n }\r\n\r\n this.tiket.ticketSubCategoryId = this.resource.ticketSubCategoryId;\r\n this.tiket.ticketCategoryId = this.resource.ticketCategoryId;\r\n this.tiket.allocatorEmpId = this.resource.managerEmpId;\r\n\r\n this.tiket.assignedEmpId = this.resource.reviewerType == 'User' ? this.resourceLocation.managerEmpId : this.employee.bossId;\r\n this.tiket.locationId = this.location.locationId;\r\n this.tiket.ownerEmpId = this.employee.id;\r\n this.tiket.priority = 'Baja';\r\n this.tiket.status = 1;\r\n this.tiket.eventId = this.eventId;\r\n this.tiket.type = 'Incident';\r\n const addTicketObservable = this.incidentService.addTicket(this.tiket);\r\n addTicketObservable\r\n .subscribe(\r\n (x) => {\r\n this.result = x;\r\n if (this.result.isCorrect === true) {\r\n this.tiket = this.result.data as IDtoTicket;\r\n this.tiket.ownerEmp = `${this.employee.firstName} ${this.employee.lastName} ${this.employee.secondLastName}`;\r\n this.tiket.reviewerType = this.resource.reviewerType;\r\n //this.sendMessage(this.tiket.ticketId, this.tiket.title, '9933890285', this.tiket.assignedEmpId, this.tiket.uKey);\r\n this.sendMessage(this.tiket.ticketId, this.tiket.title, this.tiket.personalNumber, this.tiket.assignedEmpId, this.tiket.uKey);\r\n this.onClose.next(this.tiket);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.handleError = errMessage.messages);\r\n return addTicketObservable;\r\n }\r\n\r\n private handleError(error: any) {\r\n this.errorReceived = true;\r\n return Observable.throw(error);\r\n }\r\n private sendMessage(ticketId: number, title: string, personalNumber: string, assignedEmpId: number, uKey: string): void {\r\n this.employeeService.getBusinessPhone(uKey)\r\n .subscribe(\r\n (x) => {\r\n this.businessPhone = x;\r\n let dto = {} as IDtoMessageDetail;\r\n dto.recipientId = x == null ? personalNumber : x;\r\n dto.messageSent = `usted tienen asignado un incidente con número de folio ${ticketId} y asunto ${title}. Favor de acceder a http://rednovation.azurewebsites.net/ para su atención.`;\r\n dto.employeeId = assignedEmpId;\r\n dto.template = 'incidente_nuevo';\r\n this.messageService.sendMessage(dto)\r\n .subscribe(\r\n (x) => {\r\n },\r\n (errMessage) => {\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n },\r\n (errMessage) => {\r\n this.configGeneral.newToast('Error', errMessage.message, 'error');\r\n });\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvaW5jaWRlbnQvbW9kYWwuaW5jaWRlbnQuc3R5bGUuc2NzcyJ9 */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { LiquidationService } from 'app/views/appviews/liquidation.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoDiscountDismissal } from 'app/shared/models/legal/dto-discount-dismissal.model';\r\nimport { SecurityService } from 'app/shared/services/security.service';\r\n\r\n@Component({\r\n selector: 'app-modal-discount-dismissal',\r\n templateUrl: './modal-discount-dismissal.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalDiscountDismissalComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formDiscount: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n private catalogDiscountTypes: IDtoCatalog[];\r\n private listDiscount: IDtoDiscountDismissal[];\r\n private employeeId: number;\r\n private requisitionId: number;\r\n private userId: number;\r\n private showRoles: any;\r\n @ViewChild(DatatableComponent, { static: false }) table: DatatableComponent;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private configGeneral: AppConfig\r\n , private liquidationService: LiquidationService\r\n , private securityService: SecurityService) {\r\n this.initializeFormUserRole();\r\n this.configToast = this.configGeneral.getConfigToast();\r\n this.showRoles = this.securityService.getUserRolesStorage();\r\n if (this.showRoles !== '') {\r\n this.userId = +this.showRoles.employeeId;\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.liquidationService.getCatalogDiscountTypes() .subscribe(\r\n (x) => {\r\n this.catalogDiscountTypes = x;\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages\r\n );\r\n this.getDiscountDismissals();\r\n }\r\n private initializeFormUserRole() {\r\n this.formDiscount = this.formBuilder.group({\r\n discountTypeId: [null, [Validators.required]],\r\n value: [null, [Validators.required]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formDiscount.valid) {\r\n this.save();\r\n } else {\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n }\r\n }\r\n private save(): void {\r\n const data = this.formDiscount.value as IDtoDiscountDismissal;\r\n let discountType = this.catalogDiscountTypes.find(x => x.id == data.discountTypeId);\r\n data.codeNom = discountType.additional;\r\n data.description = discountType.name;\r\n data.employeeId = this.employeeId;\r\n data.requisitionId = this.requisitionId;\r\n data.userId = this.userId;\r\n this.liquidationService.addDiscountDismissal(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.getDiscountDismissals();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private getDiscountDismissals(): void {\r\n this.liquidationService.getDiscountDismissals(this.employeeId, this.requisitionId)\r\n .subscribe(\r\n (x) => {\r\n this.listDiscount = x;\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n \r\n private delete(item: IDtoDiscountDismissal): void {\r\n if(item.userId == this.userId) {\r\n this.liquidationService.deleteDiscountDismissal(item.id)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.getDiscountDismissals();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n } else {\r\n this.configGeneral.newToast('Validación', \"No es posible eliminar este descuento debido a restricciones de perfil.\", 'error');\r\n }\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IDtoRequisitionTracking } from 'app/shared/models/opening/dto-requisition-tracking.model';\r\nimport { RecruitmentService } from 'app/views/appviews/recruitment/recruitment.service';\r\nimport { OpeningService } from 'app/views/appviews/opening/opening.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IRecruiterComment } from 'app/shared/models/recruitment/recruiter-comment.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IDtoDocument } from 'app/shared/models/request/dto-document.model';\r\nimport { DocumentService } from 'app/shared/services/document.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { saveAs } from 'file-saver';\r\n\r\n@Component({\r\n selector: 'app-modal-requisition-tracking',\r\n styleUrls: ['./modal-requisition-tracking.style.scss'],\r\n templateUrl: './modal-requisition-tracking.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalRequisitionTrackingComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private form: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n private requisitionTracking: IDtoRequisitionTracking;\r\n private title: string;\r\n private profile: string;\r\n private admissionDateTitle: string;\r\n private hireDateTitle: string;\r\n /** Catalogos */\r\n private catalogSources: Observable;\r\n private catalogTrackingStatus: ISelect[];\r\n private fileName = '';\r\n private document = {} as IDtoDocument;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private recruitmentService: RecruitmentService\r\n , private openingService: OpeningService\r\n , private identityService: IdentityService\r\n , private spinner: NgxSpinnerService\r\n , private documentService: DocumentService\r\n , private datePipe: DatePipe) {\r\n this.initializeForm();\r\n }\r\n ngOnInit(): void {\r\n this.catalogSources = this.recruitmentService.getCatalogSources();\r\n this.recruitmentService.getCatalogTrackingStatus().subscribe(t => {\r\n this.catalogTrackingStatus = t.filter(item => !item.text.includes('Laborando en Red') && !item.text.includes('Baja'));\r\n\r\n });\r\n this.catalogSources.subscribe(x => {\r\n this.requisitionTracking.trackingStatusId = this.requisitionTracking.trackingStatusId.toString();\r\n this.requisitionTracking.recruitmentSourceId = this.requisitionTracking.recruitmentSourceId != undefined ? this.requisitionTracking.recruitmentSourceId.toString() : null;\r\n this.requisitionTracking.hireDate = this.requisitionTracking.hireDate != undefined ? new Date(this.requisitionTracking.hireDate) : null;\r\n this.requisitionTracking.admissionDate = this.requisitionTracking.admissionDate != undefined ? new Date(this.requisitionTracking.admissionDate) : null;\r\n this.form.patchValue(this.requisitionTracking);\r\n\r\n if (this.profile != 'Operaciones') {\r\n this.form.get('operationObservation').setValidators(null);\r\n this.form.get('operationObservation').updateValueAndValidity();\r\n }\r\n });\r\n this.getLatesDocumentVersion();\r\n if (this.requisitionTracking.recruitmentSourceId != null){\r\n this.catalogSources.pipe(\r\n map(x =>\r\n x.filter(user => user.id === this.requisitionTracking.recruitmentSourceId)[0]\r\n )\r\n ).subscribe(\r\n x => this.requisitionTracking.recruitmentSource = x.text.toString()\r\n )};\r\n if (this.requisitionTracking.hireDate != null){\r\n let date = new Date(this.requisitionTracking.hireDate).toLocaleDateString('es-mx', { year:\"numeric\", month:\"long\", day:\"numeric\"})\r\n this.hireDateTitle = date;};\r\n if (this.requisitionTracking.admissionDate != null){\r\n let date1 = new Date(this.requisitionTracking.admissionDate).toLocaleDateString('es-mx', { year:\"numeric\", month:\"long\", day:\"numeric\"})\r\n this.admissionDateTitle = date1;};\r\n this.onClose = new Subject();\r\n }\r\n private initializeForm() {\r\n this.form = this.formBuilder.group({\r\n recruitingObservations: [null, [Validators.required, Validators.maxLength(500)]],\r\n recruitmentSourceId: [null, [Validators.required]],\r\n interviewObservations: [null, [Validators.required, Validators.maxLength(500)]],\r\n hireDate: [null, [Validators.required]],\r\n admissionDate: [null, [Validators.required]],\r\n finalRecruitmentObservation: [null, [Validators.required, Validators.maxLength(500)]],\r\n trackingStatusId: [null, [Validators.required]],\r\n operationObservation: [null, [Validators.required, Validators.maxLength(200)]],\r\n admissionDateTitle: null,\r\n hireDateTitle: null,\r\n trackingStatusTitle: null,\r\n recruitmentSourceTitle: null\r\n });\r\n }\r\n private submit(): void {\r\n if (this.form.valid) {\r\n this.updateTrackingStatusJobCandidate();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.form);\r\n }\r\n }\r\n private update(): void {\r\n const dto = this.form.value as IDtoRequisitionTracking;\r\n this.requisitionTracking.trackingStatusId = dto.trackingStatusId;\r\n this.requisitionTracking.recruitmentSourceId = dto.recruitmentSourceId;\r\n this.requisitionTracking.hireDate = dto.hireDate;\r\n this.requisitionTracking.admissionDate = dto.admissionDate;\r\n this.requisitionTracking.recruitingObservations = dto.recruitingObservations;\r\n this.requisitionTracking.interviewObservations = dto.interviewObservations;\r\n this.requisitionTracking.finalRecruitmentObservation = dto.finalRecruitmentObservation;\r\n this.requisitionTracking.operationObservation = dto.operationObservation;\r\n this.openingService.updateRequisitionTracking(this.requisitionTracking)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let t = this.catalogTrackingStatus.filter(r => r.id == this.requisitionTracking.trackingStatusId)[0];\r\n this.requisitionTracking.trackingStatus = t.text;\r\n this.addModuleLog();\r\n this.onClose.next(this.requisitionTracking);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private updateTrackingStatusJobCandidate(): void {\r\n let dto = {} as IRecruiterComment;\r\n dto.trackingStatusId = this.form.value.trackingStatusId;\r\n dto.jobCandidateId = this.requisitionTracking.jobCandidateId;\r\n this.recruitmentService.updateTrackingStatusJobCandidate(dto)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.update();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private updateOperationObservation(): void {\r\n let dto = {} as IDtoRequisitionTracking;\r\n dto.id = this.requisitionTracking.id;\r\n dto.operationObservation = this.form.value.operationObservation;\r\n this.openingService.updateOperationObservationRequisitionTracking(dto)\r\n .subscribe(\r\n (x) => {\r\n this.configGeneral.notificationSuccessError(x)\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private addModuleLog(): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'RequisitionTrackings';\r\n dto.module = 'RequisitionDetail';\r\n dto.action = 'tracking';\r\n dto.registryAffectedId = this.requisitionTracking.id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n getDisabledValueRecruitment() {\r\n if (this.profile == 'Operaciones') {\r\n return true;\r\n }\r\n }\r\n\r\n getDisabledValue() {\r\n if (this.profile == 'Reclutamiento'){\r\n return true\r\n };\r\n\r\n if (this.requisitionTracking.operationObservation == null || this.requisitionTracking.operationObservation == '') {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n private onFileChange(event) {\r\n event.value = '';\r\n }\r\n private handleFileInput(files: FileList) {\r\n //this.fileName = files.item(0).name;\r\n this.upload(files);\r\n }\r\n private upload(files: FileList): void {\r\n if (files != undefined) {\r\n this.spinner.show();\r\n let document = {} as IDtoDocument;\r\n const fileName = files.item(0).name;\r\n let sp = fileName.split('.').pop();\r\n let fileNameNew = `${this.requisitionTracking.jobCandidateId}_SeguimientoRequisición_${this.datePipe.transform(new Date(), 'ddMMyyyy')}.${sp}`;\r\n document.fileName = fileNameNew;\r\n this.fileName = fileNameNew;\r\n document.referenceId = this.requisitionTracking.id;\r\n document.folder = 'Requisition';\r\n document.module = 'RequisitionTrackingsOperation';\r\n document.name = \"SeguimientoRequisiciónOperacion\";\r\n document.acceptDuplicate = true;\r\n const file = files.item(0);\r\n this.documentService.addDocument(document, file).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n this.configGeneral.newToast('Éxito', res.message, 'success');\r\n this.document = res.data as IDtoDocument;\r\n this.fileName = this.document.fileName;\r\n //this.addModuleLog(this.customer.id, 'addContract');\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n }\r\n this.spinner.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n }\r\n private downloadFile(): void {\r\n this.documentService.downloadFile(this.document.id).subscribe((res) => {\r\n if (res.isCorrect === true) {\r\n const file = res.data as any;\r\n const blob = this.configGeneral.b64toBlob(file.fileContents, file.contentType, '');\r\n saveAs(blob, file.fileDownloadName);\r\n //this.addModuleLog(this.document.id, 'downloadFile');\r\n this.spinner.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', res.message, 'error');\r\n this.spinner.hide();\r\n }\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private getLatesDocumentVersion(): void {\r\n console.log('Documento', this.document);\r\n this.documentService.getLatesDocumentVersion(this.requisitionTracking.id, 'SeguimientoRequisiciónOperacion').subscribe(res => {\r\n if (res.data != undefined){\r\n this.document = res.data as IDtoDocument;\r\n this.fileName = this.document.fileName;\r\n }\r\n })\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvb3BlbmluZy9yZXF1aXNpdGlvbi10cmFja2luZy9tb2RhbC1yZXF1aXNpdGlvbi10cmFja2luZy5zdHlsZS5zY3NzIn0= */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { OrganizationService } from 'app/views/appviews/organization/organization.service';\r\nimport { IDtoRiskPremium } from 'app/shared/models/organization/dto-risk-premium.model';\r\nimport { IDtoCompany } from 'app/shared/models/organization/dto-company.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { RecruitmentService } from 'app/views/appviews/recruitment/recruitment.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-modal-company',\r\n styleUrls: ['./modal-company.style.scss'],\r\n templateUrl: './modal-company.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalCompanyComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formCompany: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private companyId?: number;\r\n private company: IDtoCompany;\r\n private action: string;\r\n /**Listas */\r\n private riskPremiums = new Array() as IDtoRiskPremium[];\r\n private catalogStates: Observable;\r\n private catalogTowns: ISelect[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableModules: DatatableComponent;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private organizationService: OrganizationService\r\n , private configGeneral: AppConfig\r\n , private identityService: IdentityService\r\n , private spinner: NgxSpinnerService\r\n , private recruitmentService: RecruitmentService) {\r\n this.initializeFormRiskPremium();\r\n this.catalogStates = this.recruitmentService.getCatalogStates();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n if (this.action === 'edit') {\r\n let s = {} as ISelect;\r\n s.id = this.company.stateId;\r\n this.company.stateId = this.company.stateId.toString();\r\n this.company.townId = this.company.townId.toString();\r\n this.getCatalogTowns(s);\r\n this.formCompany.patchValue(this.company);\r\n }\r\n }\r\n private initializeFormRiskPremium() {\r\n this.formCompany = this.formBuilder.group({\r\n codeNom: [null, []],\r\n rfc: [null, [Validators.required, Validators.maxLength(13)]],\r\n address: [null, [Validators.required, Validators.maxLength(255)]],\r\n name: [null, [Validators.required, Validators.maxLength(150)]],\r\n shortName: [null, [Validators.required, Validators.maxLength(50)]],\r\n isActive: [null, [Validators.required]],\r\n isVisible: [null, [Validators.required]],\r\n description: [null, [Validators.maxLength(255)]],\r\n payrollTaxPercentage: [null, [Validators.required]],\r\n interiorNumber: [null, Validators.maxLength(10)],\r\n externalNumber: [null, [Validators.required, Validators.maxLength(10)]],\r\n postalCode: [null, [Validators.required, Validators.minLength(5), Validators.maxLength(5)]],\r\n suburb: [null, [Validators.required, Validators.maxLength(50)]],\r\n stateId: [null, Validators.required],\r\n townId: [null, Validators.required],\r\n activity: [null, [Validators.required, Validators.maxLength(100)]],\r\n bankAccount: [null, [Validators.required, Validators.maxLength(18)]]\r\n });\r\n }\r\n private getCatalogTowns(dto: ISelect): void {\r\n this.catalogTowns = null;\r\n this.formCompany.get('townId').setValue(null);\r\n if (dto === undefined) {\r\n return;\r\n }\r\n this.recruitmentService.getCatalogTownsByStateIdCodeNomStructure(dto.id).subscribe(t =>{\r\n this.catalogTowns = t;\r\n });\r\n }\r\n private submit(): void {\r\n\r\n if (this.formCompany.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formCompany);\r\n }\r\n }\r\n private save(): void {\r\n this.spinner.show();\r\n const dto = this.formCompany.value as IDtoCompany;\r\n dto.codeNomState = dto.stateId.toString();\r\n dto.codeNomTown = this.catalogTowns.filter(p => p.id == dto.townId)[0].additional;\r\n this.organizationService.addCompany(dto)\r\n .subscribe(\r\n (x) => {\r\n this.spinner.hide();\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let c = x.data as IDtoCompany;\r\n this.addModuleLog(c.id, 'new');\r\n this.onClose.next(c);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n this.spinner.show();\r\n const dto = this.formCompany.value as IDtoCompany;\r\n dto.codeNomState = dto.stateId.toString();\r\n dto.codeNomTown = this.catalogTowns.filter(p => p.id == dto.townId)[0].additional;\r\n dto.id = this.company.id;\r\n this.organizationService.updateCompany(dto)\r\n .subscribe(\r\n (x) => {\r\n this.spinner.hide();\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.addModuleLog(dto.id, 'update');\r\n this.onClose.next(dto);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Companies';\r\n dto.module = 'companies';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9vcmdhbml6YXRpb24vY29tcGFueS9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcbW9kYWxlc1xcb3JnYW5pemF0aW9uXFxjb21wYW55XFxtb2RhbC1jb21wYW55LnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvb3JnYW5pemF0aW9uL2NvbXBhbnkvbW9kYWwtY29tcGFueS5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvb3JnYW5pemF0aW9uL2NvbXBhbnkvbW9kYWwtY29tcGFueS5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcclxuICB9IiwiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufSJdfQ== */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { Subject } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { OrganizationService } from 'app/views/appviews/organization/organization.service';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IDtoEmployerRegisterOffice } from 'app/shared/models/organization/dto-employer-register-office.model';\r\n\r\n@Component({\r\n selector: 'app-modal-employer-register-office',\r\n styleUrls: ['./modal-employer-register-office.style.scss'],\r\n templateUrl: './modal-employer-register-office.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalEmployerRegisterOfficeComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formEmployerRegisterOffice: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private employerRegister: IDtoEmployerRegisterOffice;\r\n private projectCustomerId?: number;\r\n private action = 'add';\r\n /**Listas */\r\n private employerRegisterOffices = new Array() as IDtoEmployerRegisterOffice[];\r\n /** Catalogos */\r\n private catalogZones: ISelect[];\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private organizationService: OrganizationService\r\n , private configGeneral: AppConfig) {\r\n this.initializeFormRiskPremium();\r\n }\r\n ngOnInit(): void {\r\n this.organizationService.getCatalogZones().subscribe(res => {\r\n this.catalogZones = res;\r\n this.organizationService.getEmployerRegisterOfficesByProjectCustomerId(this.projectCustomerId).subscribe(res => {\r\n this.employerRegisterOffices = res.data as IDtoEmployerRegisterOffice[];\r\n this.employerRegisterOffices.forEach(element => {\r\n element.zone = this.catalogZones.filter(f => f.id == element.zoneId.toString())[0].text;\r\n });\r\n });\r\n });\r\n this.onClose = new Subject();\r\n }\r\n private initializeFormRiskPremium() {\r\n this.formEmployerRegisterOffice = this.formBuilder.group({\r\n imss: [null, [Validators.required, Validators.maxLength(11)]],\r\n guide: [null, [Validators.required, Validators.maxLength(5)]],\r\n location: [null, [Validators.required, Validators.maxLength(3)]],\r\n zoneId: [null, [Validators.required]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formEmployerRegisterOffice.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formEmployerRegisterOffice);\r\n }\r\n }\r\n private save(): void {\r\n const dto = this.formEmployerRegisterOffice.value as IDtoEmployerRegisterOffice;\r\n dto.projectCustomerId = this.projectCustomerId;\r\n this.organizationService.addEmployerRegisterOffice(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let e = x.data as IDtoEmployerRegisterOffice;\r\n e.zone = this.catalogZones.filter(f => f.id == e.zoneId.toString())[0].text;\r\n this.employerRegisterOffices.push(e);\r\n this.employerRegisterOffices = [...this.employerRegisterOffices];\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n const dto = this.formEmployerRegisterOffice.value as IDtoEmployerRegisterOffice;\r\n dto.projectCustomerId = this.employerRegister.projectCustomerId;\r\n dto.id = this.employerRegister.id;\r\n this.organizationService.updateEmployerRegisterOffice(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let index = this.employerRegisterOffices.indexOf(this.employerRegister)\r\n if (index > -1) {\r\n dto.zone = this.catalogZones.filter(f => f.id == dto.zoneId.toString())[0].text;\r\n this.employerRegisterOffices.splice(index, 1);\r\n this.employerRegisterOffices.push(dto);\r\n this.employerRegisterOffices = [...this.employerRegisterOffices];\r\n }\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private selectRow(item: IDtoEmployerRegisterOffice): void {\r\n this.employerRegister = item;\r\n this.employerRegister.zoneId = this.employerRegister.zoneId.toString();\r\n this.formEmployerRegisterOffice.patchValue(this.employerRegister);\r\n this.action = 'edit';\r\n }\r\n private resetForm(): void {\r\n this.formEmployerRegisterOffice.reset();\r\n this.action = 'add';\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9vcmdhbml6YXRpb24vZW1wbG95ZXItcmVnaXN0ZXItb2ZmaWNlL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxtb2RhbGVzXFxvcmdhbml6YXRpb25cXGVtcGxveWVyLXJlZ2lzdGVyLW9mZmljZVxcbW9kYWwtZW1wbG95ZXItcmVnaXN0ZXItb2ZmaWNlLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvb3JnYW5pemF0aW9uL2VtcGxveWVyLXJlZ2lzdGVyLW9mZmljZS9tb2RhbC1lbXBsb3llci1yZWdpc3Rlci1vZmZpY2Uuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9tb2RhbGVzL29yZ2FuaXphdGlvbi9lbXBsb3llci1yZWdpc3Rlci1vZmZpY2UvbW9kYWwtZW1wbG95ZXItcmVnaXN0ZXItb2ZmaWNlLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { Subject } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { OrganizationService } from 'app/views/appviews/organization/organization.service';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IDtoEmployerRegister } from 'app/shared/models/organization/dto-employer-register.model';\r\n\r\n@Component({\r\n selector: 'app-modal-employer-register',\r\n styleUrls: ['./modal-employer-register.style.scss'],\r\n templateUrl: './modal-employer-register.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalEmployerRegisterComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formEmployerRegister: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private employerRegister: IDtoEmployerRegister;\r\n private customerId?: number;\r\n private action = 'add';\r\n /**Listas */\r\n private employerRegisters = new Array() as IDtoEmployerRegister[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableEmployerRegisters: DatatableComponent;\r\n /** Catalogos */\r\n private catalogZones: ISelect[];\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private organizationService: OrganizationService\r\n , private configGeneral: AppConfig) {\r\n this.initializeFormRiskPremium();\r\n }\r\n ngOnInit(): void {\r\n this.organizationService.getCatalogZones().subscribe(res => {\r\n this.catalogZones = res;\r\n this.organizationService.getEmployerRegistersByCustomerId(this.customerId).subscribe(res => {\r\n this.employerRegisters = res.data as IDtoEmployerRegister[];\r\n this.employerRegisters.forEach(element => {\r\n element.zone = this.catalogZones.filter(f => f.id == element.zoneId.toString())[0].text;\r\n });\r\n });\r\n });\r\n this.onClose = new Subject();\r\n }\r\n private initializeFormRiskPremium() {\r\n this.formEmployerRegister = this.formBuilder.group({\r\n imss: [null, [Validators.required, Validators.maxLength(11)]],\r\n guide: [null, [Validators.required, Validators.maxLength(5)]],\r\n location: [null, [Validators.required, Validators.maxLength(3)]],\r\n zoneId: [null, [Validators.required]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formEmployerRegister.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formEmployerRegister);\r\n }\r\n }\r\n private save(): void {\r\n const dto = this.formEmployerRegister.value as IDtoEmployerRegister;\r\n dto.customerId = this.customerId;\r\n this.organizationService.addEmployerRegister(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let e = x.data as IDtoEmployerRegister;\r\n e.zone = this.catalogZones.filter(f => f.id == e.zoneId.toString())[0].text;\r\n this.employerRegisters.push(e);\r\n this.employerRegisters = [...this.employerRegisters];\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n const dto = this.formEmployerRegister.value as IDtoEmployerRegister;\r\n dto.customerId = this.employerRegister.customerId;\r\n dto.id = this.employerRegister.id;\r\n this.organizationService.updateEmployerRegister(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let index = this.employerRegisters.indexOf(this.employerRegister)\r\n if (index > -1) {\r\n dto.zone = this.catalogZones.filter(f => f.id == dto.zoneId.toString())[0].text;\r\n this.employerRegisters.splice(index, 1);\r\n this.employerRegisters.push(dto);\r\n this.employerRegisters = [...this.employerRegisters];\r\n }\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private selectRow(item: IDtoEmployerRegister): void {\r\n this.employerRegister = item;\r\n this.employerRegister.zoneId = this.employerRegister.zoneId.toString();\r\n this.formEmployerRegister.patchValue(this.employerRegister);\r\n this.action = 'edit';\r\n }\r\n private resetForm(): void {\r\n this.formEmployerRegister.reset();\r\n this.action = 'add';\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9vcmdhbml6YXRpb24vZW1wbG95ZXItcmVnaXN0ZXIvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXG1vZGFsZXNcXG9yZ2FuaXphdGlvblxcZW1wbG95ZXItcmVnaXN0ZXJcXG1vZGFsLWVtcGxveWVyLXJlZ2lzdGVyLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvb3JnYW5pemF0aW9uL2VtcGxveWVyLXJlZ2lzdGVyL21vZGFsLWVtcGxveWVyLXJlZ2lzdGVyLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvbW9kYWxlcy9vcmdhbml6YXRpb24vZW1wbG95ZXItcmVnaXN0ZXIvbW9kYWwtZW1wbG95ZXItcmVnaXN0ZXIuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbiAgfSIsIi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0iXX0= */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoModule } from 'app/shared/models/security/dto-module.model';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { OrganizationService } from 'app/views/appviews/organization/organization.service';\r\nimport { IDtoRiskPremium } from 'app/shared/models/organization/dto-risk-premium.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\n\r\n@Component({\r\n selector: 'app-modal-risk-premium',\r\n styleUrls: ['./modal-risk-premium.style.scss'],\r\n templateUrl: './modal-risk-premium.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalRiskPremiumComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formRiskPremium: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private companyId?: number;\r\n private riskPremium: IDtoRiskPremium;\r\n private action = 'add';\r\n /**Listas */\r\n private riskPremiums = new Array() as IDtoRiskPremium[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableRiskPremiums: DatatableComponent;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private organizationService: OrganizationService\r\n , private configGeneral: AppConfig\r\n , private identityService: IdentityService) {\r\n this.initializeFormRiskPremium();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n }\r\n private initializeFormRiskPremium() {\r\n this.formRiskPremium = this.formBuilder.group({\r\n value: [null, [Validators.required]],\r\n year: [null, [Validators.required]],\r\n isActive: [null, [Validators.required]],\r\n description: [null, [Validators.maxLength(100)]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formRiskPremium.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formRiskPremium);\r\n }\r\n }\r\n private save(): void {\r\n const dto = this.formRiskPremium.value as IDtoRiskPremium;\r\n dto.companyId = this.companyId;\r\n this.organizationService.addRiskPremium(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let r = x.data as IDtoRiskPremium\r\n this.riskPremiums.push(r);\r\n this.addModuleLog(r.id, 'new');\r\n this.onClose.next(this.riskPremiums);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n const dto = this.formRiskPremium.value as IDtoRiskPremium;\r\n dto.companyId = this.riskPremium.companyId;\r\n dto.id = this.riskPremium.id;\r\n this.organizationService.updateRiskPremium(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let index = this.riskPremiums.indexOf(this.riskPremium)\r\n if (index > -1) {\r\n this.riskPremiums.splice(index, 1);\r\n this.riskPremiums.push(dto);\r\n this.onClose.next(this.riskPremiums);\r\n this.bsModalRef.hide();\r\n }\r\n this.addModuleLog(this.riskPremium.id, 'update');\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private selectRow(item: IDtoRiskPremium): void {\r\n this.riskPremium = item;\r\n this.formRiskPremium.patchValue(this.riskPremium);\r\n this.action = 'edit';\r\n }\r\n private resetForm(): void {\r\n this.formRiskPremium.reset();\r\n this.action = 'add';\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'RiskPremiums';\r\n dto.module = 'companies';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9vcmdhbml6YXRpb24vcmlzay1wcmVtaXVtL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxtb2RhbGVzXFxvcmdhbml6YXRpb25cXHJpc2stcHJlbWl1bVxcbW9kYWwtcmlzay1wcmVtaXVtLnN0eWxlLnNjc3MiLCJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvb3JnYW5pemF0aW9uL3Jpc2stcHJlbWl1bS9tb2RhbC1yaXNrLXByZW1pdW0uc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9tb2RhbGVzL29yZ2FuaXphdGlvbi9yaXNrLXByZW1pdW0vbW9kYWwtcmlzay1wcmVtaXVtLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoModule } from 'app/shared/models/security/dto-module.model';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { OrganizationService } from 'app/views/appviews/organization/organization.service';\r\nimport { IDtoRiskPremium } from 'app/shared/models/organization/dto-risk-premium.model';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoRetention } from 'app/shared/models/payroll/dto-retention.model';\r\nimport { PayrollService } from 'app/views/appviews/payroll.service';\r\nimport { SwalComponent } from '@sweetalert2/ngx-sweetalert2';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IDtoPayrollDetail } from 'app/shared/models/payroll/dto-payroll-detail.model';\r\nimport { IDtoRetentionEmail } from 'app/shared/models/payroll/dto-retention-email.model';\r\n\r\n@Component({\r\n selector: 'app-modal-retentions',\r\n styleUrls: ['./modal-retentions.style.scss'],\r\n templateUrl: './modal-retentions.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalRetentionsComponet implements OnInit {\r\n private employees: IDtoRetentionEmail[];\r\n\r\n public onClose: Subject;\r\n constructor(private bsModalRef: BsModalRef\r\n , private spinner: NgxSpinnerService\r\n , private formBuilder: FormBuilder\r\n , private payrollService: PayrollService\r\n , private configGeneral: AppConfig\r\n , private identityService: IdentityService) {\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n }\r\n private isEmpty(value){\r\n return (value == null || value.length === 0);\r\n }\r\n private save(): void {\r\n console.log(this.employees);\r\n let isSave = true;\r\n this.employees.forEach((employee) => {\r\n if (this.isEmpty(employee.bank) || this.isEmpty(employee.methodPayment)) {\r\n isSave = false;\r\n }\r\n })\r\n if (isSave) {\r\n this.onClose.next(this.employees);\r\n this.bsModalRef.hide();\r\n } else {\r\n this.configGeneral.newToast('Error', 'Ingrese la información requerida para poder continuar', 'error');\r\n }\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n \r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'PayrollDetails';\r\n dto.module = 'Payroll';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".widthName {\\n table-layout: auto;\\n width: 180px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9wYXlyb2xsL3JldGVudGlvbnMvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXG1vZGFsZXNcXHBheXJvbGxcXHJldGVudGlvbnNcXG1vZGFsLXJldGVudGlvbnMuc3R5bGUuc2NzcyIsInNyYy9hcHAvdmlld3MvbW9kYWxlcy9wYXlyb2xsL3JldGVudGlvbnMvbW9kYWwtcmV0ZW50aW9ucy5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksa0JBQUE7RUFDQSxZQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9tb2RhbGVzL3BheXJvbGwvcmV0ZW50aW9ucy9tb2RhbC1yZXRlbnRpb25zLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud2lkdGhOYW1lIHtcclxuICAgIHRhYmxlLWxheW91dDogYXV0bztcclxuICAgIHdpZHRoOiAxODBweDsgIFxyXG4gIH0iLCIud2lkdGhOYW1lIHtcbiAgdGFibGUtbGF5b3V0OiBhdXRvO1xuICB3aWR0aDogMTgwcHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { PositionService } from 'app/views/appviews/quote/position.service';\r\nimport { IDtoCommission } from 'app/shared/models/position/dto-commission.model';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\n\r\n@Component({\r\n selector: 'app-modal-commission',\r\n styleUrls: ['./modal-commission.style.scss'],\r\n templateUrl: './modal-commission.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalCommissionComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formCommission: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n private customerId: number;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n \r\n /**Listas */\r\n private commissions = new Array() as IDtoCommission[];\r\n private catalogCustomerCommissions: Observable;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private positionService: PositionService) {\r\n this.initializeFormRiskPremium();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.catalogCustomerCommissions = this.positionService.getCatalogFixedCustomerCommissionsByCustomerId(this.customerId);\r\n }\r\n private initializeFormRiskPremium() {\r\n this.formCommission = this.formBuilder.group({\r\n //name: [null, [Validators.required, Validators.maxLength(50)]],\r\n value: [null, [Validators.required]],\r\n percentage: [null, [Validators.required]],\r\n maxValue: [null],\r\n customerCommissionId: [null, [Validators.required]]\r\n });\r\n }\r\n private resetForm(): void {\r\n this.formCommission.reset();\r\n }\r\n private submit(): void {\r\n if (this.formCommission.valid) {\r\n let c = this.formCommission.value as IDtoCommission;\r\n c.percentage = Number(c.percentage);\r\n c.maxValue = Number(c.maxValue);\r\n c.value = Number(c.value);\r\n let exist = this.commissions.filter(e => e.customerCommissionId == c.customerCommissionId);\r\n if (exist.length > 0) {\r\n this.configGeneral.newToast('Validación', 'La comisión que intenta agregar ya existe', 'warning');\r\n return;\r\n }\r\n this.catalogCustomerCommissions.subscribe(catalog =>{\r\n c.name = catalog.filter(v => v.id == c.customerCommissionId)[0].name;\r\n this.commissions.push(c);\r\n this.commissions = [...this.commissions];\r\n this.resetForm();\r\n });\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formCommission);\r\n }\r\n }\r\n private remove(item: IDtoCommission): void {\r\n if (item.id > 0) {\r\n this.deleteCommission(item);\r\n } else {\r\n let index = this.commissions.indexOf(item)\r\n if (index > -1) {\r\n this.commissions.splice(index, 1);\r\n this.commissions = [...this.commissions];\r\n }\r\n }\r\n }\r\n private deleteCommission(item: IDtoCommission): void {\r\n this.positionService.deleteCommission(item.id).subscribe(x => {\r\n if(x.isCorrect) {\r\n let index = this.commissions.indexOf(item)\r\n if (index > -1) {\r\n this.commissions.splice(index, 1);\r\n this.commissions = [...this.commissions];\r\n }\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n });\r\n }\r\n private close(): void {\r\n this.onClose.next(this.commissions);\r\n this.bsModalRef.hide();\r\n }\r\n private calculateMaxValue() {\r\n let c = this.formCommission.value as IDtoCommission;\r\n let res = Math.round((c.percentage * c.value / 100) * 30);\r\n this.formCommission.get('maxValue').setValue(res);\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9wb3NpdGlvbi9jb21taXNzaW9uL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxtb2RhbGVzXFxwb3NpdGlvblxcY29tbWlzc2lvblxcbW9kYWwtY29tbWlzc2lvbi5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9tb2RhbGVzL3Bvc2l0aW9uL2NvbW1pc3Npb24vbW9kYWwtY29tbWlzc2lvbi5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvcG9zaXRpb24vY29tbWlzc2lvbi9tb2RhbC1jb21taXNzaW9uLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { OrganizationService } from 'app/views/appviews/organization/organization.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoCustomerCommission } from 'app/shared/models/position/dto-customer-commission.model';\r\nimport { PositionService } from 'app/views/appviews/quote/position.service';\r\n\r\n@Component({\r\n selector: 'app-modal-customer-commission',\r\n styleUrls: ['./modal-customer-commission.style.scss'],\r\n templateUrl: './modal-customer-commission.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalCustomerCommissionComponent implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formCustomerCommission: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private customerId: number;\r\n private customerCommission: IDtoCustomerCommission;\r\n private action: string;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private positionService: PositionService\r\n , private configGeneral: AppConfig\r\n , private organizationService: OrganizationService\r\n , private identityService: IdentityService) {\r\n this.initializeFormProject();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n if (this.action === 'edit') {\r\n this.formCustomerCommission.patchValue(this.customerCommission);\r\n }\r\n }\r\n private initializeFormProject() {\r\n this.formCustomerCommission = this.formBuilder.group({\r\n name: [null, [Validators.required, Validators.maxLength(50)]],\r\n description:[null, [Validators.maxLength(100)]],\r\n isActive: [null, [Validators.required]],\r\n classification: [null, [Validators.required]],\r\n integrate: [null, [Validators.required]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formCustomerCommission.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formCustomerCommission);\r\n }\r\n }\r\n private save(): void {\r\n const dto = this.formCustomerCommission.value as IDtoCustomerCommission;\r\n dto.customerId = this.customerId;\r\n this.positionService.addCustomerCommission(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let p = x.data as IDtoCustomerCommission;\r\n this.addModuleLog(p.id, 'new');\r\n this.onClose.next(true);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n const dto = this.formCustomerCommission.value as IDtoCustomerCommission;\r\n dto.id = this.customerCommission.id;\r\n dto.customerId = this.customerCommission.customerId;\r\n this.positionService.updateCustomerCommission(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.addModuleLog(dto.id, 'update');\r\n this.onClose.next(true);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'CustomerCommissions';\r\n dto.module = 'CustomerCommissions';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9wb3NpdGlvbi9jdXN0b21lci1jb21taXNzaW9uL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxtb2RhbGVzXFxwb3NpdGlvblxcY3VzdG9tZXItY29tbWlzc2lvblxcbW9kYWwtY3VzdG9tZXItY29tbWlzc2lvbi5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9tb2RhbGVzL3Bvc2l0aW9uL2N1c3RvbWVyLWNvbW1pc3Npb24vbW9kYWwtY3VzdG9tZXItY29tbWlzc2lvbi5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvcG9zaXRpb24vY3VzdG9tZXItY29tbWlzc2lvbi9tb2RhbC1jdXN0b21lci1jb21taXNzaW9uLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { Subject } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-modal-massive-update',\r\n styleUrls: ['./modal-massive-update.style.scss'],\r\n templateUrl: './modal-massive-update.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalMassiveUpdateComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formMassiveUpdate: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder) {\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.initializeFormMassiveUpdate();\r\n }\r\n private initializeFormMassiveUpdate() {\r\n this.formMassiveUpdate = this.formBuilder.group({\r\n isMassive: [null, [Validators.required]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formMassiveUpdate.valid) {\r\n let value = this.formMassiveUpdate.value.isMassive;\r\n this.onClose.next(value);\r\n this.bsModalRef.hide();\r\n }\r\n }\r\n \r\n private onCancel(): void {\r\n this.onClose.next(null);\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9wb3NpdGlvbi9tYXNzaXZlLXVwZGF0ZS9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcbW9kYWxlc1xccG9zaXRpb25cXG1hc3NpdmUtdXBkYXRlXFxtb2RhbC1tYXNzaXZlLXVwZGF0ZS5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9tb2RhbGVzL3Bvc2l0aW9uL21hc3NpdmUtdXBkYXRlL21vZGFsLW1hc3NpdmUtdXBkYXRlLnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvbW9kYWxlcy9wb3NpdGlvbi9tYXNzaXZlLXVwZGF0ZS9tb2RhbC1tYXNzaXZlLXVwZGF0ZS5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcclxuICB9IiwiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufSJdfQ== */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { IDtoProduct } from 'app/shared/models/position/dto-product.model';\r\nimport { PositionService } from 'app/views/appviews/quote/position.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\n\r\n@Component({\r\n selector: 'app-modal-product',\r\n styleUrls: ['./modal-product.style.scss'],\r\n templateUrl: './modal-product.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalProductComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formProduct: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private product: IDtoProduct;\r\n private action: string;\r\n /**Catalogos */\r\n private catalogProductTypes: Observable;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private positionService: PositionService\r\n , private configGeneral: AppConfig\r\n , private identityService: IdentityService) {\r\n this.initializeFormRiskPremium();\r\n }\r\n ngOnInit(): void {\r\n this.catalogProductTypes = this.positionService.getCatalogProductTypes();\r\n this.onClose = new Subject();\r\n if (this.action === 'edit') {\r\n this.formProduct.patchValue(this.product);\r\n }\r\n }\r\n private initializeFormRiskPremium() {\r\n this.formProduct = this.formBuilder.group({\r\n name: [null, [Validators.required, Validators.maxLength(255)]],\r\n description:[null, [Validators.maxLength(255)]],\r\n productTypeId: [null, [Validators.required]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formProduct.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formProduct);\r\n }\r\n }\r\n private save(): void {\r\n const dto = this.formProduct.value as IDtoProduct;\r\n this.positionService.addProduct(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let p = x.data as IDtoProduct;\r\n this.addModuleLog(p.id, 'new');\r\n this.onClose.next(true);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n const dto = this.formProduct.value as IDtoProduct;\r\n dto.id = this.product.id;\r\n this.positionService.updateProduct(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.addModuleLog(dto.id, 'update');\r\n this.onClose.next(true);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Products';\r\n dto.module = 'products';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9wb3NpdGlvbi9wcm9kdWN0L0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxtb2RhbGVzXFxwb3NpdGlvblxccHJvZHVjdFxcbW9kYWwtcHJvZHVjdC5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9tb2RhbGVzL3Bvc2l0aW9uL3Byb2R1Y3QvbW9kYWwtcHJvZHVjdC5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvcG9zaXRpb24vcHJvZHVjdC9tb2RhbC1wcm9kdWN0LnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoVoucher } from 'app/shared/models/position/dto-voucher.model';\r\nimport { PositionService } from 'app/views/appviews/quote/position.service';\r\n\r\n@Component({\r\n selector: 'app-modal-voucher',\r\n styleUrls: ['./modal-voucher.style.scss'],\r\n templateUrl: './modal-voucher.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalVoucherComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formVoucher: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n\r\n /**Listas */\r\n private vouchers = new Array() as IDtoVoucher[];\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private positionService: PositionService) {\r\n this.initializeFormRiskPremium();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n }\r\n private initializeFormRiskPremium() {\r\n this.formVoucher = this.formBuilder.group({\r\n name: [null, [Validators.required,Validators.maxLength(100)]],\r\n value: [null, [Validators.required]]\r\n });\r\n }\r\n private resetForm(): void {\r\n this.formVoucher.reset();\r\n }\r\n private submit(): void {\r\n if (this.formVoucher.valid) {\r\n this.vouchers.push(this.formVoucher.value);\r\n this.vouchers = [...this.vouchers];\r\n this.resetForm();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formVoucher);\r\n }\r\n }\r\n private remove(item: IDtoVoucher): void {\r\n if (item.id > 0) {\r\n this.deleteVoucher(item);\r\n } else {\r\n let index = this.vouchers.indexOf(item)\r\n if (index > -1) {\r\n this.vouchers.splice(index, 1);\r\n this.vouchers = [...this.vouchers];\r\n }\r\n }\r\n }\r\n private deleteVoucher(item: IDtoVoucher): void {\r\n this.positionService.deleteVoucher(item.id).subscribe(x => {\r\n if (x.isCorrect) {\r\n let index = this.vouchers.indexOf(item)\r\n if (index > -1) {\r\n this.vouchers.splice(index, 1);\r\n this.vouchers = [...this.vouchers];\r\n }\r\n } else {\r\n this.configGeneral.newToast('Error', x.message, 'error');\r\n }\r\n });\r\n }\r\n private close(): void {\r\n this.onClose.next(this.vouchers);\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9wb3NpdGlvbi92b3VjaGVyL0M6XFxSZXBvc1xcUmVkbm92YXRpb25cXHNyY1xcMDEgV2ViXFxQcmVzZW50YXRpb24uV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXHZpZXdzXFxtb2RhbGVzXFxwb3NpdGlvblxcdm91Y2hlclxcbW9kYWwtdm91Y2hlci5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9tb2RhbGVzL3Bvc2l0aW9uL3ZvdWNoZXIvbW9kYWwtdm91Y2hlci5zdHlsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvcG9zaXRpb24vdm91Y2hlci9tb2RhbC12b3VjaGVyLnN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gIH0iLCIubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Il19 */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\nimport { OrganizationService } from 'app/views/appviews/organization/organization.service';\r\nimport { IDtoWorkingDay } from 'app/shared/models/position/dto-working-day.model';\r\nimport { WorkingDayService } from 'app/views/appviews/quote/working-day.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\n\r\n@Component({\r\n selector: 'app-modal-working-day',\r\n styleUrls: ['./modal-working-day.style.scss'],\r\n templateUrl: './modal-working-day.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalWorkingDayComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formWorkingDay: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private workingDay: IDtoWorkingDay;\r\n private action: string;\r\n /**Catalogos */\r\n private catalogCompanies: Observable;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private workingDayService: WorkingDayService\r\n , private configGeneral: AppConfig\r\n , private organizationService: OrganizationService\r\n , private identityService: IdentityService) {\r\n this.initializeFormRiskPremium();\r\n }\r\n ngOnInit(): void {\r\n this.catalogCompanies = this.organizationService.getCatalogCompanies();\r\n this.onClose = new Subject();\r\n if (this.action === 'edit') {\r\n this.formWorkingDay.patchValue(this.workingDay);\r\n }\r\n }\r\n private initializeFormRiskPremium() {\r\n this.formWorkingDay = this.formBuilder.group({\r\n codeNom: [null, []],\r\n codeNomGroup: [null, []],\r\n description: [null, [Validators.required, Validators.maxLength(255)]],\r\n groupDescription:[null, [Validators.maxLength(255)]],\r\n payCompanyId: [null, [Validators.required]],\r\n sunday: [null, []],\r\n monday: [null, []],\r\n tuesday: [null, []],\r\n wednesday: [null, []],\r\n thursday: [null, []],\r\n friday: [null, []],\r\n saturday: [null, []],\r\n codeSat: [null, [Validators.required, Validators.maxLength(10)]],\r\n isActive: [null, []],\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formWorkingDay.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n this.configGeneral.touchedControls(this.formWorkingDay);\r\n }\r\n }\r\n private save(): void {\r\n const dto = this.formWorkingDay.value as IDtoWorkingDay;\r\n this.workingDayService.addWorkingDay(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n let w = x.data as IDtoWorkingDay;\r\n this.addModuleLog(w.id, 'new');\r\n this.onClose.next(true);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n const dto = this.formWorkingDay.value as IDtoWorkingDay;\r\n dto.id = this.workingDay.id;\r\n // dto.openingWorkingDayId = this.workingDay.openingWorkingDayId;\r\n this.workingDayService.updateWorkingDay(dto)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.addModuleLog(dto.id, 'update');\r\n this.onClose.next(true);\r\n this.bsModalRef.hide();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private addModuleLog(id: number, action: string): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'WorkingDays';\r\n dto.module = 'workingDays';\r\n dto.action = action;\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9wb3NpdGlvbi93b3JraW5nLWRheS9DOlxcUmVwb3NcXFJlZG5vdmF0aW9uXFxzcmNcXDAxIFdlYlxcUHJlc2VudGF0aW9uLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFx2aWV3c1xcbW9kYWxlc1xccG9zaXRpb25cXHdvcmtpbmctZGF5XFxtb2RhbC13b3JraW5nLWRheS5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9tb2RhbGVzL3Bvc2l0aW9uL3dvcmtpbmctZGF5L21vZGFsLXdvcmtpbmctZGF5LnN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvbW9kYWxlcy9wb3NpdGlvbi93b3JraW5nLWRheS9tb2RhbC13b3JraW5nLWRheS5zdHlsZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcclxuICB9IiwiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufSJdfQ== */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { RecruitmentService } from 'app/views/appviews/recruitment/recruitment.service';\r\n\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IAppearance } from 'app/shared/models/recruitment/appearance.model';\r\nimport { Subject } from 'rxjs';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n@Component({\r\n selector: 'app-modal-appearance',\r\n templateUrl: './modal-appearance.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalAppearanceComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [true];\r\n private errorMessages: any;\r\n /**Catalogos */\r\n private catalogSizes: ISelect[];\r\n private catalogPhysicalComplexion: ISelect[];\r\n private catalogShirtSizes: ISelect[];\r\n private catalogStatures: ISelect[];\r\n private catalogShoeSizes: ISelect[];\r\n private listCatalogs = new Array() as Array;\r\n private appearance: IAppearance;\r\n private module: string;\r\n private action: string;\r\n /**Formularios */\r\n private formAppearance: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Notificaciones */\r\n private configToast: any;\r\n employeeId: number;\r\n constructor(private bsModalRef: BsModalRef\r\n , private recruitmentService: RecruitmentService\r\n , private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , public snotifyService: SnotifyService\r\n , private spinner: NgxSpinnerService) {\r\n this.initializeFormAppearance();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.catalogSizes = this.listCatalogs[0];\r\n this.catalogPhysicalComplexion = this.listCatalogs[1];\r\n this.catalogStatures = this.listCatalogs[2];\r\n this.catalogShoeSizes = this.listCatalogs[3];\r\n this.catalogShirtSizes = this.listCatalogs[4];\r\n this.onClose = new Subject();\r\n if (this.appearance != null || this.appearance != undefined) {\r\n this.setAppearance();\r\n }\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private initializeFormAppearance() {\r\n this.formAppearance = this.formBuilder.group({\r\n size: [null, Validators.required],\r\n physicalComplexion: [null, Validators.required],\r\n stature: [null, Validators.required],\r\n shoeSizeId: [null, Validators.required],\r\n shirtSizeId: [null, Validators.required]\r\n });\r\n }\r\n public getError(controlName: string): any {\r\n let error = '';\r\n let obj = {} as any;\r\n const control = this.formAppearance.get(controlName);\r\n if (control.errors != null) {\r\n error = JSON.stringify(control.errors);\r\n obj = JSON.parse(error);\r\n }\r\n return obj;\r\n }\r\n save(): void {\r\n if (this.formAppearance.valid) {\r\n let isNullAppearance = this.appearance == null ? true : false;\r\n if (this.module == 'employee' || this.module == 'dashboard') {\r\n if (this.appearance == null) {\r\n this.appearance = {} as IAppearance;\r\n this.appearance.jobCandidateId = this.employeeId;\r\n }\r\n this.appearance.shirtSizeId = this.formAppearance.value.shirtSizeId;\r\n this.appearance.sizeId = this.formAppearance.value.size;\r\n this.appearance.physicalComplexionId = this.formAppearance.value.physicalComplexion;\r\n this.appearance.statureId = this.formAppearance.value.stature;\r\n this.appearance.shoeSizeId = this.formAppearance.value.shoeSizeId;\r\n this.spinner.show();\r\n if (this.module == 'dashboard' && isNullAppearance) {\r\n this.recruitmentService.addJobCandidateAppearance(this.appearance)\r\n .subscribe(\r\n (x) => {\r\n this.configGeneral.notificationSuccessError(x)\r\n this.spinner.hide();\r\n this.bsModalRef.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n } else {\r\n this.recruitmentService.updateJobCandidateAppearance(this.appearance)\r\n .subscribe(\r\n (x) => {\r\n this.configGeneral.notificationSuccessError(x)\r\n this.spinner.hide();\r\n this.bsModalRef.hide();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n } else {\r\n this.appearance = this.mapAppearance(this.formAppearance.value);\r\n this.onClose.next(this.appearance);\r\n this.bsModalRef.hide();\r\n }\r\n } else {\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n }\r\n }\r\n private setAppearance(): void {\r\n this.formAppearance.get('size').setValue(this.appearance.sizeId.toString());\r\n this.formAppearance.get('physicalComplexion').setValue(this.appearance.physicalComplexionId.toString());\r\n this.formAppearance.get('stature').setValue(this.appearance.statureId.toString());\r\n this.formAppearance.get('shoeSizeId').setValue(this.appearance.shoeSizeId.toString());\r\n this.formAppearance.get('shirtSizeId').setValue(this.appearance.shirtSizeId);\r\n }\r\n private mapAppearance(form: any): IAppearance {\r\n const data = {} as IAppearance;\r\n data.sizeId = form.size;\r\n data.physicalComplexionId = form.physicalComplexion;\r\n data.statureId = form.stature;\r\n data.shoeSizeId = form.shoeSizeId;\r\n data.shirtSizeId = form.shirtSizeId;\r\n return data;\r\n }\r\n}\r\n","import { OnDestroy, OnInit, Component } from '@angular/core';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { Subject } from 'rxjs';\r\nimport { IEmploymentHistoryItem } from 'app/shared/models/recruitment/employment-history-item.model';\r\nimport { RecruitmentService } from 'app/views/appviews/recruitment/recruitment.service';\r\n\r\n@Component({\r\n selector: 'app-modal-employment-history-comments',\r\n templateUrl: 'modal-employment-history-comments.template.html'\r\n})\r\nexport class ModalEmploymentHistoryCommentsComponent implements OnDestroy, OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formComments: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n private historyItem: IEmploymentHistoryItem;\r\n constructor(private formBuilder: FormBuilder\r\n , private bsModalRef: BsModalRef\r\n , private recruitmentService: RecruitmentService) {\r\n this.initializeFormComments();\r\n }\r\n ngOnDestroy(): void {\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.patchValueComments();\r\n }\r\n private patchValueComments(): void {\r\n this.formComments.patchValue(this.historyItem);\r\n }\r\n private initializeFormComments() {\r\n this.formComments = this.formBuilder.group({\r\n commentHistory: [null, Validators.required]\r\n });\r\n }\r\n private submitForm(): void {\r\n if (this.formComments.valid) {\r\n this.update();\r\n }\r\n }\r\n private update(): void {\r\n this.historyItem.commentHistory = this.formComments.value.commentHistory;\r\n this.recruitmentService.updateEmploymentHistoryItem(this.historyItem)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect) {\r\n this.onClose.next(this.historyItem);\r\n }\r\n this.bsModalRef.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n}","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IEmploymentHistoryItem } from 'app/shared/models/recruitment/employment-history-item.model';\r\nimport { Subject } from 'rxjs';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { MatRadioChange } from '@angular/material';\r\n@Component({\r\n selector: 'app-modal-employment-history',\r\n styleUrls: ['./modal-employment-history.style.scss'],\r\n templateUrl: './modal-employment-history.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n })\r\n\r\nexport class ModalEmploymentHistoryComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n /**Formularios */\r\n private formEmploymentHistory: FormGroup;\r\n /**Catalogos */\r\n private catalogReasonsOfExit: ISelect[];\r\n private listCatalogs = new Array() as Array;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Variables */\r\n private isCurrentJob: boolean;\r\n private employmentHistoryItem: IEmploymentHistoryItem;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , configGeneral: AppConfig\r\n , public snotifyService: SnotifyService) {\r\n this.initializeFormEmploymentHistory();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.catalogReasonsOfExit = this.listCatalogs[0];\r\n this.onClose = new Subject();\r\n if (this.employmentHistoryItem === undefined) {\r\n this.employmentHistoryItem = {} as IEmploymentHistoryItem;\r\n } else {\r\n this.patchValueEmploymentHistoryItem(); \r\n }\r\n }\r\n private patchValueEmploymentHistoryItem() {\r\n this.employmentHistoryItem.periodFrom = new Date(this.employmentHistoryItem.periodFrom);\r\n if(this.employmentHistoryItem.periodTo !== null) {\r\n this.employmentHistoryItem.periodTo = new Date(this.employmentHistoryItem.periodTo);\r\n }\r\n this.employmentHistoryItem.reasonOfExitId = this.employmentHistoryItem.reasonOfExitId.toString();\r\n this.formEmploymentHistory.patchValue(this.employmentHistoryItem);\r\n if (this.employmentHistoryItem.currentJob) {\r\n let x = {} as MatRadioChange;\r\n x.value = true;\r\n this.changeCurrentJob(x);\r\n }\r\n }\r\n private initializeFormEmploymentHistory() {\r\n this.formEmploymentHistory = this.formBuilder.group({\r\n companyName: [null, [Validators.required, Validators.maxLength(100)]],\r\n jobPosition: [null, [Validators.required, Validators.maxLength(100)]],\r\n periodFrom: [null, Validators.required],\r\n periodTo: [null, Validators.required],\r\n contact: [null, [Validators.required, Validators.maxLength(50)]],\r\n phone: [null, [Validators.required, Validators.minLength(10), Validators.maxLength(10)]],\r\n monthlySalary: [null, [Validators.required]],\r\n reasonOfExitId: [null, Validators.required],\r\n currentJob: [false, Validators.required]\r\n });\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n save(): void {\r\n if (this.formEmploymentHistory.valid) {\r\n let data = {} as IEmploymentHistoryItem;\r\n data = this.mapEmploymentHistoryItem(this.formEmploymentHistory.value);\r\n this.onClose.next(data);\r\n this.bsModalRef.hide();\r\n } else {\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n }\r\n }\r\n private changeCurrentJob($event: MatRadioChange) {\r\n this.isCurrentJob = $event.value;\r\n if (this.isCurrentJob) {\r\n this.formEmploymentHistory.get('periodTo').setValidators(null);\r\n this.formEmploymentHistory.get('periodTo').setValue(null);\r\n } else {\r\n this.formEmploymentHistory.get('periodTo').setValidators([Validators.required]);\r\n }\r\n this.formEmploymentHistory.get('periodTo').updateValueAndValidity();\r\n }\r\n private mapEmploymentHistoryItem(form: any): IEmploymentHistoryItem {\r\n const data = {} as IEmploymentHistoryItem;\r\n data.id = this.employmentHistoryItem.id == undefined ? 0 : this.employmentHistoryItem.id;\r\n data.monthlySalary = form.monthlySalary;\r\n data.companyName = form.companyName;\r\n data.jobPosition = form.jobPosition;\r\n data.periodFrom = form.periodFrom;\r\n data.periodTo = form.periodTo;\r\n data.contact = form.contact;\r\n data.phone = form.phone;\r\n data.reasonOfExitId = form.reasonOfExitId;\r\n data.currentJob = form.currentJob;\r\n data.reasonOfExit = this.catalogReasonsOfExit.filter(x => x.id === data.reasonOfExitId.toString())[0].text;\r\n return data;\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9yZWNydWl0bWVudC9lbXBsb3ltZW50LWhpc3RvcnkvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXG1vZGFsZXNcXHJlY3J1aXRtZW50XFxlbXBsb3ltZW50LWhpc3RvcnlcXG1vZGFsLWVtcGxveW1lbnQtaGlzdG9yeS5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9tb2RhbGVzL3JlY3J1aXRtZW50L2VtcGxveW1lbnQtaGlzdG9yeS9tb2RhbC1lbXBsb3ltZW50LWhpc3Rvcnkuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9tb2RhbGVzL3JlY3J1aXRtZW50L2VtcGxveW1lbnQtaGlzdG9yeS9tb2RhbC1lbXBsb3ltZW50LWhpc3Rvcnkuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG59IiwiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufSJdfQ== */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { RecruitmentService } from 'app/views/appviews/recruitment/recruitment.service';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { Subject } from 'rxjs';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { IDtoEmployeeContract } from 'app/shared/models/recruitment/dto-employee-contract.model';\r\nimport { IAngularMyDpOptions } from 'angular-mydatepicker';\r\nimport { IDtoJobCandidate } from 'app/shared/models/recruitment/dto-job-candidate.model';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { IDocument } from 'app/shared/models/recruitment/document.model';\r\nimport { AdministrationService } from 'app/views/appviews/quote/administration.service';\r\nimport { WorkLeaveService } from 'app/views/appviews/request/workLeave.service';\r\nimport { PayrollService } from 'app/views/appviews/payroll.service';\r\n@Component({\r\n selector: 'app-modal-hire-employee',\r\n templateUrl: './modal-hire-employee.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalHireEmployeeComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [true];\r\n private errorMessages: any;\r\n /**Catalogos */\r\n //private catalogEmployees: Observable;\r\n private action: string;\r\n /**Formularios */\r\n private formHireEmployee: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n private locale: string = 'es';\r\n private jobCandidate: IDtoJobCandidate;\r\n /**Fechas */\r\n private pickerOptionsContract: IAngularMyDpOptions;\r\n private missing: boolean;\r\n private openPeriod: boolean;\r\n private positionType: string;\r\n private hasInfonavit: boolean;\r\n private currentDate: Date;\r\n private openCalendar: boolean;\r\n private inductionMessage = '';\r\n constructor(private bsModalRef: BsModalRef\r\n , private recruitmentService: RecruitmentService\r\n , private formBuilder: FormBuilder\r\n , private spinner: NgxSpinnerService\r\n , private configGeneral: AppConfig\r\n , private administrationService: AdministrationService\r\n , private workLeaveService: WorkLeaveService\r\n , private payrollService: PayrollService) {\r\n this.initializeFormHireEmployee();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.getCandidatePositionType();\r\n this.getOpenCalendar();\r\n this.getCurrentDate();\r\n }\r\n\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private initializeFormHireEmployee() {\r\n this.formHireEmployee = this.formBuilder.group({\r\n hiringDate: [null, [Validators.required]]\r\n });\r\n }\r\n private getOpenCalendar(): void {\r\n this.administrationService.getOpenCalendar('open_hiring_calendar').subscribe(res => {\r\n this.openCalendar = res;\r\n })\r\n }\r\n private getCurrentDate(): void {\r\n this.workLeaveService.getCurrentDate().subscribe(x => {\r\n let date = new Date(x);\r\n this.currentDate = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n });\r\n }\r\n submitForm(): void {\r\n if (this.formHireEmployee.valid) {\r\n if (!this.openCalendar) {\r\n if (this.formHireEmployee.value.hiringDate.singleDate.jsDate >= this.currentDate) {\r\n this.save();\r\n }\r\n else {\r\n this.configGeneral.newToast('Validación', 'Solo puede seleccionar una fecha igual o mayor a la actual', 'error');\r\n }\r\n } else {\r\n this.save();\r\n }\r\n\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'error');\r\n }\r\n }\r\n private getDocuments(): void {\r\n this.spinner.show();\r\n this.recruitmentService.getJobCandidateDocumentsByJobCandidateId(this.jobCandidate.id)\r\n .subscribe(\r\n (x) => {\r\n this.spinner.hide();\r\n this.recruitmentService.getCatalogDocumens().subscribe(d => {\r\n //regresar o comentar despues de la contratacion henkel\r\n // let doc = d.find(x => x.documentName == 'RFC');\r\n // if (this.positionType == 'E') {\r\n // doc.required = false;\r\n // } else {\r\n // doc.required = true;\r\n // }\r\n //\r\n\r\n let doc1 = d.find(x => x.documentName == 'AvisoRetencion');\r\n if (this.hasInfonavit == false) {\r\n doc1.required = false;\r\n } else {\r\n doc1.required = true;\r\n }\r\n let c = d.filter(i => i.required == true);\r\n this.recruitmentService.getCandidateInduction(this.jobCandidate.id, this.jobCandidate.positionId)\r\n .subscribe(\r\n (e) => {\r\n let induction = Boolean(e.data);\r\n this.missing = this.missingDocument(x, c, induction);\r\n });\r\n });\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private missingDocument(documents: IDocument[], catalog: IDocument[], induction: boolean): boolean {\r\n if (induction == false){\r\n this.inductionMessage = 'No cuenta con inducción';\r\n return true;\r\n }\r\n if (induction == true){\r\n for (let i = 0; i < catalog.length; i++) {\r\n let res = documents.filter(f => f.documentName == catalog[i].documentName);\r\n if (res.length == 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n private save(): void {\r\n this.spinner.show();\r\n let data = Object.assign({}, this.formHireEmployee.value as IDtoEmployeeContract);\r\n data.hiringDate = this.configGeneral.getDate(this.formHireEmployee.value.hiringDate);\r\n data.jobCandidateId = this.jobCandidate.id;\r\n data.positionId = this.jobCandidate.positionId;\r\n this.payrollService.validatePayrollContractByEmployee(data.positionId, this.configGeneral.dateFormat(data.hiringDate, 'yyyy-mm-dd'), data.jobCandidateId)\r\n .subscribe((x) => {\r\n if (x.data.toString() == 'true') {\r\n this.spinner.hide();\r\n this.openPeriod = true;\r\n return;\r\n }\r\n this.recruitmentService.jobCandidatesContract(data)\r\n .subscribe(\r\n (x) => {\r\n this.spinner.hide();\r\n this.onClose.next(x);\r\n this.onCancel();\r\n },\r\n (errMessage) => {\r\n this.spinner.hide();\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n },\r\n (errMessage) => {\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n private restrictDateContract(date: Date) {\r\n this.pickerOptionsContract = {\r\n dateFormat: 'dd.mm.yyyy',\r\n dateRange: false,\r\n disableDateRanges: [{\r\n begin: { year: 1000, month: 1, day: 1 },\r\n end: { year: date.getUTCFullYear(), month: date.getUTCMonth() + 1, day: date.getUTCDate() - 1 }\r\n }]\r\n }\r\n }\r\n private getCandidatePositionType(): void {\r\n this.recruitmentService.getCandidatePositionType(this.jobCandidate.id)\r\n .subscribe(\r\n (x) => {\r\n this.positionType = x;\r\n console.log(this.jobCandidate);\r\n this.recruitmentService.getCandidateHasInfonavit(this.jobCandidate.id)\r\n .subscribe(\r\n (x) => {\r\n this.hasInfonavit = Boolean(x);\r\n this.getDocuments();\r\n },\r\n (errMessage) => {\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n },\r\n (errMessage) => {\r\n this.configGeneral.newToast('Error', errMessage.error.exception, 'error');\r\n });\r\n }\r\n}\r\n","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-modal-language',\r\n templateUrl: './modal-language.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n })\r\n\r\n export class ModalLanguageComponet implements OnInit {\r\n constructor(private bsModalRef: BsModalRef) {\r\n}\r\n ngOnInit(): void {\r\n \r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n }\r\n","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatRadioChange } from '@angular/material';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IReference } from 'app/shared/models/recruitment/reference.model';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { RecruitmentService } from 'app/views/appviews/recruitment/recruitment.service';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { AppConfig } from 'app/app.config';\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-modal-reference',\r\n styleUrls: ['./modal-reference.style.scss'],\r\n templateUrl: './modal-reference.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalReferenceComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formReference: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n private reference: IReference;\r\n private jobCandidateId: number;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private buttonSubmit: string;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , private recruitmentService: RecruitmentService\r\n , public snotifyService: SnotifyService\r\n , configGeneral: AppConfig) {\r\n this.initializeFormEmploymentHistory();\r\n this.configToast = configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n }\r\n private initializeFormEmploymentHistory() {\r\n this.formReference = this.formBuilder.group({\r\n referenceType: [null, Validators.required],\r\n relationship: [null, [Validators.required, Validators.maxLength(100)]],\r\n fullName: [null, [Validators.required, Validators.maxLength(150)]],\r\n address: [null, [Validators.required, Validators.maxLength(150)]],\r\n phone: [null, [Validators.required, Validators.minLength(10), Validators.maxLength(10)]]\r\n });\r\n }\r\n private radioChange($event: MatRadioChange) {\r\n switch ($event.source.name) {\r\n case 'referenceType':\r\n // this.relationshipType = $event.value;\r\n break;\r\n }\r\n }\r\n // save(): void {\r\n // if (this.formReference.valid) {\r\n // const data = this.mapReference(this.formReference.value);\r\n // this.onClose.next(data);\r\n // this.bsModalRef.hide();\r\n // } else {\r\n // this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n // , 'Validación', this.configToast);\r\n // }\r\n // }\r\n save($event): Observable {\r\n if (this.formReference.valid) {\r\n const submit = document.getElementById(document.activeElement.id);\r\n this.buttonSubmit = submit.getAttribute('value');\r\n\r\n const data = this.mapReference(this.formReference.value);\r\n const addDoaObservable = this.recruitmentService.addRecluitment('reference', data);\r\n addDoaObservable\r\n .subscribe(\r\n (x) => {\r\n this.result = x;\r\n if (this.result.isCorrect === true) {\r\n this.reference = this.result.data as IReference;\r\n this.onClose.next(this.reference);\r\n switch (this.buttonSubmit) {\r\n case 'save':\r\n this.bsModalRef.hide();\r\n break;\r\n case 'save_more':\r\n this.formReference.reset();\r\n break;\r\n }\r\n } else {\r\n this.snotifyService.error('Error al procesar los datos'\r\n , 'Error', this.configToast);\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n return addDoaObservable;\r\n } else {\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n }\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private mapReference(form: any): IReference {\r\n const data = {} as IReference;\r\n data.referenceType = form.referenceType;\r\n data.relationship = form.relationship;\r\n data.fullName = form.fullName;\r\n data.address = form.address;\r\n data.phone = form.phone;\r\n data.jobCandidateId = this.jobCandidateId;\r\n data.isActive = true;\r\n data.isVisible = true;\r\n return data;\r\n }\r\n}\r\n","module.exports = \".mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvbW9kYWxlcy9yZWNydWl0bWVudC9yZWZlcmVuY2UvQzpcXFJlcG9zXFxSZWRub3ZhdGlvblxcc3JjXFwwMSBXZWJcXFByZXNlbnRhdGlvbi5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcdmlld3NcXG1vZGFsZXNcXHJlY3J1aXRtZW50XFxyZWZlcmVuY2VcXG1vZGFsLXJlZmVyZW5jZS5zdHlsZS5zY3NzIiwic3JjL2FwcC92aWV3cy9tb2RhbGVzL3JlY3J1aXRtZW50L3JlZmVyZW5jZS9tb2RhbC1yZWZlcmVuY2Uuc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9tb2RhbGVzL3JlY3J1aXRtZW50L3JlZmVyZW5jZS9tb2RhbC1yZWZlcmVuY2Uuc3R5bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG59IiwiLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufSJdfQ== */\"","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-modal-study',\r\n templateUrl: './modal-study.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n })\r\n\r\n export class ModalStudyComponet implements OnInit {\r\n constructor(private bsModalRef: BsModalRef) {\r\n}\r\n ngOnInit(): void {\r\n \r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n }\r\n","import { OnDestroy, OnInit, Component } from '@angular/core';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { Subject } from 'rxjs';\r\nimport { IDtoHoliday } from 'app/shared/models/request/holiday/dto-holiday.model';\r\nimport { HolidayService } from 'app/views/appviews/request/holiday.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-modal-reason-cancel',\r\n styleUrls: ['modal-reason-cancel.style.scss'],\r\n templateUrl: 'modal-reason-cancel.template.html'\r\n})\r\nexport class ModalReasonCancelComponent implements OnDestroy, OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formReasonCancel: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n private request: IDtoHoliday;\r\n constructor(private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private bsModalRef: BsModalRef\r\n , private holidayService: HolidayService\r\n , private identityService: IdentityService\r\n , private spinner: NgxSpinnerService) {\r\n this.initializeFormReasonCancel();\r\n }\r\n ngOnDestroy(): void {\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n }\r\n private initializeFormReasonCancel() {\r\n this.formReasonCancel = this.formBuilder.group({\r\n reasonCancel: [null, [Validators.required, Validators.maxLength(250)]]\r\n });\r\n }\r\n private submitForm(): void {\r\n if (this.formReasonCancel.valid) {\r\n this.update();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n }\r\n }\r\n private update(): void {\r\n this.spinner.show();\r\n this.request.status = 3;\r\n this.request.cancelComments = this.formReasonCancel.value.reasonCancel;\r\n this.holidayService.updateHoliday(this.request)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.addModuleLog(this.request.id);\r\n this.onClose.next(true);\r\n } else {\r\n this.onClose.next(false);\r\n }\r\n this.bsModalRef.hide();\r\n this.spinner.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Holidays';\r\n dto.module = 'holidayApproval';\r\n dto.action = 'cancelled';\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvcmVxdWVzdC9ob2xpZGF5L21vZGFsLXJlYXNvbi1jYW5jZWwuc3R5bGUuc2NzcyJ9 */\"","import { OnDestroy, OnInit, Component } from '@angular/core';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { Subject } from 'rxjs';\r\nimport { IDtoHoliday } from 'app/shared/models/request/holiday/dto-holiday.model';\r\nimport { HolidayService } from 'app/views/appviews/request/holiday.service';\r\nimport { IDtoModuleLog } from 'app/shared/models/security/dto-module-log.model';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\n\r\n@Component({\r\n selector: 'app-modal-reason-rejection',\r\n styleUrls: ['modal-reason-rejection.style.scss'],\r\n templateUrl: 'modal-reason-rejection.template.html'\r\n})\r\nexport class ModalReasonRejectionComponent implements OnDestroy, OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private flag = false;\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formReasonRejection: FormGroup;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n private request: IDtoHoliday;\r\n constructor(private formBuilder: FormBuilder\r\n , private configGeneral: AppConfig\r\n , private bsModalRef: BsModalRef\r\n , private holidayService: HolidayService\r\n , private identityService: IdentityService) {\r\n this.initializeFormReasonRejection();\r\n }\r\n ngOnDestroy(): void {\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n }\r\n private initializeFormReasonRejection() {\r\n this.formReasonRejection = this.formBuilder.group({\r\n reasonRejection: [null, [Validators.required, Validators.maxLength(500)]]\r\n });\r\n }\r\n private submitForm(): void {\r\n if (this.formReasonRejection.valid) {\r\n this.update();\r\n } else {\r\n this.configGeneral.newToast('Validación', 'Capture toda la información requerida para poder continuar', 'warning');\r\n }\r\n }\r\n private update(): void {\r\n this.request.status = 2;\r\n this.request.bossComments = this.formReasonRejection.value.reasonRejection;\r\n this.holidayService.updateHoliday(this.request)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.addModuleLog(this.request.id);\r\n this.onClose.next(true);\r\n } else {\r\n this.onClose.next(false);\r\n }\r\n this.bsModalRef.hide();\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private addModuleLog(id: number): void {\r\n let dto = {} as IDtoModuleLog;\r\n dto.table = 'Holidays';\r\n dto.module = 'holidayApproval';\r\n dto.action = 'rejected';\r\n dto.registryAffectedId = id;\r\n this.identityService.addModuleLog(dto).subscribe(\r\n (x) => { });\r\n }\r\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21vZGFsZXMvcmVxdWVzdC9ob2xpZGF5L21vZGFsLXJlYXNvbi1yZWplY3Rpb24uc3R5bGUuc2NzcyJ9 */\"","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IDtoSystem } from 'app/shared/models/security/dto-system.model';\r\nimport { IDtoModule } from 'app/shared/models/security/dto-module.model';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\n\r\n@Component({\r\n selector: 'app-modal-system-module',\r\n templateUrl: './modal-system-module.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalSystemModuleComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formSystemModule: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private system: IDtoSystem;\r\n private module: IDtoModule;\r\n private action = 'add';\r\n /**Catalogos */\r\n private catalogRoles: Observable;\r\n /**Listas */\r\n private modules = new Array() as IDtoModule[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableModules: DatatableComponent;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private identityService: IdentityService\r\n , private configGeneral: AppConfig) {\r\n this.initializeFormUserRole();\r\n this.configToast = this.configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.catalogRoles = this.identityService.getCatalogRoles();\r\n this.getModulesBySystem();\r\n }\r\n private initializeFormUserRole() {\r\n this.formSystemModule = this.formBuilder.group({\r\n name: [null, [Validators.required, Validators.maxLength(100)]],\r\n rolesId: [null, [Validators.required]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formSystemModule.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n }\r\n }\r\n private save(): void {\r\n const data = this.formSystemModule.value as IDtoModule;\r\n data.systemId = this.system.systemLibraryId;\r\n this.identityService.addModule(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.resetForm();\r\n this.getModulesBySystem();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n const data = this.formSystemModule.value;\r\n this.module.name = data.name;\r\n this.module.rolesId = data.rolesId;\r\n this.identityService.updateModule(this.module)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.resetForm();\r\n this.getModulesBySystem();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private getModulesBySystem(): void {\r\n this.identityService.getModulesBySystem(this.system.systemLibraryId)\r\n .subscribe(\r\n (x) => {\r\n this.modules = x.data as IDtoModule[];\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private editModule(item: IDtoModule): void {\r\n this.module = item;\r\n this.formSystemModule.patchValue(this.module);\r\n this.action = 'edit';\r\n }\r\n private resetForm(): void {\r\n this.formSystemModule.reset();\r\n this.action = 'add';\r\n }\r\n}\r\n","import { OnInit, Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoUser } from 'app/shared/models/security/dto-user.model';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { IDtoUserRole } from 'app/shared/models/security/dto-user-role.model';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\n\r\n@Component({\r\n selector: 'app-modal-user-role',\r\n templateUrl: './modal-user-role.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalUserRoleComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formUserRole: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private user: IDtoUser;\r\n /**Catalogos */\r\n private catalogSystems: Observable;\r\n private catalogModules: Observable;\r\n private catalogRoles: Observable;\r\n /**Listas */\r\n private userRoles = new Array() as IDtoUserRole[];\r\n /** Tablas*/\r\n @ViewChild(DatatableComponent, { static: false }) tableUserRoles: DatatableComponent;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private identityService: IdentityService\r\n , private configGeneral: AppConfig) {\r\n this.initializeFormUserRole();\r\n this.configToast = this.configGeneral.getConfigToast();\r\n }\r\n ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.catalogSystems = this.identityService.getCatalogSystems();\r\n this.getRolesByUser();\r\n }\r\n private initializeFormUserRole() {\r\n this.formUserRole = this.formBuilder.group({\r\n systemId: [null, [Validators.required]],\r\n moduleId: [null, [Validators.required]],\r\n roleId: [null, [Validators.required]]\r\n });\r\n }\r\n private submit(): void {\r\n if (this.formUserRole.valid) {\r\n this.save();\r\n } else {\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n }\r\n }\r\n private save(): void {\r\n const data = this.formUserRole.value as IDtoUserRole;\r\n data.userId = this.user.id;\r\n this.identityService.addUserRole(data)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.getRolesByUser();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private getRolesByUser(): void {\r\n this.identityService.getRolesByUser(this.user.id)\r\n .subscribe(\r\n (x) => {\r\n this.userRoles = x.data as IDtoUserRole[];\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private getCatalogModulesBySystem(systemId: string): void {\r\n this.formUserRole.get('moduleId').reset();\r\n this.formUserRole.get('roleId').reset();\r\n this.catalogRoles = null;\r\n this.catalogModules = this.identityService.getCatalogModulesBySystem(Number(systemId));\r\n }\r\n private getCatalogRoleByModule(moduleId: string): void {\r\n this.formUserRole.get('roleId').reset();\r\n this.catalogRoles = this.identityService.getCatalogRoleByModule(moduleId);\r\n }\r\n private delete(item: IDtoUserRole): void {\r\n this.identityService.deleteUserRole(item)\r\n .subscribe(\r\n (x) => {\r\n if (this.configGeneral.notificationSuccessError(x)) {\r\n this.getRolesByUser();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","import { OnInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap';\r\nimport { ValidatorService } from 'app/shared/services/validator.service';\r\nimport { IResult } from 'app/shared/models/result.model';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AppConfig } from 'app/app.config';\r\nimport { SnotifyService } from 'ng-snotify';\r\nimport { IdentityService } from 'app/views/appviews/security/identity.service';\r\nimport { IDtoUser } from 'app/shared/models/security/dto-user.model';\r\nimport { ISelect } from 'app/shared/models/select.model';\r\nimport { RecruitmentService } from 'app/views/appviews/recruitment/recruitment.service';\r\nimport { IDtoEmployeeFilter } from 'app/shared/models/request/holiday/dto-employee-filter.model';\r\nimport { HolidayService } from 'app/views/appviews/request/holiday.service';\r\nimport { CustomerService } from 'app/views/appviews/quote/customer.service';\r\nimport { IDtoCatalog } from 'app/shared/models/dto-catalog.model';\r\n\r\n@Component({\r\n selector: 'app-modal-user',\r\n templateUrl: './modal-user.template.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ModalUserComponet implements OnInit {\r\n /**Validadores */\r\n private validator = ValidatorService;\r\n private fsaFlags = [false];\r\n private errorMessages: any;\r\n /**Formularios */\r\n private formUser: FormGroup;\r\n /**Variable de trasporte de datos */\r\n private result: IResult;\r\n /**Notificaciones */\r\n private configToast: any;\r\n /**Retorno a pantalla padre */\r\n public onClose: Subject;\r\n /**Variables */\r\n private action: string;\r\n private user: IDtoUser;\r\n /**Catalogos */\r\n private catalogZones: Observable;\r\n private catalogCustomers: Observable;\r\n private catalogEmployees: Observable;\r\n constructor(private bsModalRef: BsModalRef\r\n , private formBuilder: FormBuilder\r\n , public snotifyService: SnotifyService\r\n , private identityService: IdentityService\r\n , private configGeneral: AppConfig\r\n , private recruitmentService: RecruitmentService\r\n , private holidayService: HolidayService\r\n , private customerService: CustomerService) {\r\n this.initializeFormUser();\r\n }\r\n ngOnInit(): void {\r\n this.catalogZones = this.recruitmentService.getCatalogZones();\r\n this.catalogCustomers = this.customerService.getCatalogCustomers();\r\n this.getCatalogEmployeesByFilter();\r\n this.onClose = new Subject();\r\n if (this.action === 'edit') {\r\n this.formUser.patchValue(this.user);\r\n this.formUser.get('zonesId').setValue(this.patchZones(this.user.zonesId));\r\n this.formUser.get('clientIds').setValue(this.user.clientIds);\r\n }\r\n }\r\n private initializeFormUser() {\r\n this.formUser = this.formBuilder.group({\r\n email: [null, [Validators.required, Validators.email, Validators.maxLength(255)]],\r\n username: [null, [Validators.required, Validators.maxLength(256)]],\r\n zonesId: [null],\r\n clientIds: [null],\r\n employeeId: [null]\r\n });\r\n }\r\n private getCatalogEmployeesByFilter(): void {\r\n const list = {} as IDtoEmployeeFilter;\r\n this.catalogEmployees = this.holidayService.getCatalogEmployeesByFilter(list);\r\n }\r\n private submit(): void {\r\n if (this.formUser.valid) {\r\n if (this.action === 'add') {\r\n this.save();\r\n } else {\r\n this.update();\r\n }\r\n } else {\r\n this.snotifyService.error('Capture toda la información requerida para poder continuar'\r\n , 'Validación', this.configToast);\r\n }\r\n }\r\n private save(): void {\r\n const data = this.formUser.value as IDtoUser;\r\n data.password = '@Terminal1';\r\n this.identityService.addUser(data)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect === true) {\r\n this.onClose.next(true);\r\n this.onCancel();\r\n } else {\r\n this.onClose.next(false);\r\n this.onCancel();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private update(): void {\r\n const data = this.formUser.value;\r\n this.user.username = data.username;\r\n this.user.email = data.email;\r\n this.user.zonesId = data.zonesId;\r\n this.user.clientIds = data.clientIds;\r\n this.user.employeeId = data.employeeId;\r\n this.identityService.updateUser(this.user)\r\n .subscribe(\r\n (x) => {\r\n if (x.isCorrect === true) {\r\n this.onClose.next(true);\r\n this.onCancel();\r\n } else {\r\n this.onClose.next(false);\r\n this.onCancel();\r\n }\r\n },\r\n (errMessage) => this.errorMessages = errMessage.messages);\r\n }\r\n private onCancel(): void {\r\n this.bsModalRef.hide();\r\n }\r\n private patchZones(zones: number[]): string[] {\r\n const data = [];\r\n zones.forEach(element => {\r\n data.push(element.toString());\r\n });\r\n return data;\r\n }\r\n}\r\n","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: true\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n"],"sourceRoot":""}