{"version":3,"file":"main.js","mappings":"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F;QACxF,QAAQ,EAAE,uFAAuF;QACjG,MAAM,EAAE,sFAAsF;QAC9F,MAAM,EAAE,sFAAsF;KAC/F;CACF,CAAC;;;;;;;;;;;;;;;;;ACtO6C;AAC4B;AAE9B;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,yFAAsB,EAAE;KACrB,eAAe,CAAC,sDAAS,CAAC;KAC1B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACZtC;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;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/calculatecards/calculatecards.component.ts","./src/app/components/confirm-dialog/confirm-dialog.component.ts","./src/app/components/custom-tooltip/custom-tooltip.component.ts","./src/app/components/footers/footer/footer.component.ts","./src/app/components/forms/form-companyname/form-companyname.component.ts","./src/app/components/forms/form-contacts/form-contacts.component.ts","./src/app/components/googlemaps/googlemaps.component.ts","./src/app/components/graphics/graphics.component.ts","./src/app/components/modals/confirm-dialog/confirm-dialog.component.ts","./src/app/components/modals/upload-document/upload-document.component.ts","./src/app/components/navbars/admin-navbar/admin-navbar.component.ts","./src/app/components/navbars/auth-navbar/auth-navbar.component.ts","./src/app/components/sidebar/sidebar.component.ts","./src/app/components/tables/advances/advances-table.component.ts","./src/app/components/tables/advances/details/advances-details.component.ts","./src/app/components/tables/projects/details/projects-details.component.ts","./src/app/components/tables/projects/graphics/project-graphic/project-graphic.component.ts","./src/app/components/tables/projects/internal/internal-details-projects/internal-details-projects.component.ts","./src/app/components/tables/projects/internal/internal-table-projects/internal-table-projects.component.ts","./src/app/components/tables/projects/projects-table.component.ts","./src/app/components/tables/properties/details/properties-details.component.ts","./src/app/components/tables/properties/internal/internal-details-properties/internal-details-properties.component.ts","./src/app/components/tables/properties/internal/internal-table-properties/internal-table-properties.component.ts","./src/app/components/tables/properties/properties-table.component.ts","./src/app/components/tables/tasks/details/tasks-details.component.ts","./src/app/components/tables/tasks/graphics/tasks-graphics.component.ts","./src/app/components/tables/tasks/internal/internal-details-tasks/internal-details-tasks.component.ts","./src/app/components/tables/tasks/internal/internal-table-tasks/edit-task-dialog/edit-task-dialog.component.ts","./src/app/components/tables/tasks/internal/internal-table-tasks/internal-table-tasks.component.ts","./src/app/components/tables/tasks/tasks-table.component.ts","./src/app/components/tables/works/details/works-details.component.ts","./src/app/components/tables/works/internal/internal-details/collaboration-dialog/collaboration-dialog.component.ts","./src/app/components/tables/works/internal/internal-details/collaboration-dialog/confirmation-collaboration-dialog/confirmation-collaboration-dialog.component.ts","./src/app/components/tables/works/internal/internal-details/inspection-dialog/confirmation-inspection-dialog/confirmation-inspection-dialog.component.ts","./src/app/components/tables/works/internal/internal-details/inspection-dialog/inspection-dialog.component.ts","./src/app/components/tables/works/internal/internal-details/internal-details.component.ts","./src/app/components/tables/works/internal/internal-table/internal-table.component.ts","./src/app/components/tables/works/works-table.component.ts","./src/app/config/directives/click-stop-propagation.directive.ts","./src/app/config/directives/input-email.directive.ts","./src/app/config/directives/input-number.directive.ts","./src/app/config/directives/tool-tip-renderer.directive.ts","./src/app/config/guard/auth.guard.ts","./src/app/config/pipes/select-search.pipe.ts","./src/app/config/pipes/truncate-text.pipe.ts","./src/app/config/prevent-change-route/prevent-change-route.guard.ts","./src/app/layouts/admin/admin.component.ts","./src/app/layouts/auth/auth.component.ts","./src/app/models/general/group-column.class.ts","./src/app/services/admin-services/accounts/accounts.service.ts","./src/app/services/admin-services/advanced-settings/advanced-settings.service.ts","./src/app/services/admin-services/company-name/company-name.service.ts","./src/app/services/admin-services/contacts/contacts.service.ts","./src/app/services/admin-services/internal-contacts/internal-contacts.service.ts","./src/app/services/admin-services/projects/projects.service.ts","./src/app/services/admin-services/properties/internal-properties.service.ts","./src/app/services/admin-services/properties/properties.service.ts","./src/app/services/admin-services/tasks/internal-tasks.service.ts","./src/app/services/admin-services/tasks/tasks.service.ts","./src/app/services/admin-services/works/internal-works.service.ts","./src/app/services/admin-services/works/works.service.ts","./src/app/services/auth/auth.service.ts","./src/app/services/localizations/localizations.service.ts","./src/app/services/master/master.service.ts","./src/app/utils/file-extensions-allowed.ts","./src/app/utils/replace-keep-file/replace-keep-file.component.ts","./src/app/utils/update-document-dialog/update-document-dialog.component.ts","./src/app/utils/upload-files/upload-files.component.ts","./src/app/utils/utils.ts","./src/app/views/admin/accounts/accounts.component.ts","./src/app/views/admin/accounts/manage-account-dialog/manage-account-dialog.component.ts","./src/app/views/admin/advanced-settings/advanced-settings.component.ts","./src/app/views/admin/advanced-settings/production-settings/rule-jobs/manage-rule-jobs/manage-rule-jobs.component.ts","./src/app/views/admin/advanced-settings/production-settings/rule-jobs/rule-jobs.component.ts","./src/app/views/admin/advanced-settings/security/features/features.component.ts","./src/app/views/admin/advanced-settings/security/features/manage-features-dialog/manage-features-dialog.component.ts","./src/app/views/admin/advanced-settings/security/security-roles/manage-security-roles-dialog/manage-security-roles-dialog.component.ts","./src/app/views/admin/advanced-settings/security/security-roles/security-roles.component.ts","./src/app/views/admin/advanced-settings/security/users/manage-user-dialog/manage-user-dialog.component.ts","./src/app/views/admin/advanced-settings/security/users/users.component.ts","./src/app/views/admin/advances/advances.component.ts","./src/app/views/admin/companyname/companyname.component.ts","./src/app/views/admin/contacts/contacts.component.ts","./src/app/views/admin/internal-contacts/internal-contacts.component.ts","./src/app/views/admin/internal-contacts/manage-internal-contact-dialog/manage-internal-contact-dialog.component.ts","./src/app/views/admin/projects/internal/internal-projects/internal-projects.component.ts","./src/app/views/admin/projects/projects.component.ts","./src/app/views/admin/properties/internal/internal-properties/internal-properties.component.ts","./src/app/views/admin/properties/properties.component.ts","./src/app/views/admin/tasks/internal/internal-tasks/internal-tasks.component.ts","./src/app/views/admin/tasks/tasks.component.ts","./src/app/views/admin/works/internal/internal-works/internal-works.component.ts","./src/app/views/admin/works/works.component.ts","./src/app/views/auth/login/login.component.ts","./src/app/views/auth/recovery-password/recovery-password.component.ts","./src/app/views/auth/recovery-password/steps/code-confirmation/code-confirmation.component.ts","./src/app/views/auth/recovery-password/steps/code/code.component.ts","./src/app/views/auth/recovery-password/steps/email/email.component.ts","./src/app/views/auth/recovery-password/steps/new-password/new-password.component.ts","./src/app/views/auth/recovery-password/steps/token-expired/token-expired.component.ts","./src/app/views/auth/register/register.component.ts","./src/app/views/landing/landing.component.ts","./src/environments/environment.prod.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\n\r\n// layouts\r\nimport { AdminComponent } from \"./layouts/admin/admin.component\";\r\nimport { AuthComponent } from \"./layouts/auth/auth.component\";\r\n\r\n// admin views\r\nimport { CompanynameComponent } from \"./views/admin/companyname/companyname.component\";\r\nimport { ContactsComponent } from \"./views/admin/contacts/contacts.component\";\r\n\r\n// auth views\r\nimport { LoginComponent } from \"./views/auth/login/login.component\";\r\nimport { RegisterComponent } from \"./views/auth/register/register.component\";\r\nimport { LandingComponent } from \"./views/landing/landing.component\";\r\nimport { AuthGuard } from \"./config/guard/auth.guard\";\r\nimport { PreventChangeRouteGuard } from \"./config/prevent-change-route/prevent-change-route.guard\";\r\nimport { ProjectsComponent } from \"./views/admin/projects/projects.component\";\r\nimport { PropertiesComponent } from \"./views/admin/properties/properties.component\";\r\nimport { WorksComponent } from \"./views/admin/works/works.component\";\r\nimport { TasksComponent } from \"./views/admin/tasks/tasks.component\";\r\nimport { AdvancesComponent } from \"./views/admin/advances/advances.component\";\r\nimport { ProjectsDetailsComponent } from \"./components/tables/projects/details/projects-details.component\";\r\nimport { PropertiesDetailsComponent } from \"./components/tables/properties/details/properties-details.component\";\r\nimport { WorksDetailsComponent } from \"./components/tables/works/details/works-details.component\";\r\nimport { RecoveryPasswordComponent } from \"./views/auth/recovery-password/recovery-password.component\";\r\nimport { InternalDetailsComponent } from \"./components/tables/works/internal/internal-details/internal-details.component\";\r\nimport { InternalDetailsProjectsComponent } from \"./components/tables/projects/internal/internal-details-projects/internal-details-projects.component\";\r\nimport { InternalDetailsPropertiesComponent } from \"./components/tables/properties/internal/internal-details-properties/internal-details-properties.component\";\r\nimport { AdvancedSettingsComponent } from \"./views/admin/advanced-settings/advanced-settings.component\";\r\nimport { UsersComponent } from \"./views/admin/advanced-settings/security/users/users.component\";\r\nimport { SecurityRolesComponent } from \"./views/admin/advanced-settings/security/security-roles/security-roles.component\";\r\nimport { FeaturesComponent } from \"./views/admin/advanced-settings/security/features/features.component\";\r\nimport { RuleJobsComponent } from \"./views/admin/advanced-settings/production-settings/rule-jobs/rule-jobs.component\";\r\nimport { InternalContactsComponent } from \"./views/admin/internal-contacts/internal-contacts.component\";\r\nimport { AccountsComponent } from \"./views/admin/accounts/accounts.component\";\r\nimport { ManageAccountDialogComponent } from \"./views/admin/accounts/manage-account-dialog/manage-account-dialog.component\";\r\nimport { ManageInternalContactDialogComponent } from \"./views/admin/internal-contacts/manage-internal-contact-dialog/manage-internal-contact-dialog.component\";\r\nimport { EmailComponent } from \"./views/auth/recovery-password/steps/email/email.component\";\r\nimport { CodeComponent } from \"./views/auth/recovery-password/steps/code/code.component\";\r\nimport { NewPasswordComponent } from \"./views/auth/recovery-password/steps/new-password/new-password.component\";\r\nimport {\r\n CodeConfirmationComponent\r\n} from \"./views/auth/recovery-password/steps/code-confirmation/code-confirmation.component\";\r\nimport { TokenExpiredComponent } from \"./views/auth/recovery-password/steps/token-expired/token-expired.component\";\r\n\r\nconst routes: Routes = [\r\n // admin views\r\n {\r\n path: \"home\",\r\n component: AdminComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n breadcrumb: { disable: true, label: \"Logan\" },\r\n },\r\n children: [\r\n {\r\n path: \"projects\",\r\n component: ProjectsComponent,\r\n data: {\r\n breadcrumb: \"Projects\",\r\n },\r\n children: [\r\n {\r\n path: \"projects-details/:projectNumber\",\r\n component: ProjectsDetailsComponent,\r\n data: {\r\n breadcrumb: (resolvedId: string) => `${resolvedId}`,\r\n },\r\n },\r\n {\r\n path: \"projects-internal-details/:projectNumber\",\r\n component: InternalDetailsProjectsComponent,\r\n canDeactivate: [PreventChangeRouteGuard],\r\n data: {\r\n breadcrumb: (resolvedId: string) => {\r\n let id = resolvedId.split(\"/\")[1];\r\n let project = JSON.parse(\r\n sessionStorage.getItem(\"internalProjects\")\r\n ).find((project) => project.project_Number === id);\r\n return `${project.project_Number} - ${project.projectName}`;\r\n },\r\n },\r\n },\r\n {\r\n path: \"properties-internal-details/:id\",\r\n component: InternalDetailsPropertiesComponent,\r\n canDeactivate: [PreventChangeRouteGuard],\r\n data: {\r\n breadcrumb: (resolvedId: string) => {\r\n let id = resolvedId.split(\"/\")[1];\r\n let propertyNumber = JSON.parse(\r\n sessionStorage.getItem(\"internalProperties\")\r\n )[id].property_Number;\r\n return `${propertyNumber}`;\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"properties\",\r\n component: PropertiesComponent,\r\n data: {\r\n breadcrumb: \"Properties\",\r\n },\r\n children: [\r\n {\r\n path: \"properties-details/:id\",\r\n component: PropertiesDetailsComponent,\r\n data: {\r\n breadcrumb: (resolvedId: string) => `${resolvedId}`,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"properties-internal-details/:id\",\r\n component: InternalDetailsPropertiesComponent,\r\n data: {\r\n breadcrumb: (resolvedId: string) => {\r\n let id = resolvedId.split(\"/\")[1];\r\n let propertyNumber = JSON.parse(\r\n sessionStorage.getItem(\"internalProperties\")\r\n )[id].property_Number;\r\n return `${propertyNumber}`;\r\n },\r\n },\r\n },\r\n {\r\n path: \"jobs\",\r\n component: WorksComponent,\r\n data: {\r\n breadcrumb: \"Jobs\",\r\n },\r\n children: [\r\n {\r\n path: \"jobs-details/:id\",\r\n component: WorksDetailsComponent,\r\n data: {\r\n breadcrumb: (resolvedId: string) => `${resolvedId}`,\r\n },\r\n },\r\n {\r\n path: \"jobs-internal-details/:id\",\r\n component: InternalDetailsComponent,\r\n canDeactivate: [PreventChangeRouteGuard],\r\n data: {\r\n breadcrumb: (resolvedId: string) => {\r\n let id = resolvedId.split(\"/\")[1];\r\n const jobNumber = JSON.parse(\r\n sessionStorage.getItem(\"internalJobs\")\r\n )?.find((job) => job.job_Number === id);\r\n const propertyName = JSON.parse(\r\n sessionStorage.getItem(\"internalProperties\")\r\n )?.find(\r\n (property) =>\r\n property.project_Number === jobNumber.project_Number\r\n )?.property_Name;\r\n\r\n return `${jobNumber.job_Number} - ${propertyName}`;\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"tasks\",\r\n component: TasksComponent,\r\n data: {\r\n breadcrumb: \"Tasks\",\r\n },\r\n },\r\n {\r\n path: \"advances\",\r\n component: AdvancesComponent,\r\n data: {\r\n breadcrumb: \"Advances\",\r\n },\r\n },\r\n {\r\n path: \"company-name\",\r\n component: CompanynameComponent,\r\n canDeactivate: [PreventChangeRouteGuard],\r\n data: {\r\n breadcrumb: \"Company-name\",\r\n },\r\n },\r\n {\r\n path: \"contacts\",\r\n component: ContactsComponent,\r\n canDeactivate: [PreventChangeRouteGuard],\r\n data: {\r\n breadcrumb: \"Contacts\",\r\n },\r\n },\r\n {\r\n path: \"advanced-settings\",\r\n component: AdvancedSettingsComponent,\r\n data: {\r\n breadcrumb: \"Advanced Settings\",\r\n },\r\n children: [\r\n {\r\n path: \"user\",\r\n component: UsersComponent,\r\n data: {\r\n breadcrumb: \"User\",\r\n },\r\n },\r\n {\r\n path: \"security-roles\",\r\n component: SecurityRolesComponent,\r\n data: {\r\n breadcrumb: \"Security Roles\",\r\n },\r\n },\r\n {\r\n path: \"features\",\r\n component: FeaturesComponent,\r\n data: {\r\n breadcrumb: \"Features\",\r\n },\r\n },\r\n {\r\n path: \"rule-jobs\",\r\n component: RuleJobsComponent,\r\n data: {\r\n breadcrumb: \"Job Channeling\",\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"internal-contacts\",\r\n component: InternalContactsComponent,\r\n data: {\r\n breadcrumb: \"Contacts\",\r\n },\r\n children: [\r\n {\r\n path: \"manage-internal-contact\",\r\n component: ManageInternalContactDialogComponent,\r\n data: {\r\n breadcrumb: \"New Contact\",\r\n },\r\n },\r\n {\r\n path: \"manage-internal-contact/:idInternalContact\",\r\n component: ManageInternalContactDialogComponent,\r\n data: {\r\n breadcrumb: \"Edit Contact\",\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"accounts\",\r\n component: AccountsComponent,\r\n data: {\r\n breadcrumb: \"Accounts\",\r\n },\r\n children: [\r\n {\r\n path: \"manage-account\",\r\n component: ManageAccountDialogComponent,\r\n data: {\r\n breadcrumb: \"New Account\",\r\n },\r\n },\r\n {\r\n path: \"manage-account/:idAccount\",\r\n component: ManageAccountDialogComponent,\r\n data: {\r\n breadcrumb: \"Edit Account\",\r\n },\r\n },\r\n ],\r\n },\r\n { path: \"\", redirectTo: \"dashboard\", pathMatch: \"full\" },\r\n ],\r\n },\r\n // auth views\r\n {\r\n path: \"auth\",\r\n component: AuthComponent,\r\n children: [\r\n { path: \"login\", component: LoginComponent },\r\n { path: \"register\", component: RegisterComponent },\r\n { path: \"forgot-password\", component: RecoveryPasswordComponent },\r\n { path: \"validate-email\", component: EmailComponent },\r\n { path: \"send-email\", component: CodeComponent },\r\n { path: \"code-confirmation\", component: CodeConfirmationComponent },\r\n { path: \"token-expired\", component: TokenExpiredComponent },\r\n { path: \"new-password\", component: NewPasswordComponent },\r\n { path: \"\", redirectTo: \"login\", pathMatch: \"full\" },\r\n { path: \"**\", redirectTo: \"login\", pathMatch: \"full\" },\r\n ],\r\n },\r\n { path: \"landing\", component: LandingComponent },\r\n { path: \"\", redirectTo: \"landing\", pathMatch: \"full\" },\r\n { path: \"**\", redirectTo: \"landing\", pathMatch: \"full\" },\r\n];\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule],\r\n providers: [PreventChangeRouteGuard],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"app-root\",\n templateUrl: \"./app.component.html\",\n})\nexport class AppComponent {\n title = \"angular-dashboard-page\";\n}\n","import { BrowserModule } from \"@angular/platform-browser\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\r\n\r\nimport { AppRoutingModule } from \"./app-routing.module\";\r\nimport { AppComponent } from \"./app.component\";\r\n\r\n// layouts\r\nimport { AdminComponent } from \"./layouts/admin/admin.component\";\r\nimport { AuthComponent } from \"./layouts/auth/auth.component\";\r\n\r\n// admin views\r\nimport { ProjectsComponent } from \"./views/admin/projects/projects.component\";\r\nimport { PropertiesComponent } from \"./views/admin/properties/properties.component\";\r\nimport { WorksComponent } from \"./views/admin/works/works.component\";\r\nimport { TasksComponent } from \"./views/admin/tasks/tasks.component\";\r\nimport { AdvancesComponent } from \"./views/admin/advances/advances.component\";\r\nimport { CompanynameComponent } from \"./views/admin/companyname/companyname.component\";\r\nimport { ContactsComponent } from \"./views/admin/contacts/contacts.component\";\r\n\r\n// auth views\r\nimport { LoginComponent } from \"./views/auth/login/login.component\";\r\nimport { RegisterComponent } from \"./views/auth/register/register.component\";\r\n\r\n// components for views and layouts\r\n\r\nimport { AdminNavbarComponent } from \"./components/navbars/admin-navbar/admin-navbar.component\";\r\nimport { FooterComponent } from \"./components/footers/footer/footer.component\";\r\nimport { SidebarComponent } from \"./components/sidebar/sidebar.component\";\r\nimport { LandingComponent } from \"./views/landing/landing.component\";\r\nimport { FormContactsComponent } from \"./components/forms/form-contacts/form-contacts.component\";\r\nimport { FormCompanynameComponent } from \"./components/forms/form-companyname/form-companyname.component\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { ToastrModule } from \"ngx-toastr\";\r\nimport { NgxSpinnerModule } from \"ngx-spinner\";\r\nimport { NgxPaginationModule } from \"ngx-pagination\";\r\nimport { PreventChangeRouteGuard } from \"./config/prevent-change-route/prevent-change-route.guard\";\r\nimport { WorksTableComponent } from \"./components/tables/works/works-table.component\";\r\nimport { WorksDetailsComponent } from \"./components/tables/works/details/works-details.component\";\r\nimport { TasksTableComponent } from \"./components/tables/tasks/tasks-table.component\";\r\nimport { TasksDetailsComponent } from \"./components/tables/tasks/details/tasks-details.component\";\r\nimport { PropertiesTableComponent } from \"./components/tables/properties/properties-table.component\";\r\nimport { PropertiesDetailsComponent } from \"./components/tables/properties/details/properties-details.component\";\r\nimport { ProjectsTableComponent } from \"./components/tables/projects/projects-table.component\";\r\nimport { ProjectsDetailsComponent } from \"./components/tables/projects/details/projects-details.component\";\r\nimport { AdvancesTableComponent } from \"./components/tables/advances/advances-table.component\";\r\nimport { AdvancesDetailsComponent } from \"./components/tables/advances/details/advances-details.component\";\r\nimport { RecoveryPasswordComponent } from \"./views/auth/recovery-password/recovery-password.component\";\r\nimport { CdkStepperModule } from \"@angular/cdk/stepper\";\r\nimport { EmailComponent } from \"./views/auth/recovery-password/steps/email/email.component\";\r\nimport { CodeComponent } from \"./views/auth/recovery-password/steps/code/code.component\";\r\nimport { NewPasswordComponent } from \"./views/auth/recovery-password/steps/new-password/new-password.component\";\r\nimport { CodeInputModule } from \"angular-code-input\";\r\nimport { BreadcrumbModule } from \"xng-breadcrumb\";\r\nimport { FileUploadModule } from \"@iplab/ngx-file-upload\";\r\nimport { UploadDocumentComponent } from \"./components/modals/upload-document/upload-document.component\";\r\nimport { AuthNavbarComponent } from \"./components/navbars/auth-navbar/auth-navbar.component\";\r\nimport { Ng2SearchPipeModule } from \"ng2-search-filter\";\r\nimport { MsalModule } from \"@azure/msal-angular\";\r\nimport { PublicClientApplication } from \"@azure/msal-browser\";\r\nimport { InternalTableComponent } from \"./components/tables/works/internal/internal-table/internal-table.component\";\r\nimport { InternalWorksComponent } from \"./views/admin/works/internal/internal-works/internal-works.component\";\r\nimport { GooglemapsComponent } from \"./components/googlemaps/googlemaps.component\";\r\nimport { CalculatecardsComponent } from \"./components/calculatecards/calculatecards.component\";\r\nimport { GraphicsComponent } from \"./components/graphics/graphics.component\";\r\nimport { AgmCoreModule } from \"@agm/core\";\r\nimport { NgApexchartsModule } from \"ng-apexcharts\";\r\nimport { InternalDetailsComponent } from \"./components/tables/works/internal/internal-details/internal-details.component\";\r\nimport { DatepickerModule } from \"ng2-datepicker\";\r\nimport { InternalProjectsComponent } from \"./views/admin/projects/internal/internal-projects/internal-projects.component\";\r\nimport { InternalDetailsProjectsComponent } from \"./components/tables/projects/internal/internal-details-projects/internal-details-projects.component\";\r\nimport { InternalTableProjectsComponent } from \"./components/tables/projects/internal/internal-table-projects/internal-table-projects.component\";\r\nimport { InternalPropertiesComponent } from \"./views/admin/properties/internal/internal-properties/internal-properties.component\";\r\nimport { InternalDetailsPropertiesComponent } from \"./components/tables/properties/internal/internal-details-properties/internal-details-properties.component\";\r\nimport { InternalTablePropertiesComponent } from \"./components/tables/properties/internal/internal-table-properties/internal-table-properties.component\";\r\nimport { InternalDetailsTasksComponent } from \"./components/tables/tasks/internal/internal-details-tasks/internal-details-tasks.component\";\r\nimport { InternalTableTasksComponent } from \"./components/tables/tasks/internal/internal-table-tasks/internal-table-tasks.component\";\r\nimport { InternalTasksComponent } from \"./views/admin/tasks/internal/internal-tasks/internal-tasks.component\";\r\nimport { EditTaskDialogComponent } from \"./components/tables/tasks/internal/internal-table-tasks/edit-task-dialog/edit-task-dialog.component\";\r\nimport {\r\n MatDialogModule,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA,\r\n} from \"@angular/material/dialog\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatSelectModule } from \"@angular/material/select\";\r\nimport { MatMenuModule } from \"@angular/material/menu\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatDividerModule } from \"@angular/material/divider\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\r\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\r\nimport { MatCardModule } from \"@angular/material/card\";\r\nimport { MatStepperModule } from \"@angular/material/stepper\";\r\nimport { MatTabsModule } from \"@angular/material/tabs\";\r\nimport { MatTableModule } from \"@angular/material/table\";\r\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\r\nimport {\r\n NgxMatDatetimePickerModule,\r\n NgxMatTimepickerModule,\r\n} from \"@angular-material-components/datetime-picker\";\r\nimport { CustomTooltipComponent } from \"./components/custom-tooltip/custom-tooltip.component\";\r\nimport { ToolTipRendererDirective } from \"./config/directives/tool-tip-renderer.directive\";\r\nimport { TruncateTextPipe } from \"./config/pipes/truncate-text.pipe\";\r\nimport { NgxMatSelectSearchModule } from \"ngx-mat-select-search\";\r\nimport { SelectSearchPipe } from \"./config/pipes/select-search.pipe\";\r\nimport { TasksGraphicsComponent } from \"./components/tables/tasks/graphics/tasks-graphics.component\";\r\nimport { AdvancedSettingsComponent } from \"./views/admin/advanced-settings/advanced-settings.component\";\r\nimport { UsersComponent } from \"./views/admin/advanced-settings/security/users/users.component\";\r\nimport { SecurityRolesComponent } from \"./views/admin/advanced-settings/security/security-roles/security-roles.component\";\r\nimport { MatNativeDateModule } from \"@angular/material/core\";\r\nimport { NgxMatMomentModule } from \"@angular-material-components/moment-adapter\";\r\nimport { ManageSecurityRolesDialogComponent } from \"./views/admin/advanced-settings/security/security-roles/manage-security-roles-dialog/manage-security-roles-dialog.component\";\r\nimport { ManageUserDialogComponent } from \"./views/admin/advanced-settings/security/users/manage-user-dialog/manage-user-dialog.component\";\r\nimport { ConfirmDialogComponent } from \"./components/confirm-dialog/confirm-dialog.component\";\r\nimport { FeaturesComponent } from \"./views/admin/advanced-settings/security/features/features.component\";\r\nimport { ManageFeaturesDialogComponent } from \"./views/admin/advanced-settings/security/features/manage-features-dialog/manage-features-dialog.component\";\r\nimport { RuleJobsComponent } from \"./views/admin/advanced-settings/production-settings/rule-jobs/rule-jobs.component\";\r\nimport { ManageRuleJobsComponent } from \"./views/admin/advanced-settings/production-settings/rule-jobs/manage-rule-jobs/manage-rule-jobs.component\";\r\nimport { InternalContactsComponent } from \"./views/admin/internal-contacts/internal-contacts.component\";\r\nimport { ManageInternalContactDialogComponent } from \"./views/admin/internal-contacts/manage-internal-contact-dialog/manage-internal-contact-dialog.component\";\r\nimport { AccountsComponent } from \"./views/admin/accounts/accounts.component\";\r\nimport { ManageAccountDialogComponent } from \"./views/admin/accounts/manage-account-dialog/manage-account-dialog.component\";\r\nimport { InputNumberDirective } from \"./config/directives/input-number.directive\";\r\nimport { InputEmailDirective } from \"./config/directives/input-email.directive\";\r\nimport { ConfirmDialogNewVersionComponent } from \"./components/modals/confirm-dialog/confirm-dialog.component\";\r\nimport { ClickStopPropagationDirective } from \"./config/directives/click-stop-propagation.directive\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport {\r\n CurrencyMaskConfig,\r\n CurrencyMaskModule,\r\n CURRENCY_MASK_CONFIG,\r\n} from \"ng2-currency-mask\";\r\nimport { ProjectGraphicComponent } from \"./components/tables/projects/graphics/project-graphic/project-graphic.component\";\r\nimport { UploadFilesComponent } from './utils/upload-files/upload-files.component';\r\nimport { MatSortModule } from \"@angular/material/sort\";\r\nimport { UpdateDocumentDialogComponent } from './utils/update-document-dialog/update-document-dialog.component';\r\nimport { ReplaceKeepFileComponent } from './utils/replace-keep-file/replace-keep-file.component';\r\nimport { CollaborationDialogComponent } from './components/tables/works/internal/internal-details/collaboration-dialog/collaboration-dialog.component';\r\nimport { ConfirmationCollaborationDialogComponent } from './components/tables/works/internal/internal-details/collaboration-dialog/confirmation-collaboration-dialog/confirmation-collaboration-dialog.component';\r\nimport { CodeConfirmationComponent } from './views/auth/recovery-password/steps/code-confirmation/code-confirmation.component';\r\nimport { RecaptchaModule } from \"ng-recaptcha\";\r\nimport { TokenExpiredComponent } from './views/auth/recovery-password/steps/token-expired/token-expired.component';\r\nimport { InspectionDialogComponent } from './components/tables/works/internal/internal-details/inspection-dialog/inspection-dialog.component';\r\nimport { ConfirmationInspectionDialogComponent } from './components/tables/works/internal/internal-details/inspection-dialog/confirmation-inspection-dialog/confirmation-inspection-dialog.component';\r\n\r\nconst isIE =\r\n window.navigator.userAgent.indexOf(\"MSIE \") > -1 ||\r\n window.navigator.userAgent.indexOf(\"Trident/\") > -1;\r\n\r\nexport const CustomCurrencyMaskConfig: CurrencyMaskConfig = {\r\n align: \"left\",\r\n allowNegative: true,\r\n decimal: \",\",\r\n precision: 0,\r\n prefix: \"$ \",\r\n suffix: \"\",\r\n thousands: \".\",\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n SidebarComponent,\r\n FooterComponent,\r\n AdminNavbarComponent,\r\n AdminComponent,\r\n AuthComponent,\r\n LoginComponent,\r\n LandingComponent,\r\n RegisterComponent,\r\n CompanynameComponent,\r\n ContactsComponent,\r\n FormContactsComponent,\r\n FormCompanynameComponent,\r\n ProjectsComponent,\r\n PropertiesComponent,\r\n WorksComponent,\r\n TasksComponent,\r\n AdvancesComponent,\r\n WorksTableComponent,\r\n WorksDetailsComponent,\r\n TasksTableComponent,\r\n TasksDetailsComponent,\r\n PropertiesTableComponent,\r\n PropertiesDetailsComponent,\r\n ProjectsTableComponent,\r\n ProjectsDetailsComponent,\r\n AdvancesTableComponent,\r\n AdvancesDetailsComponent,\r\n RecoveryPasswordComponent,\r\n EmailComponent,\r\n CodeComponent,\r\n NewPasswordComponent,\r\n UploadDocumentComponent,\r\n AuthNavbarComponent,\r\n InternalTableComponent,\r\n InternalWorksComponent,\r\n GooglemapsComponent,\r\n CalculatecardsComponent,\r\n GraphicsComponent,\r\n InternalDetailsComponent,\r\n InternalProjectsComponent,\r\n InternalDetailsProjectsComponent,\r\n InternalTableProjectsComponent,\r\n InternalPropertiesComponent,\r\n InternalDetailsPropertiesComponent,\r\n InternalTablePropertiesComponent,\r\n InternalDetailsTasksComponent,\r\n InternalTableTasksComponent,\r\n InternalTasksComponent,\r\n EditTaskDialogComponent,\r\n CustomTooltipComponent,\r\n ToolTipRendererDirective,\r\n TruncateTextPipe,\r\n SelectSearchPipe,\r\n TasksGraphicsComponent,\r\n AdvancedSettingsComponent,\r\n UsersComponent,\r\n SecurityRolesComponent,\r\n ManageSecurityRolesDialogComponent,\r\n ManageUserDialogComponent,\r\n ConfirmDialogComponent,\r\n FeaturesComponent,\r\n ManageFeaturesDialogComponent,\r\n RuleJobsComponent,\r\n ManageRuleJobsComponent,\r\n InternalContactsComponent,\r\n ManageInternalContactDialogComponent,\r\n AccountsComponent,\r\n ManageAccountDialogComponent,\r\n InputNumberDirective,\r\n InputEmailDirective,\r\n ConfirmDialogNewVersionComponent,\r\n ClickStopPropagationDirective,\r\n ProjectGraphicComponent,\r\n UploadFilesComponent,\r\n UpdateDocumentDialogComponent,\r\n ReplaceKeepFileComponent,\r\n CollaborationDialogComponent,\r\n ConfirmationCollaborationDialogComponent,\r\n CodeConfirmationComponent,\r\n TokenExpiredComponent,\r\n InspectionDialogComponent,\r\n ConfirmationInspectionDialogComponent\r\n ],\r\n imports: [\r\n MatSelectModule,\r\n NgxMatSelectSearchModule,\r\n MatExpansionModule,\r\n NgApexchartsModule,\r\n DatepickerModule,\r\n RecaptchaModule,\r\n AgmCoreModule.forRoot({\r\n apiKey: environment.agmConfiguration.apiKey,\r\n }),\r\n MsalModule.forRoot(\r\n new PublicClientApplication({\r\n auth: {\r\n clientId: environment.clientID,\r\n authority:\r\n \"https://login.microsoftonline.com/14e28cbc-0266-4ab7-bf6b-9e0082c2e11e\",\r\n redirectUri: window.location.origin,\r\n },\r\n cache: {\r\n cacheLocation: \"localStorage\",\r\n storeAuthStateInCookie: isIE,\r\n },\r\n }),\r\n null,\r\n null\r\n ),\r\n AppRoutingModule,\r\n BrowserModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n HttpClientModule,\r\n BrowserAnimationsModule,\r\n ToastrModule.forRoot(),\r\n NgxSpinnerModule,\r\n NgxPaginationModule,\r\n CdkStepperModule,\r\n CodeInputModule,\r\n BreadcrumbModule,\r\n FileUploadModule,\r\n Ng2SearchPipeModule,\r\n MatDialogModule,\r\n MatMenuModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatDividerModule,\r\n MatIconModule,\r\n MatCheckboxModule,\r\n NgxMatDatetimePickerModule,\r\n NgxMatTimepickerModule,\r\n MatDatepickerModule,\r\n MatButtonModule,\r\n MatProgressSpinnerModule,\r\n MatNativeDateModule,\r\n MatSlideToggleModule,\r\n MatCardModule,\r\n MatStepperModule,\r\n MatTabsModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatSortModule,\r\n NgxMatMomentModule,\r\n CurrencyMaskModule,\r\n ],\r\n providers: [\r\n PreventChangeRouteGuard,\r\n { provide: MAT_DIALOG_DATA, useValue: {} },\r\n { provide: MatDialogRef, useValue: {} },\r\n { provide: CURRENCY_MASK_CONFIG, useValue: CustomCurrencyMaskConfig }\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { InternalWorksResponse } from 'src/app/models/works/internal.works.response.model';\r\n\r\n@Component({\r\n selector: 'app-calculatecards',\r\n templateUrl: './calculatecards.component.html'\r\n})\r\nexport class CalculatecardsComponent implements OnInit {\r\n\r\n inProgressJobs = [];\r\n totalInprogressJobs: string | number;\r\n invoiceJobs = [];\r\n totalInvoiceJobs: string | number;\r\n paidJobs = [];\r\n totalPaidJobs: string | number;\r\n remaingJobs = [];\r\n totalRemaingJobs: string | number;\r\n activeJobs = []; \r\n totalActiveJobs: string | number;\r\n pastDueJobs = [];\r\n totalPastDueDays: number = 0;\r\n\r\n @Input() set internalJobs(jobs: InternalWorksResponse[]) {\r\n this.calculatedCards(jobs);\r\n this.calculatePastDue(jobs);\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n calculatePastDue(jobs: InternalWorksResponse[]) {\r\n this.totalPastDueDays = 0;\r\n this.pastDueJobs = jobs;\r\n jobs.forEach(job => {\r\n this.totalPastDueDays = this.totalPastDueDays += Math.abs(moment(job.due_Date).diff(moment(new Date()), 'days'));\r\n });\r\n }\r\n\r\n calculatedCards(jobs: InternalWorksResponse[]) {\r\n\r\n this.inProgressJobs = jobs.filter(job => job.job_Status === 'In Progress');\r\n this.totalInprogressJobs = this.kFormatter(this.inProgressJobs.reduce((total, job) => total + job.equivalent_USD, 0)); \r\n\r\n this.invoiceJobs = jobs.filter(job => job.job_Status === 'Invoice');\r\n this.totalInvoiceJobs = this.kFormatter(this.invoiceJobs.reduce((total, job) => total + job.equivalent_USD, 0)); \r\n\r\n this.paidJobs = jobs.filter(job => job.job_Status === 'Paid');\r\n this.totalPaidJobs = this.kFormatter(this.paidJobs.reduce((total, job) => total + job.equivalent_USD, 0)); \r\n\r\n this.remaingJobs = jobs.filter(job => job.job_Status === 'Remaining');\r\n this.totalRemaingJobs = this.kFormatter(this.remaingJobs.reduce((total, job) => total + job.equivalent_USD, 0)); \r\n\r\n this.activeJobs = jobs.filter(job => job.job_Status === 'Activo');\r\n this.totalActiveJobs = this.kFormatter(this.activeJobs.reduce((total, job) => total + job.equivalent_USD, 0)); \r\n\r\n }\r\n\r\n kFormatter(num) {\r\n return Math.abs(num) > 999 ? Math.sign(num)*Number((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: \"app-confirm-dialog\",\r\n templateUrl: \"./confirm-dialog.component.html\",\r\n})\r\nexport class ConfirmDialogComponent implements OnInit {\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n title: string;\r\n message: string;\r\n description: string;\r\n note: string;\r\n }\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-custom-tooltip\",\r\n templateUrl: \"./custom-tooltip.component.html\",\r\n})\r\nexport class CustomTooltipComponent implements OnInit {\r\n @Input() contentTemplate: TemplateRef;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"app-footer\",\n templateUrl: \"./footer.component.html\",\n})\nexport class FooterComponent implements OnInit {\n date = new Date().getFullYear();\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, EventEmitter, OnInit, Output } from \"@angular/core\";\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { CountryResponse } from \"../../../models/localizations/country.reponse.model\";\r\nimport { StateResponse } from \"../../../models/localizations/state.response.model\";\r\nimport { CityResponse } from \"../../../models/localizations/city.response.model\";\r\nimport { LocalizationsService } from \"../../../services/localizations/localizations.service\";\r\nimport { combineLatest } from \"rxjs\";\r\nimport { CompanyNameService } from \"../../../services/admin-services/company-name/company-name.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { CompanyNameResponse } from \"src/app/models/company-names/company-name.response.model\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { Router } from \"@angular/router\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\n\r\n@Component({\r\n selector: \"app-form-companyname\",\r\n templateUrl: \"./form-companyname.component.html\",\r\n})\r\nexport class FormCompanynameComponent implements OnInit {\r\n public companyNameForm: UntypedFormGroup;\r\n @Output() companyNameFormEvent = new EventEmitter();\r\n public countriesResponse: CountryResponse[];\r\n public statesResponse: StateResponse[];\r\n public citiesResponse: CityResponse[];\r\n public companyNamesResponse: CompanyNameResponse[];\r\n public states: StateResponse[];\r\n public cities: CityResponse[];\r\n public countryId = [];\r\n public stateId = [];\r\n public showCompanyNameForm = false;\r\n\r\n constructor(\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly localizationsService: LocalizationsService,\r\n private readonly companyNameService: CompanyNameService,\r\n private readonly toastr: ToastrService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildFormCompanyName();\r\n this.getLocalizations();\r\n }\r\n\r\n private buildFormCompanyName() {\r\n this.companyNameForm = this.formBuilder.group({\r\n companyName: this.formBuilder.array([\r\n this.formBuilder.group({\r\n Nombre: [\"\", Validators.required],\r\n Nit: [\"\", Validators.required],\r\n Direccion: [\"\", Validators.required],\r\n Pais: [null, Validators.required],\r\n Departamento: [null, Validators.required],\r\n Ciudad: [null, Validators.required],\r\n CodigoZip: [\"\", Validators.required],\r\n Telefono: [\"\", Validators.required],\r\n CorreoFirmaElectronica: [\"\", [Validators.required, Validators.pattern(\"^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$\")]],\r\n Guid: [sessionStorage.getItem(\"guidClient\"), Validators.required],\r\n Cliente: [sessionStorage.getItem(\"companyName\"), Validators.required],\r\n GuidCliente: [sessionStorage.getItem(\"guidCompany\"), Validators.required]\r\n }),\r\n ]),\r\n });\r\n this.companyNameFormEvent.emit(this.companyNameForm);\r\n }\r\n\r\n public get companyNames() {\r\n return this.companyNameForm.get(\"companyName\") as UntypedFormArray;\r\n }\r\n\r\n public addCompanyName() {\r\n this.companyNames.push(\r\n this.formBuilder.group({\r\n Nombre: [\"\", Validators.required],\r\n Nit: [\"\", Validators.required],\r\n Direccion: [\"\", Validators.required],\r\n Pais: [null, Validators.required],\r\n Departamento: [null, Validators.required],\r\n Ciudad: [null, Validators.required],\r\n CodigoZip: [\"\", Validators.required],\r\n Telefono: [\"\", Validators.required],\r\n CorreoFirmaElectronica: [\"\", Validators.required],\r\n Guid: [sessionStorage.getItem(\"guidClient\"), Validators.required],\r\n Cliente: [sessionStorage.getItem(\"companyName\"), Validators.required],\r\n GuidCliente: [sessionStorage.getItem(\"guidCompany\"), Validators.required]\r\n })\r\n );\r\n }\r\n\r\n public deleteCompanyName(index) {\r\n this.companyNames.removeAt(index);\r\n }\r\n\r\n public getLocalizations() {\r\n this.spinner.show();\r\n combineLatest([\r\n this.localizationsService.currentCountries,\r\n this.localizationsService.currentStates,\r\n this.localizationsService.currentCities,\r\n this.companyNameService.currentCompanyNames\r\n ]).subscribe(([countries, states, cities, companyNames]) => {\r\n if (countries !== null && states !== null && cities !== null && companyNames !== null) {\r\n this.countriesResponse = countries;\r\n this.statesResponse = states;\r\n this.citiesResponse = cities;\r\n this.companyNamesResponse = companyNames;\r\n this.spinner.hide();\r\n }\r\n });\r\n }\r\n\r\n public selectCountry(indexCountry) {\r\n if (this.countryId[indexCountry]) {\r\n this.states = this.statesResponse.filter(\r\n (item) => item.country_ID == this.countryId[indexCountry]\r\n );\r\n }\r\n }\r\n\r\n public selectState(indexState) {\r\n if (this.stateId[indexState]) {\r\n this.cities = this.citiesResponse.filter(\r\n (item) => item.department_ID == this.stateId[indexState]\r\n );\r\n }\r\n }\r\n\r\n public saveCompanyNames() {\r\n if (this.companyNameForm.invalid) {\r\n return Object.values(this.companyNameForm.controls).forEach((control) => {\r\n if (control instanceof UntypedFormGroup) {\r\n Object.values(control.controls).forEach((ctrl) =>\r\n ctrl.markAsTouched()\r\n );\r\n } else {\r\n control.markAllAsTouched();\r\n }\r\n });\r\n } else {\r\n this.spinner.show();\r\n this.companyNameService\r\n .saveCompanyNames(this.companyNameForm.value.companyName)\r\n .subscribe((resp) => {\r\n if (resp) {\r\n this.toastr.success(\r\n \"Se ha registrado exitosamente la/las razon(es) sociales\",\r\n \"Registro razones sociales\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.companyNameForm.reset();\r\n this.getNewCompanyNames();\r\n this.spinner.hide();\r\n this.showCompanyNameForm = false;\r\n } else {\r\n this.toastr.error(\r\n \"Se han presentado problemas para almacenar la/las razon(es) sociales\",\r\n \"Registro razones sociales\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n });\r\n }\r\n }\r\n\r\n public getNewCompanyNames() {\r\n this.companyNameService.getCompanyNames().subscribe( (resp:CompanyNameResponse[]) => {\r\n this.companyNameService.setCompanyNames(resp);\r\n })\r\n }\r\n\r\n public toggleCompanyNameForm() {\r\n this.showCompanyNameForm = !this.showCompanyNameForm;\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, OnInit, Output } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { Router } from \"@angular/router\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { combineLatest, Observable } from \"rxjs\";\r\nimport { CompanyNameResponse } from \"src/app/models/company-names/company-name.response.model\";\r\nimport { CityResponse } from \"src/app/models/localizations/city.response.model\";\r\nimport { CountryResponse } from \"src/app/models/localizations/country.reponse.model\";\r\nimport { StateResponse } from \"src/app/models/localizations/state.response.model\";\r\nimport { CompanyNameService } from \"src/app/services/admin-services/company-name/company-name.service\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { LocalizationsService } from \"src/app/services/localizations/localizations.service\";\r\nimport { ContactsService } from \"../../../services/admin-services/contacts/contacts.service\";\r\n\r\n@Component({\r\n selector: \"app-form-contacts\",\r\n templateUrl: \"./form-contacts.component.html\",\r\n})\r\nexport class FormContactsComponent implements OnInit {\r\n public contactsForm: UntypedFormGroup;\r\n @Output() contactFormEvent = new EventEmitter();\r\n public countriesResponse: CountryResponse[];\r\n public statesResponse: StateResponse[];\r\n public citiesResponse: CityResponse[];\r\n public companyNamesResponse: CompanyNameResponse[];\r\n public contactsResponse: any[];\r\n public states: StateResponse[];\r\n public cities: CityResponse[];\r\n public countryId: number;\r\n public stateId: number;\r\n public showContactForm = false;\r\n\r\n constructor(\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly localizationsService: LocalizationsService,\r\n private readonly contactService: ContactsService,\r\n private readonly toastr: ToastrService,\r\n private readonly companyNameService: CompanyNameService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildContactForm();\r\n this.getLocalizations();\r\n this.loadSideBarConfiguration();\r\n }\r\n\r\n loadSideBarConfiguration() {\r\n let sidebar = document.querySelector(\".sidebar\");\r\n let closeBtn = document.querySelector(\"#btnMenu\");\r\n\r\n closeBtn.addEventListener(\"click\", () => {\r\n sidebar.classList.toggle(\"open\");\r\n menuBtnChange();\r\n });\r\n\r\n function menuBtnChange() {\r\n if (sidebar.classList.contains(\"open\")) {\r\n closeBtn.classList.replace(\"bx-menu\", \"bx-menu-alt-right\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-14\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-3\");\r\n } else {\r\n closeBtn.classList.replace(\"bx-menu-alt-right\", \"bx-menu\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-3\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-14\");\r\n }\r\n }\r\n }\r\n\r\n private buildContactForm() {\r\n this.contactsForm = this.formBuilder.group({\r\n Email: [\r\n \"\",\r\n [\r\n Validators.required,\r\n Validators.pattern(\"^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$\"),\r\n ],\r\n ],\r\n TelefonoTrabajo: [\"\", Validators.required],\r\n Cargo: [\"\", Validators.required],\r\n Rol: [null, Validators.required],\r\n Nombres: [\"\", Validators.required],\r\n Apellidos: [\"\", Validators.required],\r\n Pais: [null, Validators.required],\r\n Departamento: [null, Validators.required],\r\n Ciudad: [null, Validators.required],\r\n RazonSocial: [null, Validators.required],\r\n Estado: [\"Desactivado\", Validators.required],\r\n GuidCompany: [sessionStorage.getItem(\"guidCompany\"), Validators.required],\r\n });\r\n this.contactFormEvent.emit(this.contactsForm);\r\n }\r\n\r\n private getLocalizations() {\r\n this.spinner.show();\r\n combineLatest([\r\n this.localizationsService.currentCountries,\r\n this.localizationsService.currentStates,\r\n this.localizationsService.currentCities,\r\n this.companyNameService.currentCompanyNames,\r\n this.contactService.currentContacts,\r\n ]).subscribe(([countries, states, cities, companyNames, contacts]) => {\r\n if (\r\n countries !== null &&\r\n states !== null &&\r\n cities !== null &&\r\n companyNames !== null &&\r\n contacts !== null\r\n ) {\r\n this.countriesResponse = countries;\r\n this.statesResponse = states;\r\n this.citiesResponse = cities;\r\n this.companyNamesResponse = companyNames;\r\n this.contactsResponse = contacts;\r\n this.spinner.hide();\r\n }\r\n });\r\n }\r\n\r\n public selectCountry() {\r\n if (this.countryId) {\r\n this.states = this.statesResponse.filter(\r\n (item) => item.country_ID == this.countryId\r\n );\r\n }\r\n }\r\n\r\n public selectState() {\r\n if (this.stateId) {\r\n this.cities = this.citiesResponse.filter(\r\n (item) => item.department_ID == Number(this.stateId)\r\n );\r\n }\r\n }\r\n\r\n public saveContact() {\r\n if (this.contactsForm.invalid) {\r\n return Object.values(this.contactsForm.controls).forEach((control) => {\r\n if (control instanceof UntypedFormGroup) {\r\n Object.values(control.controls).forEach((ctrl) =>\r\n ctrl.markAsTouched()\r\n );\r\n } else {\r\n control.markAllAsTouched();\r\n }\r\n });\r\n } else {\r\n this.spinner.show();\r\n this.contactService\r\n .saveContact(this.contactsForm.value)\r\n .subscribe((resp) => {\r\n this.contactsForm.reset();\r\n this.toastr.success(\r\n \"Se ha registrado exitosamente el contacto!\",\r\n \"Registro contacto\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.showContactForm = false;\r\n this.spinner.hide();\r\n });\r\n }\r\n }\r\n\r\n public toggleContactForm() {\r\n this.showContactForm = !this.showContactForm;\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n}\r\n","import { AgmInfoWindow } from \"@agm/core\";\r\nimport { Component, Input, OnInit } from \"@angular/core\";\r\nimport { marker } from \"src/app/models/googlemaps/markers.model\";\r\n\r\n@Component({\r\n selector: \"app-googlemaps\",\r\n templateUrl: \"./googlemaps.component.html\",\r\n})\r\nexport class GooglemapsComponent implements OnInit {\r\n @Input() set internalProperties(properties: any) {\r\n this.generateMarkers(properties);\r\n }\r\n @Input() heightMap: string;\r\n @Input() componentName: string;\r\n\r\n // google maps zoom level\r\n zoom: number = 6;\r\n\r\n // initial center position for the map\r\n lat: number = 6.20312;\r\n lng: number = -75.57141;\r\n\r\n markers: marker[] = [];\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n generateMarkers(properties: any) {\r\n this.markers = [];\r\n\r\n if (this.componentName === \"jobs\") {\r\n this.lat = 6.20312;\r\n this.lng = -75.57141;\r\n this.zoom = 6;\r\n properties?.forEach((property, index) => {\r\n this.markers.push({\r\n lat: Number(property.latitude),\r\n lng: Number(property.longitude),\r\n label: (index + 1).toString(),\r\n draggable: false,\r\n description: property.property_Name,\r\n });\r\n });\r\n } else {\r\n this.zoom = 12;\r\n this.lat = Number(properties?.latitude);\r\n this.lng = Number(properties?.longitude);\r\n this.markers.push({\r\n lat: Number(properties?.latitude),\r\n lng: Number(properties?.longitude),\r\n label: (1).toString(),\r\n draggable: false,\r\n description: properties?.property_Name,\r\n });\r\n }\r\n }\r\n\r\n mouseOverMarker(infoWindow: AgmInfoWindow) {\r\n infoWindow.open();\r\n }\r\n\r\n mouseOutMarker(infoWindow: AgmInfoWindow) {\r\n infoWindow.close();\r\n }\r\n\r\n markerDragEnd(m: marker, $event: MouseEvent) {\r\n console.log(\"dragEnd\", m, $event);\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport {\r\n ApexAxisChartSeries,\r\n ApexChart,\r\n ChartComponent,\r\n ApexDataLabels,\r\n ApexPlotOptions,\r\n ApexResponsive,\r\n ApexXAxis,\r\n ApexLegend,\r\n ApexFill,\r\n ApexTooltip,\r\n ApexYAxis,\r\n} from 'ng-apexcharts';\r\nimport { InternalWorksResponse } from 'src/app/models/works/internal.works.response.model';\r\nimport * as moment from 'moment';\r\n\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries;\r\n chart: ApexChart;\r\n dataLabels: ApexDataLabels;\r\n plotOptions: ApexPlotOptions;\r\n responsive: ApexResponsive[];\r\n xaxis: ApexXAxis;\r\n yaxis: ApexYAxis;\r\n legend: ApexLegend;\r\n fill: ApexFill;\r\n tooltip: ApexTooltip;\r\n};\r\n@Component({\r\n selector: 'app-graphics',\r\n templateUrl: './graphics.component.html',\r\n})\r\nexport class GraphicsComponent implements OnInit {\r\n @ViewChild('chart') chart: ChartComponent;\r\n public chartOptions: Partial;\r\n jobsList = [];\r\n\r\n @Input() set internalJobs(jobs: InternalWorksResponse[]) {\r\n if (jobs?.length > 0) {\r\n\r\n const jobsFormatedDate = jobs\r\n .map((job) => ({\r\n ...job,\r\n due_Date: moment(job.due_Date, 'YYYY/MM/DD')\r\n .format('MMM')\r\n .concat(' ')\r\n .concat(moment(job.due_Date, 'YYYY/MM/DD').format('YYYY')),\r\n }));\r\n\r\n this.months.forEach((month) => {\r\n const exists = jobsFormatedDate.find(\r\n (category) => category.due_Date.substring(0, 3) === month\r\n );\r\n if (!exists) {\r\n jobsFormatedDate.push({\r\n account_Officer: '',\r\n address: '',\r\n business_Unit: '',\r\n city: '',\r\n country: '',\r\n created: '',\r\n currency: '',\r\n deliverable: '',\r\n department: '',\r\n due_Date: month + ' ' + new Date().getFullYear(),\r\n email_Account_Officer: '',\r\n equivalent_USD: 0,\r\n external_Fees: 0,\r\n id: 0,\r\n internal_fees: 0,\r\n job_Comments: '',\r\n job_Manager: '',\r\n job_Number: '',\r\n job_Status: '',\r\n iD_Job_Status: 0,\r\n job_type: '',\r\n latitude: '',\r\n longitude: '',\r\n name_Job_Manager: '',\r\n phone_Account_Officer: '',\r\n project_Number: '',\r\n property_Name: '',\r\n property_Number: '',\r\n sector: '',\r\n zipCode: 0,\r\n account: '',\r\n Id_property_Contact: 0,\r\n Id_Inspection_Contact: 0,\r\n Valuation_Scenarios: \"\",\r\n Interest_Valued: \"\",\r\n Type_of_Value: \"\",\r\n Inspection_Required: \"\",\r\n Days_to_Deliver: 0\r\n });\r\n }\r\n });\r\n\r\n jobsFormatedDate.sort((a, b) => Number(moment(a.due_Date)) - Number(moment(b.due_Date)));\r\n\r\n this.jobsList = jobs;\r\n this.settingsChart(jobsFormatedDate);\r\n }\r\n }\r\n\r\n months = [\r\n 'Jan',\r\n 'Feb',\r\n 'Mar',\r\n 'Apr',\r\n 'May',\r\n 'Jun',\r\n 'Jul',\r\n 'Aug',\r\n 'Sep',\r\n 'Oct',\r\n 'Nov',\r\n 'Dec',\r\n ];\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n settingsChart(jobs: InternalWorksResponse[]) {\r\n this.chartOptions = {\r\n series: this.getSeries(jobs),\r\n chart: {\r\n type: 'bar',\r\n height: 470,\r\n stacked: true,\r\n toolbar: {\r\n show: true,\r\n },\r\n zoom: {\r\n enabled: true,\r\n },\r\n },\r\n responsive: [\r\n {\r\n breakpoint: 480,\r\n options: {\r\n legend: {\r\n position: 'bottom',\r\n offsetX: -10,\r\n offsetY: 0,\r\n },\r\n },\r\n },\r\n ],\r\n plotOptions: {\r\n bar: {\r\n horizontal: false,\r\n },\r\n },\r\n xaxis: {\r\n type: 'category',\r\n categories: this.getCategories(jobs),\r\n },\r\n yaxis: {\r\n title: {\r\n text: '$ (USD)',\r\n style: {\r\n fontWeight: 'bold',\r\n },\r\n },\r\n labels: {\r\n formatter (val) {\r\n return '$' + val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\r\n },\r\n },\r\n },\r\n legend: {\r\n position: 'bottom',\r\n itemMargin: {\r\n vertical: 3,\r\n },\r\n markers: {\r\n fillColors: [\r\n '#415AA8',\r\n '#1A468D',\r\n '#254382',\r\n '#51737F',\r\n '#0080C8',\r\n '#03B1E5',\r\n '#ABC8E6',\r\n '#5D6770',\r\n '#FE0000',\r\n '#FD4600',\r\n '#FF6D3E',\r\n '#FAA21C',\r\n '#B4B5B7',\r\n '#FDE3C0',\r\n ],\r\n },\r\n },\r\n fill: {\r\n colors: [\r\n '#415AA8',\r\n '#1A468D',\r\n '#254382',\r\n '#51737F',\r\n '#0080C8',\r\n '#03B1E5',\r\n '#ABC8E6',\r\n '#5D6770',\r\n '#FE0000',\r\n '#FD4600',\r\n '#FF6D3E',\r\n '#FAA21C',\r\n '#B4B5B7',\r\n '#FDE3C0',\r\n ],\r\n opacity: 1,\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n y: {\r\n formatter (val) {\r\n return (\r\n '$' +\r\n val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.') +\r\n ' USD'\r\n );\r\n },\r\n },\r\n marker: {\r\n fillColors: [\r\n '#415AA8',\r\n '#1A468D',\r\n '#254382',\r\n '#51737F',\r\n '#0080C8',\r\n '#03B1E5',\r\n '#ABC8E6',\r\n '#5D6770',\r\n '#FE0000',\r\n '#FD4600',\r\n '#FF6D3E',\r\n '#FAA21C',\r\n '#B4B5B7',\r\n '#FDE3C0',\r\n ],\r\n },\r\n },\r\n };\r\n }\r\n\r\n getSeries(jobs: InternalWorksResponse[]) {\r\n const result = [];\r\n const series = [];\r\n\r\n const reducesJobs = jobs.reduce((res: {}, value: InternalWorksResponse) => {\r\n if (\r\n !res[value.due_Date] ||\r\n res[value.due_Date].job_Manager !== value.job_Manager\r\n ) {\r\n res[value.due_Date] = {\r\n job_Manager: value.job_Manager,\r\n equivalentUSD: 0,\r\n month: value.due_Date,\r\n };\r\n result.push(res[value.due_Date]);\r\n }\r\n\r\n res[value.due_Date].equivalentUSD += value.equivalent_USD;\r\n\r\n return res;\r\n }, {});\r\n\r\n if (result.length > 0) {\r\n result\r\n .map((job) => job.job_Manager)\r\n .filter((value: any, index: number, self: any[]) => self.indexOf(value) === index)\r\n .forEach((jobManager) => {\r\n series.push({\r\n name: jobManager,\r\n data: [],\r\n });\r\n });\r\n\r\n series.forEach((serie) => {\r\n const months = [];\r\n result.forEach((job) => {\r\n if (serie.name === job.job_Manager) {\r\n months.push(job.month);\r\n serie.data.push(job.equivalentUSD);\r\n } else {\r\n const exits = months.includes(job.month);\r\n const filters = result.filter(\r\n (value) =>\r\n value.month === job.month && value.job_Manager === serie.name\r\n );\r\n\r\n if (!exits && filters.length === 0) {\r\n months.push(job.month);\r\n serie.data.push(0);\r\n }\r\n }\r\n });\r\n });\r\n if (series.length === 1) {\r\n series.push({ name: 'No existen más usuarios', data: [0] });\r\n }\r\n }\r\n return series.filter((serie) => serie.name !== '');\r\n }\r\n\r\n getCategories(jobs: InternalWorksResponse[]) {\r\n return jobs\r\n .map((job: InternalWorksResponse) => job.due_Date)\r\n .filter((value: string, index: number, self: string[]) => self.indexOf(value) === index);\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: \"app-confirm-dialog\",\r\n templateUrl: \"./confirm-dialog.component.html\",\r\n})\r\nexport class ConfirmDialogNewVersionComponent implements OnInit {\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n title: string;\r\n textSaveButton: string;\r\n textCloseButton: string;\r\n }\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup } from \"@angular/forms\";\r\nimport { FileUploadValidators } from \"@iplab/ngx-file-upload\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { PropertiesService } from \"src/app/services/admin-services/properties/properties.service\";\r\nimport Swal from \"sweetalert2\";\r\n\r\n@Component({\r\n selector: \"app-upload-document\",\r\n templateUrl: \"./upload-document.component.html\",\r\n})\r\nexport class UploadDocumentComponent implements OnInit {\r\n @Input() relationalDocument: any;\r\n\r\n private filesControl = new UntypedFormControl(\r\n null,\r\n FileUploadValidators.filesLimit(1)\r\n );\r\n\r\n public fileForm = new UntypedFormGroup({\r\n files: this.filesControl,\r\n });\r\n\r\n showModal = false;\r\n toggleModal() {\r\n this.showModal = !this.showModal;\r\n }\r\n\r\n constructor(\r\n private readonly _propertiesService: PropertiesService,\r\n private readonly spinner: NgxSpinnerService\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n saveDocument() {\r\n let body = {\r\n NombreDocumento: \"\",\r\n DocumentoCarga: \"\",\r\n Proyecto: this.relationalDocument.project_Number,\r\n Propiedad: this.relationalDocument.property,\r\n IdDocumentoProyecto: 0,\r\n UrlDocumentoRelacionado: \"\",\r\n };\r\n if (this.fileForm.get(\"files\").value) {\r\n this.spinner.show();\r\n const reader = new FileReader();\r\n reader.readAsDataURL(this.fileForm.get(\"files\").value[0]);\r\n reader.onload = () => {\r\n body.DocumentoCarga = reader.result.toString().split(\",\")[1];\r\n body.NombreDocumento = this.fileForm.get(\"files\").value[0].name;\r\n this._propertiesService.uploadRelationDocument(body).subscribe(\r\n (res) => {\r\n let bodyUpdate = {\r\n ID: this.relationalDocument.id,\r\n Document_Name: this.relationalDocument.document_Name,\r\n Document_Category: this.relationalDocument.document_Category,\r\n Project_Number: this.relationalDocument.project_Number,\r\n Property: this.relationalDocument.property,\r\n Document_Upload: true,\r\n Document_url: res.UrlDocumentoRelacionado,\r\n Created: this.relationalDocument.created,\r\n Id_RelacionDocumentoSH: res.IdDocumentoProyecto,\r\n };\r\n this._propertiesService\r\n .updateRelationDocument(bodyUpdate)\r\n .subscribe((resp) => {\r\n if (resp) {\r\n this.spinner.hide();\r\n } else {\r\n this.spinner.hide();\r\n Swal.fire({\r\n title: \"Error!\",\r\n text: \"Se presentó un inconveniente al actualizar el documento\",\r\n icon: \"error\",\r\n confirmButtonColor: \"#3085d6\",\r\n confirmButtonText: \"OK\",\r\n });\r\n }\r\n });\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n Swal.fire({\r\n title: \"Error!\",\r\n text: \"Se presentó un inconveniente al subir el documento\",\r\n icon: \"error\",\r\n confirmButtonColor: \"#3085d6\",\r\n confirmButtonText: \"OK\",\r\n });\r\n }\r\n );\r\n };\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"app-admin-navbar\",\n templateUrl: \"./admin-navbar.component.html\",\n})\nexport class AdminNavbarComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from 'src/app/services/auth/auth.service';\r\n\r\n@Component({\r\n selector: 'app-auth-navbar',\r\n templateUrl: './auth-navbar.component.html'\r\n})\r\nexport class AuthNavbarComponent implements OnInit {\r\n\r\n navbarOpen = false;\r\n\r\n constructor(private readonly router: Router, private readonly auth: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n setNavbarOpen() {\r\n this.navbarOpen = !this.navbarOpen;\r\n }\r\n\r\n navagiteToLogin() {\r\n this.router.navigate(['/auth/login']);\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { NavigationEnd, Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"app-sidebar\",\r\n templateUrl: \"./sidebar.component.html\",\r\n})\r\nexport class SidebarComponent implements OnInit {\r\n routerUrl: string;\r\n constructor(\r\n public readonly router: Router\r\n ) {}\r\n\r\n portalTitle: string;\r\n\r\n ngOnInit() {\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.routerUrl = event.url;\r\n }\r\n });\r\n\r\n this.portalTitle = sessionStorage.getItem(\"tipo\");\r\n }\r\n\r\n get routerWorksDetails() {\r\n return this.routerUrl?.includes(\"jobs-details\");\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\n\r\n@Component({\r\n selector: \"app-advances-table\",\r\n templateUrl: \"./advances-table.component.html\",\r\n})\r\nexport class AdvancesTableComponent implements OnInit {\r\n constructor(\r\n private readonly authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadSideBarConfiguration();\r\n }\r\n\r\n loadSideBarConfiguration() {\r\n let sidebar = document.querySelector(\".sidebar\");\r\n let closeBtn = document.querySelector(\"#btnMenuAdvances\");\r\n\r\n closeBtn.addEventListener(\"click\", () => {\r\n sidebar.classList.toggle(\"open\");\r\n menuBtnChange();\r\n });\r\n\r\n function menuBtnChange() {\r\n if (sidebar.classList.contains(\"open\")) {\r\n closeBtn.classList.replace(\"bx-menu\", \"bx-menu-alt-right\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-14\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-3\");\r\n } else {\r\n closeBtn.classList.replace(\"bx-menu-alt-right\", \"bx-menu\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-3\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-14\");\r\n }\r\n }\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-advances-details',\r\n templateUrl: './advances-details.component.html'\r\n})\r\nexport class AdvancesDetailsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { combineLatest } from 'rxjs';\r\nimport { ProjectResponse } from 'src/app/models/projects/project.response.model';\r\nimport { PropertieResponse } from 'src/app/models/properties/properties.response.model';\r\nimport { WorksResponse } from 'src/app/models/works/woks.response.model';\r\nimport { ProjectsService } from 'src/app/services/admin-services/projects/projects.service';\r\nimport { PropertiesService } from 'src/app/services/admin-services/properties/properties.service';\r\nimport { WorksService } from 'src/app/services/admin-services/works/works.service';\r\n\r\n@Component({\r\n selector: 'app-projects-details',\r\n templateUrl: './projects-details.component.html'\r\n})\r\nexport class ProjectsDetailsComponent implements OnInit {\r\n\r\n openTab: number = 1;\r\n projectNumber: string;\r\n propertiesResponse: PropertieResponse[] = [];\r\n worksResponse: WorksResponse[] = [];\r\n projectsResponse: ProjectResponse[] = [];\r\n\r\n constructor(\r\n private readonly _Activatedroute: ActivatedRoute,\r\n private readonly _PropertiesService: PropertiesService,\r\n private readonly _WorksSevice: WorksService,\r\n private readonly _ProjectsService: ProjectsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getParameteresURL();\r\n }\r\n\r\n getParameteresURL() {\r\n this._Activatedroute.paramMap.subscribe(params => {\r\n this.projectNumber = params.get('projectNumber');\r\n });\r\n this.projectDetails();\r\n }\r\n\r\n\r\n toggleTabs($tabNumber: number){\r\n this.openTab = $tabNumber;\r\n }\r\n\r\n public projectDetails() {\r\n this.spinner.show();\r\n combineLatest([\r\n this._PropertiesService.getPropertieByProjectNumber(this.projectNumber),\r\n this._WorksSevice.getWorksByProjectNumber(this.projectNumber),\r\n this._ProjectsService.currentProjects\r\n ]).subscribe(([properties, works, projects]) => {\r\n if (properties !== null && works !== null && projects) {\r\n this.propertiesResponse = properties;\r\n this.worksResponse = works;\r\n this.projectsResponse = projects;\r\n this.spinner.hide();\r\n }\r\n }, error => {\r\n this.toastr.error(\r\n \"Se ha presentado un problema cargando el detalle del proyecto \" + this.projectNumber,\r\n \"Detalle proyecto\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ChartComponent } from \"ng-apexcharts\";\r\nimport { InternalWorksResponse } from \"src/app/models/works/internal.works.response.model\";\r\nimport { ChartOptions } from \"../../../tasks/graphics/tasks-graphics.component\";\r\nimport * as moment from \"moment\";\r\nimport { orderArraysByName } from \"../../../../../utils/utils\";\r\n\r\n@Component({\r\n selector: \"app-project-graphic\",\r\n templateUrl: \"./project-graphic.component.html\",\r\n})\r\nexport class ProjectGraphicComponent implements OnInit {\r\n @ViewChild(\"chart\") chart: ChartComponent;\r\n @Input() title: string;\r\n @Input() horizontal: boolean;\r\n @Input() set jobs(jobs: InternalWorksResponse[]) {\r\n if (jobs?.length > 0) {\r\n this.jobsList = jobs;\r\n if (this.horizontal) {\r\n this.settingsChart(jobs);\r\n } else {\r\n const jobsFormatedDate = jobs.map((job) => ({\r\n ...job,\r\n due_Date: moment(job.due_Date, \"YYYY/MM/DD\")\r\n .format(\"MMM\")\r\n .concat(\" \")\r\n .concat(moment(job.due_Date, \"YYYY/MM/DD\").format(\"YYYY\")),\r\n }));\r\n\r\n this.months.forEach((month) => {\r\n const exists = jobsFormatedDate.find(\r\n (category) => category.due_Date.substring(0, 3) === month\r\n );\r\n if (!exists) {\r\n jobsFormatedDate.push({\r\n account_Officer: \"\",\r\n address: \"\",\r\n business_Unit: \"\",\r\n city: \"\",\r\n country: \"\",\r\n created: null,\r\n currency: \"\",\r\n deliverable: \"\",\r\n department: \"\",\r\n due_Date: month + \" \" + new Date().getFullYear(),\r\n email_Account_Officer: \"\",\r\n equivalent_USD: 0,\r\n external_Fees: 0,\r\n id: 0,\r\n internal_fees: 0,\r\n job_Comments: \"\",\r\n job_Manager: \"\",\r\n job_Number: \"\",\r\n job_Status: \"\",\r\n iD_Job_Status: 0,\r\n job_type: \"\",\r\n latitude: \"\",\r\n longitude: \"\",\r\n name_Job_Manager: \"\",\r\n phone_Account_Officer: \"\",\r\n project_Number: \"\",\r\n property_Name: \"\",\r\n property_Number: \"\",\r\n sector: \"\",\r\n zipCode: 0,\r\n account: \"\",\r\n Id_property_Contact: 0,\r\n Id_Inspection_Contact: 0,\r\n Valuation_Scenarios: \"\",\r\n Interest_Valued: \"\",\r\n Type_of_Value: \"\",\r\n Inspection_Required: \"\",\r\n Days_to_Deliver: 0\r\n });\r\n }\r\n });\r\n\r\n jobsFormatedDate.sort(\r\n (a, b) => Number(moment(a.due_Date)) - Number(moment(b.due_Date))\r\n );\r\n\r\n this.jobsList = jobs;\r\n this.settingsChart(jobsFormatedDate);\r\n }\r\n }\r\n }\r\n jobsList: InternalWorksResponse[] = [];\r\n public chartOptions: Partial;\r\n reduceJobsCompanies: any;\r\n reduceJobsDate: any;\r\n productionByClient: any;\r\n companies: any;\r\n\r\n months = [\r\n \"Jan\",\r\n \"Feb\",\r\n \"Mar\",\r\n \"Apr\",\r\n \"May\",\r\n \"Jun\",\r\n \"Jul\",\r\n \"Aug\",\r\n \"Sep\",\r\n \"Oct\",\r\n \"Nov\",\r\n \"Dec\",\r\n ];\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n settingsChart(jobs: InternalWorksResponse[]) {\r\n this.companies = jobs.map((job: InternalWorksResponse) => job.account).filter(\r\n (value: string, index: number, self: string[]) => self.indexOf(value) === index).length;\r\n\r\n this.chartOptions = {\r\n series: this.getSeries(jobs),\r\n chart: {\r\n type: \"bar\",\r\n height: 470,\r\n stacked: true,\r\n toolbar: {\r\n show: true,\r\n },\r\n },\r\n responsive: [\r\n {\r\n breakpoint: 480,\r\n options: {\r\n legend: {\r\n position: \"bottom\",\r\n offsetX: -10,\r\n offsetY: 0,\r\n },\r\n },\r\n },\r\n ],\r\n plotOptions: {\r\n bar: {\r\n horizontal: this.horizontal,\r\n dataLabels: {\r\n position: \"top\",\r\n }\r\n },\r\n },\r\n xaxis: {\r\n title: {\r\n text: this.horizontal ? \"USD Equivalent\" : \"\",\r\n },\r\n type: \"category\",\r\n categories: this.getCategories(jobs),\r\n labels: {\r\n formatter: (val) => {\r\n if (this.horizontal) {\r\n return (\r\n \"$ \" + val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")\r\n );\r\n } else {\r\n return val;\r\n }\r\n },\r\n },\r\n },\r\n yaxis: {\r\n title: {\r\n text: this.horizontal ? \"\" : \"USD Equivalent\",\r\n },\r\n labels: {\r\n formatter: (val: any) => {\r\n if (this.horizontal) {\r\n return val;\r\n } else {\r\n return (\r\n \"$ \" + val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")\r\n );\r\n }\r\n },\r\n },\r\n },\r\n legend: {\r\n show: this.horizontal ? true : false,\r\n position: this.horizontal ? \"right\" : \"bottom\",\r\n offsetY: 0,\r\n markers: {\r\n fillColors: [\r\n '#415AA8',\r\n '#1A468D',\r\n '#254382',\r\n '#51737F',\r\n '#0080C8',\r\n '#03B1E5',\r\n '#ABC8E6',\r\n '#5D6770',\r\n '#FE0000',\r\n '#FD4600',\r\n '#FF6D3E',\r\n '#FAA21C',\r\n '#B4B5B7',\r\n '#FDE3C0',\r\n ],\r\n },\r\n },\r\n fill: {\r\n colors: [\r\n '#415AA8',\r\n '#1A468D',\r\n '#254382',\r\n '#51737F',\r\n '#0080C8',\r\n '#03B1E5',\r\n '#ABC8E6',\r\n '#5D6770',\r\n '#FE0000',\r\n '#FD4600',\r\n '#FF6D3E',\r\n '#FAA21C',\r\n '#B4B5B7',\r\n '#FDE3C0',\r\n ],\r\n opacity: 1,\r\n },\r\n dataLabels: {\r\n enabled: this.horizontal ? true : false,\r\n offsetX: 55,\r\n formatter: function (value, { seriesIndex, dataPointIndex, w }) {\r\n let numberOfSeries = w.config.series.length - 1\r\n if(seriesIndex == numberOfSeries){\r\n let number = parseFloat(w.globals.stackedSeriesTotals[dataPointIndex].toString());\r\n let formattedNumber = number.toLocaleString('en-US', {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: 0,\r\n });\r\n return `$ ${formattedNumber}`;\r\n } else if (seriesIndex {\r\n if (\r\n !res[value.account] ||\r\n (res[value.account].sector !== value.sector)\r\n ) {\r\n res[value.account] = {\r\n account: value.account,\r\n sector: value.sector,\r\n equivalentUSD: 0\r\n };\r\n result.push(res[value.account]);\r\n }\r\n\r\n res[value.account].equivalentUSD += value.equivalent_USD;\r\n\r\n return res;\r\n }, {});\r\n\r\n this.reduceJobsCompanies = result.reduce((res: {}, value: any) => {\r\n if (\r\n !res[value.account] ||\r\n (res[value.account].sector !== value.sector &&\r\n res[value.account].account !== value.account)\r\n ) {\r\n res[value.account] = {\r\n account: value.account,\r\n sector: value.sector,\r\n equivalentUSD: 0,\r\n count: 0,\r\n };\r\n }\r\n\r\n res[value.account].equivalentUSD += value.equivalentUSD;\r\n res[value.account].count += 1;\r\n\r\n return res;\r\n });\r\n\r\n if (result.length > 0) {\r\n result\r\n .map((job) => job.sector)\r\n .filter(\r\n (value: any, index: number, self: any[]) =>\r\n self.indexOf(value) === index\r\n )\r\n .forEach((sector) => {\r\n series.push({\r\n name: sector,\r\n data: [],\r\n });\r\n });\r\n\r\n series.forEach((serie) => {\r\n const companies = [];\r\n result.forEach((job) => {\r\n if (serie.name === job.sector) {\r\n companies.push(job.account);\r\n serie.data.push(job.equivalentUSD);\r\n } else {\r\n const exits = companies.includes(job.account);\r\n const filters = result.filter(\r\n (value) =>\r\n value.account === job.account && value.sector === serie.name\r\n );\r\n\r\n if (!exits && filters.length === 0) {\r\n companies.push(job.account);\r\n serie.data.push(0);\r\n }\r\n }\r\n });\r\n });\r\n if (series.length === 1) {\r\n series.push({ name: \"No existen más usuarios\", data: [0] });\r\n }\r\n }\r\n } else {\r\n jobs.reduce((res: {}, value: InternalWorksResponse) => {\r\n if (\r\n !res[value.due_Date] ||\r\n res[value.due_Date].sector !== value.sector\r\n ) {\r\n res[value.due_Date] = {\r\n job_Manager: value.job_Manager,\r\n equivalentUSD: 0,\r\n month: value.due_Date,\r\n sector: value.sector,\r\n };\r\n result.push(res[value.due_Date]);\r\n }\r\n\r\n res[value.due_Date].equivalentUSD += value.equivalent_USD;\r\n\r\n return res;\r\n }, {});\r\n\r\n this.reduceJobsDate = result;\r\n\r\n if (result.length > 0) {\r\n result\r\n .map((job) => job.sector)\r\n .filter(\r\n (value: any, index: number, self: any[]) =>\r\n self.indexOf(value) === index\r\n )\r\n .forEach((sector) => {\r\n series.push({\r\n name: sector,\r\n data: [],\r\n });\r\n });\r\n\r\n series.forEach((serie) => {\r\n const months = [];\r\n result.forEach((job) => {\r\n if (serie.name === job.sector) {\r\n months.push(job.month);\r\n serie.data.push(job.equivalentUSD);\r\n } else {\r\n const exits = months.includes(job.month);\r\n const filters = result.filter(\r\n (value) =>\r\n value.month === job.month && value.sector === serie.name\r\n );\r\n\r\n if (!exits && filters.length === 0) {\r\n months.push(job.month);\r\n serie.data.push(0);\r\n }\r\n }\r\n });\r\n });\r\n if (series.length === 1) {\r\n series.push({ name: \"No existen más usuarios\", data: [0] });\r\n }\r\n }\r\n }\r\n\r\n if (this.horizontal){\r\n sessionStorage.setItem('productionByClient', JSON.stringify(series));\r\n return series.filter((serie) => serie.name !== \"\").sort((a, b) => a.name > b.name ? 1 : -1);\r\n } else {\r\n const productionByClient = sessionStorage.getItem('productionByClient') ? JSON.parse(sessionStorage.getItem('productionByClient')) : [];\r\n const [productionByClientArray, productionBySectorArray] = orderArraysByName(productionByClient, series.filter((serie) => serie.name !== \"\"));\r\n return productionBySectorArray;\r\n }\r\n\r\n }\r\n\r\n private getCategories(jobs: InternalWorksResponse[]) {\r\n if (this.horizontal) {\r\n return jobs\r\n .map((job: InternalWorksResponse) => job.account)\r\n .filter(\r\n (value: string, index: number, self: string[]) =>\r\n self.indexOf(value) === index\r\n );\r\n } else {\r\n return jobs\r\n .map((job: InternalWorksResponse) => job.due_Date)\r\n .filter(\r\n (value: string, index: number, self: string[]) =>\r\n self.indexOf(value) === index\r\n );\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, QueryList, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup } from \"@angular/forms\";\r\nimport { Location } from '@angular/common';\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { combineLatest } from \"rxjs\";\r\nimport { ProjectResponse } from \"src/app/models/projects/project.response.model\";\r\nimport { PropertieResponse } from \"src/app/models/properties/properties.response.model\";\r\nimport { WorksResponse } from \"src/app/models/works/woks.response.model\";\r\nimport { ProjectsService } from \"src/app/services/admin-services/projects/projects.service\";\r\nimport { PropertiesService } from \"src/app/services/admin-services/properties/properties.service\";\r\nimport { WorksService } from \"src/app/services/admin-services/works/works.service\";\r\nimport { cleanNullAttributes, findByMatchingProperty, loadSideBarConfiguration, searchJson } from \"src/app/utils/utils\";\r\nimport * as moment from \"moment\";\r\nimport { InternalWorksResponse } from \"src/app/models/works/internal.works.response.model\";\r\nimport { InternalWorksService } from \"src/app/services/admin-services/works/internal-works.service\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { AccountRelationalontactModel } from \"src/app/models/accounts/relational-contact.model\";\r\nimport { InternalContactsService } from \"src/app/services/admin-services/internal-contacts/internal-contacts.service\";\r\nimport { InternalContactModel } from \"src/app/models/internal-contacts/internal-contact.model\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ConfirmDialogNewVersionComponent } from \"src/app/components/modals/confirm-dialog/confirm-dialog.component\";\r\nimport { CanComponentDeactivate } from \"src/app/config/prevent-change-route/prevent-change-route.guard\";\r\nimport { MatTable, MatTableDataSource } from \"@angular/material/table\";\r\nimport { ProjectFileModel } from \"../../../../../models/projects/project.file.model\";\r\nimport { UploadFilesComponent } from \"../../../../../utils/upload-files/upload-files.component\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { UpdateDocumentDialogComponent } from \"../../../../../utils/update-document-dialog/update-document-dialog.component\";\r\nimport { getExtensionIcon } from \"../../../../../utils/file-extensions-allowed\";\r\nimport { Group } from \"../../../../../models/general/group-column.class\";\r\n\r\n@Component({\r\n selector: \"app-internal-details-projects\",\r\n templateUrl: \"./internal-details-projects.component.html\",\r\n})\r\nexport class InternalDetailsProjectsComponent implements OnInit, CanComponentDeactivate {\r\n @ViewChild(MatTable) matTables : QueryList>;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator)\r\n set paginator(pagination: MatPaginator) {\r\n this.dataSource.paginator = pagination;\r\n this.dataSource.sort = this.sort;\r\n }\r\n groupByColumns: string[] = ['documentType'];\r\n displayedColumns: string[] = [\r\n \"item\",\r\n \"documentName\",\r\n \"documentType\",\r\n \"createdOn\",\r\n \"createdBy\",\r\n \"modified\",\r\n \"modifiedBy\",\r\n \"status\",\r\n \"fileActions\"\r\n ];\r\n dataSource = new MatTableDataSource([]);\r\n projects: string;\r\n projectNumber: string;\r\n propertiesResponse: PropertieResponse[] = [];\r\n city: string;\r\n type: string;\r\n account: string;\r\n citySelect = [];\r\n propertieTypeSelect = [];\r\n propertieAccountSelect = [];\r\n worksResponse: WorksResponse[] = [];\r\n filterInternalJobs: InternalWorksResponse[] = [];\r\n statusJob: string;\r\n country: string;\r\n cityJobs: string;\r\n countrySelect = [];\r\n cityJobsSelect = [];\r\n contactSelect: any[] = [];\r\n projectsResponse: ProjectResponse[] = [];\r\n projectForm: UntypedFormGroup;\r\n filtersPropertiesForm: UntypedFormGroup;\r\n filtersJobsForm: UntypedFormGroup;\r\n startDateValue = null;\r\n endDateValue = null;\r\n internalProperties = [];\r\n contactRecords: InternalContactModel[];\r\n idClient: number;\r\n projectStatusSelect: any[] = [];\r\n isButtonDisabled = false;\r\n routerUrl: string;\r\n documentTypes: any[] = [];\r\n documents: ProjectFileModel[] = [];\r\n documentsUploaded: number;\r\n userType: string = sessionStorage.getItem(\"tipo\");\r\n\r\n constructor(\r\n private readonly _Activatedroute: ActivatedRoute,\r\n private readonly _PropertiesService: PropertiesService,\r\n private readonly _WorksSevice: WorksService,\r\n private readonly _InternalWorksServices: InternalWorksService,\r\n private readonly _ProjectsService: ProjectsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly authService: AuthService,\r\n private readonly internalContactService: InternalContactsService,\r\n private readonly dialog: MatDialog,\r\n private readonly router: Router,\r\n private readonly location: Location\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getFilesUploaded();\r\n this.getParameteresURL();\r\n this.getProjectStatus();\r\n this.buildFiltersPropertiesForms();\r\n this.buildFiltersJobsForms();\r\n this.getInternalContacts();\r\n this.getDocumentsType();\r\n this.internalProperties = JSON.parse(\r\n sessionStorage.getItem(\"internalProperties\")\r\n );\r\n loadSideBarConfiguration(\"btnMenuInternalProjectsDetails\");\r\n this.router.events.subscribe((event) => {\r\n this.routerUrl = event[\"url\"];\r\n if (this.routerUrl === \"/\") {\r\n this.routerUrl = \"/home/projects\";\r\n }\r\n });\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const documentsFiltered = [];\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n\r\n this.documents.forEach((element) => {\r\n const result = searchJson(element, filterValue);\r\n if (Object.keys(result).length > 0) {\r\n documentsFiltered.push(result);\r\n }\r\n });\r\n\r\n this.dataSourceConfiguration(documentsFiltered);\r\n\r\n }\r\n\r\n getIcon(document: ProjectFileModel): string {\r\n const extension = document.documentName.substring(document.documentName.lastIndexOf('.') + 1);\r\n return getExtensionIcon(extension);\r\n }\r\n\r\n getFilesUploaded(): void {\r\n this._ProjectsService.currentFilesUploaded.subscribe((files) => {\r\n this.documentsUploaded = files;\r\n });\r\n }\r\n\r\n viewDocument(documentUrl: string): void {\r\n if (documentUrl.includes(\".pdf\")) {\r\n window.open(documentUrl, \"_blank\");\r\n } else {\r\n window.open(`https://view.officeapps.live.com/op/view.aspx?src=${documentUrl}`, \"_blank\");\r\n }\r\n }\r\n\r\n downloadDocument(documentName: string): void {\r\n this._ProjectsService.downloadDocument(documentName).subscribe({\r\n next: (response: any) => {\r\n const linkSource = `data:image/jpg;base64,${response}`;\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = documentName;\r\n\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n },\r\n error: () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n });\r\n }\r\n\r\n groupByDocumentType(status: boolean): void {\r\n this.groupByColumns = status ? ['documentType'] : [];\r\n this.dataSource.data = this.addGroups(this.documents, this.groupByColumns);\r\n this.dataSource.filter = performance.now().toString();\r\n }\r\n\r\n setStatusDocument(document: ProjectFileModel, status: boolean): void {\r\n this.spinner.show();\r\n const data = {\r\n ...document,\r\n status: status\r\n }\r\n this._ProjectsService.setStatusDocument(data).subscribe({\r\n next: (response: any) => {\r\n const documentStatus = status ? 'Inactive' : 'Active';\r\n this.getDocumentLocationByItem(documentStatus);\r\n this.toastr.success(\"Document updated successfully\", \"Success\");\r\n },\r\n error: () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n });\r\n }\r\n\r\n getDocumentsType() {\r\n this._ProjectsService\r\n .getDocumentsTypeBlob()\r\n .pipe(\r\n map((response: any[]) => response.filter((type) => type.sourceTable === \"Projects\")),\r\n )\r\n .subscribe((types: any) => {\r\n this.documentTypes = types\r\n });\r\n }\r\n\r\n getDocumentTypeName(id: number) {\r\n return this.documentTypes.find((x) => x.id === id)?.documentType;\r\n }\r\n\r\n tabChanged(event) {\r\n if (event.index > 0) {\r\n this.isButtonDisabled = true;\r\n } else {\r\n this.isButtonDisabled = false;\r\n }\r\n }\r\n\r\n validateForm(): Promise {\r\n if (this.projectForm.dirty) {\r\n sessionStorage.setItem(\"projectDirty\", \"true\");\r\n const dialogRef = this.dialog.open(ConfirmDialogNewVersionComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title: \"Are you sure to quit without saving?\",\r\n textSaveButton: \"Save changes\",\r\n textCloseButton: \"Exit without saving\",\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n sessionStorage.setItem(\"projectDirty\", \"false\");\r\n this.updateGeneralProject();\r\n this.projectForm.reset();\r\n this.location.back();\r\n } else {\r\n sessionStorage.setItem(\"projectDirty\", \"false\");\r\n this.projectForm.reset();\r\n this.location.back();\r\n }\r\n });\r\n return Promise.resolve(true);\r\n } else {\r\n return Promise.resolve(false);\r\n }\r\n }\r\n\r\n manageDocument(document: ProjectFileModel, action): void {\r\n const dialogRef = this.dialog.open(UpdateDocumentDialogComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n width: \"700px\",\r\n data: {\r\n documentTypes: this.documentTypes,\r\n document: document,\r\n action: action\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n setTimeout(() => {\r\n this.getDocumentLocationByItem('Active');\r\n }, 2000)\r\n }\r\n });\r\n }\r\n\r\n openUploadFileProject(): void {\r\n const dialogRef = this.dialog.open(UploadFilesComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n width: \"1500px\",\r\n data: {\r\n documentTypes: this.documentTypes,\r\n id: this.projectsResponse[0].id,\r\n regarding: 'Projects',\r\n idFolder: this.projectsResponse[0].project_Number,\r\n documents: this.documents\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n setTimeout(() => {\r\n this.getDocumentLocationByItem('Active');\r\n }, 2000)\r\n }\r\n });\r\n }\r\n\r\n openConfirmUpdateProjectDialog(\r\n textSaveButton: string,\r\n textCloseButton: string,\r\n title: string,\r\n action: string\r\n ): void {\r\n const dialogRef = this.dialog.open(ConfirmDialogNewVersionComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title,\r\n textSaveButton,\r\n textCloseButton,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n if (action === \"close\" || action === \"cancel\") {\r\n this.updateGeneralProject();\r\n this.projectForm.reset();\r\n this.router.navigate([\"/home/projects\"]);\r\n } else {\r\n this.updateGeneralProject();\r\n }\r\n } else if ( action === \"cancel\" ) {\r\n this.projectForm.reset();\r\n this.router.navigate( [ \"/home/projects\" ] );\r\n }\r\n });\r\n }\r\n\r\n buildGeneralForm() {\r\n this.projectForm = this.formBuilder.group({\r\n status: [this.projectsResponse[0][\"status\"]],\r\n account_officer: [this.projectsResponse[0][\"account_officer\"]],\r\n production_Admin: [this.projectsResponse[0][\"production_Admin\"]],\r\n payments: [this.projectsResponse[0][\"payments\"]],\r\n other_Payments: [this.projectsResponse[0][\"other_Payments\"]],\r\n special_Conditions: [this.projectsResponse[0][\"special_Conditions\"]],\r\n other_Special_Conditions: [\r\n this.projectsResponse[0][\"other_Special_Conditions\"],\r\n ],\r\n termoAgreement: [this.projectsResponse[0][\"termoAgreement\"]],\r\n other_Termof_Agreement: [\r\n this.projectsResponse[0][\"other_Termof_Agreement\"],\r\n ],\r\n annual_Price_Ajustments: [\r\n this.projectsResponse[0][\"annual_Price_Ajustments\"],\r\n ],\r\n iD_Referred_By: [this.projectsResponse[0][\"iD_Referred_By\"]],\r\n referralFee: [this.projectsResponse[0][\"referralFee\"]],\r\n id_Client: [this.projectsResponse[0][\"id_Client\"]],\r\n id_Account_Officer: [this.projectsResponse[0][\"id_Account_Officer\"]],\r\n id_Production_Admin: [this.projectsResponse[0][\"id_Production_Admin\"]],\r\n id_Status_Project: [this.projectsResponse[0][\"id_Status_Project\"]],\r\n });\r\n }\r\n\r\n getParameteresURL() {\r\n this._Activatedroute.paramMap.subscribe((params) => {\r\n this.projectNumber = params.get(\"projectNumber\");\r\n });\r\n this.projectDetails();\r\n }\r\n\r\n updateGeneralProject() {\r\n this.spinner.show();\r\n const data = {\r\n id: this.projectsResponse[0].id,\r\n project_Number: this.projectsResponse[0].project_Number,\r\n client: this.projectsResponse[0].client,\r\n projectName: this.projectsResponse[0].projectName,\r\n porpouse: this.projectsResponse[0].porpouse,\r\n production_Admin: this.projectsResponse[0][\"production_Admin\"],\r\n assigned_to: this.projectsResponse[0].assigned_to,\r\n status: this.projectForm.get(\"status\").value,\r\n account_officer: this.projectsResponse[0][\"account_officer\"],\r\n guiD_client: this.projectsResponse[0].guiD_client,\r\n special_Conditions: this.projectForm.get(\"special_Conditions\").value,\r\n other_Special_Conditions:\r\n this.projectsResponse[0].other_Special_Conditions,\r\n annual_Price_Ajustments: this.projectForm.get(\"annual_Price_Ajustments\")\r\n .value,\r\n termoAgreement: this.projectForm.get(\"termoAgreement\").value,\r\n payments: this.projectForm.get(\"payments\").value,\r\n descriptions: this.projectsResponse[0].descriptions,\r\n other_Termof_Agreement: this.projectsResponse[0].other_Termof_Agreement,\r\n other_Payments: this.projectsResponse[0].other_Payments,\r\n dateValue_or_Analysis_Specific:\r\n this.projectsResponse[0].dateValue_or_Analysis_Specific,\r\n date_Of_Value_or_Analysis:\r\n this.projectsResponse[0].date_Of_Value_or_Analysis,\r\n quote_type: this.projectsResponse[0].quote_type,\r\n enSpecialCondition: this.projectsResponse[0][\"enSpecialCondition\"],\r\n enTermof_Agreement: this.projectsResponse[0][\"enTermof_Agreement\"],\r\n country: this.projectsResponse[0][\"country\"],\r\n project_Number_text: this.projectsResponse[0][\"project_Number_text\"],\r\n created: this.projectsResponse[0][\"created\"],\r\n es_Payments: this.projectsResponse[0].es_Payments,\r\n id_Order: this.projectsResponse[0].id_Order,\r\n phone_Account_Officer: this.projectsResponse[0][\"phone_Account_Officer\"],\r\n email_Account_Officer: this.projectsResponse[0][\"email_Account_Officer\"],\r\n project_Fees: this.projectsResponse[0][\"project_Fees\"],\r\n currency: this.projectsResponse[0][\"currency\"],\r\n number_of_jobs: this.projectsResponse[0][\"number_of_jobs\"],\r\n number_of_Properties: this.projectsResponse[0][\"number_of_Properties\"],\r\n iD_Referred_By: this.projectForm.get(\"iD_Referred_By\").value,\r\n referralFee: this.projectForm.get(\"referralFee\").value,\r\n id_Client: this.projectsResponse[0][\"id_Client\"],\r\n id_Account_Officer: this.projectForm.get(\"id_Account_Officer\").value,\r\n id_Production_Admin: this.projectForm.get(\"id_Production_Admin\").value,\r\n id_Status_Project: this.projectForm.get(\"id_Status_Project\").value,\r\n };\r\n\r\n this._ProjectsService.updateProject(data).subscribe(\r\n () => {\r\n this._ProjectsService\r\n .getProjects()\r\n .subscribe((response: ProjectResponse[]) => {\r\n this.projectsResponse = response;\r\n this.toastr.success(\r\n \"Se ha actualizado exitosamente la información general del proyecto\",\r\n \"Detalle proyecto\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n window.location.reload();\r\n this.spinner.hide();\r\n });\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se ha presentado un problema actualizando la sección General del Proyecto \",\r\n \"Detalle proyecto\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n projectDetails() {\r\n this.spinner.show();\r\n combineLatest([\r\n this._PropertiesService.getPropertieByProjectNumber(this.projectNumber),\r\n this._WorksSevice.getWorksByProjectNumber(this.projectNumber),\r\n this._ProjectsService.currentProjects,\r\n ]).subscribe(\r\n ([properties, works, projects]) => {\r\n if (properties !== null && works !== null && projects) {\r\n this.propertiesResponse = properties;\r\n sessionStorage.setItem(\r\n \"internalDetailProperties\",\r\n JSON.stringify(properties)\r\n );\r\n this.worksResponse = works;\r\n sessionStorage.setItem(\"internalDetailJobs\", JSON.stringify(works));\r\n this.projectsResponse = projects.filter(\r\n (project) => project.project_Number === this.projectNumber\r\n );\r\n this.idClient = projects.find(\r\n (project) => project.project_Number === this.projectNumber\r\n ).id_Client;\r\n this.spinner.hide();\r\n this.buildGeneralForm();\r\n this.getUniqueValuesOnchangeSelectProperties();\r\n this.getUniqueValuesOnchangeSelectJobs();\r\n this.getCompanyxContacts(this.idClient);\r\n this.getDocumentLocationByItem('Active');\r\n }\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se ha presentado un problema cargando el detalle del proyecto \" +\r\n this.projectNumber,\r\n \"Detalle proyecto\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n\r\n buildFiltersPropertiesForms() {\r\n this.filtersPropertiesForm = this.formBuilder.group({\r\n city: [null],\r\n property_Type: [null],\r\n property_Account: [null],\r\n });\r\n }\r\n\r\n buildFiltersJobsForms() {\r\n this.filtersJobsForm = this.formBuilder.group({\r\n iD_Job_Status: [null],\r\n country: [null],\r\n city: [null],\r\n });\r\n }\r\n\r\n getUniqueValuesOnchangeSelectJobs() {\r\n this.countrySelect = this.worksResponse\r\n .map((job) => job[\"country\"])\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.cityJobsSelect = this.worksResponse\r\n .map((job) => job[\"city\"])\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n }\r\n\r\n getUniqueValuesOnchangeSelectProperties() {\r\n this.citySelect = this.propertiesResponse\r\n .map((property) => property[\"city\"])\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.propertieTypeSelect = this.propertiesResponse\r\n .map((property) => property[\"property_Type\"])\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.propertieAccountSelect = this.propertiesResponse\r\n .map((property) => property[\"property_Account\"])\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n }\r\n\r\n filterProperties() {\r\n const filters = cleanNullAttributes(this.filtersPropertiesForm.value);\r\n const resultFilter = findByMatchingProperty(\r\n this.propertiesResponse,\r\n filters\r\n );\r\n\r\n this.propertiesResponse = resultFilter;\r\n }\r\n\r\n filterJobs() {\r\n let startDate = this.startDate;\r\n let endDate = this.endDate;\r\n\r\n this.filterInternalJobs = JSON.parse(\r\n sessionStorage.getItem(\"internalDetailJobs\")\r\n ).map((job) => ({\r\n ...job,\r\n created: job.created.split(\"T\")[0],\r\n }));\r\n\r\n if (this.startDateValue && this.endDateValue) {\r\n const resultStartEndDate = this.filterInternalJobs.filter(\r\n (job) => job.created >= startDate && job.created <= endDate\r\n );\r\n this.filterInternalJobs = resultStartEndDate;\r\n }\r\n\r\n const filtersForm = {\r\n ...this.filtersJobsForm.value,\r\n iD_Job_Status: +this.filtersJobsForm.value.iD_Job_Status,\r\n };\r\n\r\n const filters = cleanNullAttributes(filtersForm);\r\n const resultFilter = findByMatchingProperty(\r\n this.filterInternalJobs,\r\n filters\r\n );\r\n\r\n this.worksResponse = resultFilter;\r\n }\r\n\r\n clearFiltersProperties() {\r\n this.filtersPropertiesForm.patchValue({\r\n city: undefined,\r\n property_Type: undefined,\r\n property_Account: undefined,\r\n });\r\n this.propertiesResponse = JSON.parse(\r\n sessionStorage.getItem(\"internalDetailProperties\")\r\n );\r\n }\r\n\r\n clearFiltersJobs() {\r\n this.startDateValue = undefined;\r\n this.endDateValue = undefined;\r\n this.filtersJobsForm.patchValue({\r\n iD_Job_Status: undefined,\r\n country: undefined,\r\n city: undefined,\r\n });\r\n this.worksResponse = JSON.parse(\r\n sessionStorage.getItem(\"internalDetailJobs\")\r\n );\r\n }\r\n\r\n get startDate() {\r\n return moment(this.startDateValue).format(\"YYYY-MM-DD\");\r\n }\r\n\r\n get endDate() {\r\n return moment(this.endDateValue).format(\"YYYY-MM-DD\");\r\n }\r\n\r\n getInternalContacts() {\r\n this._InternalWorksServices\r\n .getInternalContacts()\r\n .subscribe((contacts: any[]) => (this.contactSelect = contacts));\r\n }\r\n\r\n getIndexProperty(property: any) {\r\n return this.internalProperties.findIndex(\r\n (x) => x.property_Number === property[\"property_Number\"]\r\n );\r\n }\r\n\r\n getInternalContactName(id: string) {\r\n return this.contactSelect.find((x) => x.id === id)?.full_Name;\r\n }\r\n\r\n getRelationalContactName(id: number) {\r\n if (id) {\r\n const fullContactName = this.contactRecords?.find(\r\n (x) => x.idContactInformationRecord === id\r\n );\r\n return `${fullContactName?.firstName} ${fullContactName?.lastName}`;\r\n }\r\n }\r\n\r\n private getProjectStatus() {\r\n this._ProjectsService\r\n .getStatusProjects()\r\n .subscribe((projectStatus: any[]) => (this.projectStatusSelect = projectStatus));\r\n }\r\n\r\n private getCompanyxContacts(idClient: number) {\r\n this.spinner.show();\r\n this.internalContactService.getCompanyxContacts(idClient).subscribe(\r\n (contacts: AccountRelationalontactModel[]) => {\r\n this.spinner.hide();\r\n const contactIds = contacts.map(\r\n (contact) => contact.idContactInformationRecord\r\n );\r\n this.getRecordsIds(contactIds);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\r\n `Error! Does not exist an ID Client in ${this.projectNumber}`,\r\n \"Error\"\r\n );\r\n }\r\n );\r\n }\r\n\r\n private getRecordsIds(contacts: number[]) {\r\n this.spinner.show();\r\n this.internalContactService.getRecordsIds(contacts).subscribe(\r\n (contactRecords: InternalContactModel[]) => {\r\n this.spinner.hide();\r\n this.contactRecords = contactRecords;\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getDocumentLocationByItem(status: string): void {\r\n this._ProjectsService.getDocumentLocationByItem(this.projectsResponse[0].id, status).subscribe(\r\n {\r\n next: (response: ProjectFileModel[]) => {\r\n this.documents = response;\r\n this.dataSourceConfiguration(response);\r\n },\r\n error: () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n }\r\n );\r\n }\r\n\r\n private dataSourceConfiguration(response: ProjectFileModel[]) {\r\n this.dataSource.data = this.addGroups(response, this.groupByColumns);\r\n this.dataSource.filterPredicate = this.customFilterPredicate.bind(this);\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n private addGroups(data: any[], groupByColumns: string[]): any[] {\r\n var rootGroup = new Group();\r\n return this.getSublevel(data, 0, groupByColumns, rootGroup);\r\n }\r\n\r\n private getSublevel(data: any[], level: number, groupByColumns: string[], parent: Group): any[] {\r\n // Recursive function, stop when there are no more levels.\r\n if (level >= groupByColumns.length)\r\n return data;\r\n\r\n var groups = this.uniqueBy(\r\n data.map(\r\n row => {\r\n var result = new Group();\r\n result.level = level + 1;\r\n result.parent = parent;\r\n for (var i = 0; i <= level; i++)\r\n result[groupByColumns[i]] = row[groupByColumns[i]];\r\n return result;\r\n }\r\n ),\r\n JSON.stringify);\r\n\r\n const currentColumn = groupByColumns[level];\r\n\r\n var subGroups = [];\r\n groups.forEach(group => {\r\n let rowsInGroup = data.filter(row => group[currentColumn] === row[currentColumn])\r\n let subGroup = this.getSublevel(rowsInGroup, level + 1, groupByColumns, group);\r\n subGroup.unshift(group);\r\n subGroups = subGroups.concat(subGroup);\r\n })\r\n return subGroups;\r\n }\r\n\r\n private uniqueBy(a, key) {\r\n var seen = {};\r\n return a.filter(function (item) {\r\n var k = key(item);\r\n return seen.hasOwnProperty(k) ? false : (seen[k] = true);\r\n })\r\n }\r\n\r\n private customFilterPredicate(data: ProjectFileModel | Group): boolean {\r\n return (data instanceof Group) ? data.visible : this.getDataRowVisible(data);\r\n }\r\n\r\n private getDataRowVisible(data: ProjectFileModel): boolean {\r\n const groupRows = this.dataSource.data.filter(\r\n row => {\r\n if (!(row instanceof Group)) return false;\r\n\r\n let match = true;\r\n this.groupByColumns.forEach(\r\n column => {\r\n if (!row[column] || !data[column] || row[column] !== data[column]) match = false;\r\n }\r\n );\r\n return match;\r\n }\r\n );\r\n\r\n if (groupRows.length === 0) return true;\r\n if (groupRows.length > 1) throw \"Data row is in more than one group!\";\r\n const parent = groupRows[0]; // (Fix syntax coloring)\r\n\r\n return parent.visible && parent.expanded;\r\n }\r\n\r\n groupHeaderClick(row) {\r\n row.expanded = !row.expanded\r\n this.dataSource.filter = performance.now().toString();\r\n }\r\n\r\n isGroup(index, item): boolean {\r\n return item.level;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { ProjectResponse } from \"src/app/models/projects/project.response.model\";\r\nimport { ProjectsService } from \"src/app/services/admin-services/projects/projects.service\";\r\n\r\n@Component({\r\n selector: \"app-internal-table-projects\",\r\n templateUrl: \"./internal-table-projects.component.html\",\r\n})\r\nexport class InternalTableProjectsComponent implements OnInit {\r\n filterProjectsTable: string;\r\n projectStatusSelect: any[] = [];\r\n\r\n @Output() updateInternalFilterProjects = new EventEmitter();\r\n @Input() projectsResponse: ProjectResponse[];\r\n @Input() set filter(filter: string) {\r\n this.filterByWord(filter);\r\n }\r\n\r\n constructor(private readonly projectService: ProjectsService,) {}\r\n\r\n ngOnInit(): void {\r\n this.getStatusJobs();\r\n }\r\n\r\n identifyProjects(index, project) {\r\n return project.id;\r\n }\r\n\r\n getStatusJobs() {\r\n this.projectService\r\n .getStatusProjects()\r\n .subscribe((projectStatus: any[]) => (this.projectStatusSelect = projectStatus));\r\n }\r\n\r\n getStatusProjectName(idStatusProject: number) {\r\n const projectStatus = this.projectStatusSelect.find(\r\n (x) => x.id === idStatusProject\r\n )?.name_Status;\r\n return projectStatus;\r\n }\r\n\r\n filterByWord(filter: string) {\r\n this.filterProjectsTable = filter;\r\n this.projectsResponse = JSON.parse(\r\n sessionStorage.getItem(\"internalProjects\")\r\n );\r\n var internalProjectsFiltered = this.filterByValue(\r\n this.projectsResponse,\r\n filter\r\n );\r\n this.updateInternalFilterProjects.emit(internalProjectsFiltered);\r\n }\r\n\r\n filterByValue(array, string) {\r\n return array?.filter((o) =>\r\n Object.keys(o).some((k) =>\r\n String(o[k])?.toLowerCase().includes(string?.toLowerCase())\r\n )\r\n );\r\n }\r\n\r\n getProjectAssets(projectNumber: string): number {\r\n const internalProperties = JSON.parse(sessionStorage.getItem(\"internalProperties\"));\r\n return internalProperties.filter(property => property.project_Number === projectNumber).length;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ProjectResponse } from \"src/app/models/projects/project.response.model\";\r\nimport { ProjectsService } from \"src/app/services/admin-services/projects/projects.service\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { cleanNullAttributes, findByMatchingProperty, loadSideBarConfiguration } from \"../../../utils/utils\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { ProjectStatusModel } from \"../../../models/projects/project-status.model\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\n\r\n@Component({\r\n selector: \"app-projects-table\",\r\n templateUrl: \"./projects-table.component.html\",\r\n})\r\nexport class ProjectsTableComponent implements OnInit {\r\n\r\n projectsResponse: ProjectResponse[];\r\n filterProjectsResponse: ProjectResponse[] = [];\r\n projects: string;\r\n filtersForm: UntypedFormGroup;\r\n statusProject: string;\r\n statusProjectsSelect: ProjectStatusModel[] = [];\r\n client: string;\r\n clientSelect = [];\r\n accountOfficer: string;\r\n accountOfficerSelect = [];\r\n minimumFee: number;\r\n maximumFee: number;\r\n\r\n get fullName() { return sessionStorage.getItem(\"nombreCompleto\"); }\r\n\r\n constructor(\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly projectService: ProjectsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getUserProjects();\r\n this.getStatusProjects();\r\n this.buildFiltersForms();\r\n loadSideBarConfiguration(\"btnMenuProjects\");\r\n }\r\n\r\n clearFilters() {\r\n this.filtersForm.patchValue({\r\n id_Status_Project: undefined,\r\n client: undefined,\r\n id_Account_Officer: undefined,\r\n minimum_fee: undefined,\r\n maximum_fee: undefined,\r\n });\r\n this.projectsResponse = JSON.parse(sessionStorage.getItem(\"internalProjects\"));\r\n }\r\n\r\n filterJobs() {\r\n this.filterProjectsResponse = JSON.parse(\r\n sessionStorage.getItem(\"internalProjects\")\r\n ).map((job) => ({\r\n ...job,\r\n created: job.created.split(\"T\")[0],\r\n }));\r\n\r\n const filterForm = {\r\n ...this.filtersForm.value,\r\n id_Status_Project: +this.filtersForm.value.id_Status_Project || undefined,\r\n id_Account_Officer: +this.filtersForm.value.id_Account_Officer || undefined,\r\n };\r\n\r\n let filters = cleanNullAttributes(filterForm);\r\n let resultFilter = findByMatchingProperty(\r\n this.filterProjectsResponse,\r\n filters\r\n );\r\n\r\n this.projectsResponse = resultFilter;\r\n\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n updateInternalFilterProjects(event) {\r\n this.projectsResponse = event;\r\n }\r\n\r\n private getUserProjects() {\r\n this.spinner.show();\r\n this.projectService.getProjects().subscribe(\r\n (resp: ProjectResponse[]) => {\r\n this.projectsResponse = resp.sort((a, b) => {\r\n const createdA = new Date(a.created);\r\n const createdB = new Date(b.created);\r\n return createdB.getTime() - createdA.getTime();\r\n });\r\n sessionStorage.setItem(\"internalProjects\", JSON.stringify(resp));\r\n this.getUniqueValuesOnchangeSelect();\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se presento un problema obteniendo los proyectos\",\r\n \"Proyectos\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getUniqueValuesOnchangeSelect() {\r\n this.clientSelect = this.projectsResponse\r\n .map((project) => project.client)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.accountOfficerSelect = this.projectsResponse\r\n .map((project) => {\r\n return { idAccountOficcer: project.id_Account_Officer, accountOfficer: project.account_officer }\r\n })\r\n .filter((value, index, self) =>\r\n self.findIndex((t) => t.idAccountOficcer === value.idAccountOficcer) === index);\r\n }\r\n\r\n private buildFiltersForms() {\r\n this.filtersForm = this.formBuilder.group({\r\n id_Status_Project: [null, Validators.required],\r\n client: [null, Validators.required],\r\n id_Account_Officer: [null, Validators.required],\r\n minimum_fee: [null, Validators.required],\r\n maximum_fee: [null, Validators.required],\r\n });\r\n }\r\n\r\n private getStatusProjects() {\r\n this.projectService.getStatusProjects()\r\n .subscribe((statusProject: ProjectStatusModel[]) => (this.statusProjectsSelect = statusProject));\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { AdvancesResponse } from \"src/app/models/properties/advances.response\";\r\nimport { RelationDocumentsResponse } from \"src/app/models/properties/relation.documents.response.model\";\r\nimport { PropertiesService } from \"src/app/services/admin-services/properties/properties.service\";\r\nimport Swal from \"sweetalert2\";\r\n\r\n@Component({\r\n selector: \"app-properties-details\",\r\n templateUrl: \"./properties-details.component.html\",\r\n})\r\nexport class PropertiesDetailsComponent implements OnInit {\r\n openTab: number = 1;\r\n indexProperties: number;\r\n properties: string[] = [];\r\n relationDocuments: RelationDocumentsResponse[] = [];\r\n advances: AdvancesResponse[] = [];\r\n reloadData = false;\r\n documentFileTrustUrl = null;\r\n documentFileResourceUrl = null;\r\n\r\n constructor(\r\n private readonly _Activatedroute: ActivatedRoute,\r\n private readonly _propertiesService: PropertiesService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly sanitizer: DomSanitizer\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getParameteresURL();\r\n }\r\n\r\n reloadDataTable(reload: boolean) {\r\n if (reload) {\r\n this.getParameteresURL();\r\n }\r\n }\r\n\r\n getParameteresURL() {\r\n this._Activatedroute.paramMap.subscribe((params) => {\r\n this.indexProperties = Number(params.get(\"id\"));\r\n this.getProperties();\r\n this.getRelationDocuments();\r\n this.getAdvances();\r\n });\r\n }\r\n\r\n getProperties() {\r\n this.properties = JSON.parse(sessionStorage.getItem(\"properties\"));\r\n }\r\n\r\n toggleTabs($tabNumber: number) {\r\n this.openTab = $tabNumber;\r\n }\r\n\r\n getRelationDocuments() {\r\n this.spinner.show();\r\n this._propertiesService\r\n .getRelationDocuments(\r\n this.properties[this.indexProperties][\"project_Number\"],\r\n this.properties[this.indexProperties][\"property_Number\"]\r\n )\r\n .subscribe((response: RelationDocumentsResponse[]) => {\r\n this.relationDocuments = response;\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n getAdvances() {\r\n this.spinner.show();\r\n this._propertiesService\r\n .getAdvances(\r\n this.properties[this.indexProperties][\"project_Number\"],\r\n this.properties[this.indexProperties][\"property_Number\"]\r\n )\r\n .subscribe((response: AdvancesResponse[]) => {\r\n this.advances = response;\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n deleteDocument(document: any) {\r\n let bodyDelete = {\r\n NombreDocumento: \"\",\r\n DocumentoCarga: \"\",\r\n Proyecto: document.project_Number,\r\n Propiedad: document.property,\r\n IdDocumentoProyecto: document.id_RelacionDocumentoSH,\r\n UrlDocumentoRelacionado: document.document_url,\r\n };\r\n Swal.fire({\r\n title: \"¿Estás seguro que deseas eliminar el documento?\",\r\n text: \"Al eliminar el documento pierde la relación\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonColor: \"#d33\",\r\n cancelButtonText: \"No\",\r\n confirmButtonText: \"Si, deseo eliminarlo\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.spinner.show();\r\n this._propertiesService.deleteRelationDocuments(bodyDelete).subscribe(\r\n (response) => {\r\n let bodyUpdate = {\r\n ID: document.id,\r\n Document_Name: document.document_Name,\r\n Document_Category: document.document_Category,\r\n Project_Number: document.project_Number,\r\n Property: document.property,\r\n Document_Upload: false,\r\n Document_url: \"\",\r\n Created: document.created,\r\n Id_RelacionDocumentoSH: 0\r\n };\r\n this._propertiesService.updateRelationDocument(bodyUpdate).subscribe(resp => {\r\n if(resp) {\r\n this.getRelationDocuments();\r\n this.spinner.hide();\r\n } else {\r\n Swal.fire({\r\n title: \"Error!\",\r\n text: \"Se presentó un inconveniente al actualizar el documento\",\r\n icon: \"error\",\r\n confirmButtonColor: \"#3085d6\",\r\n confirmButtonText: \"OK\",\r\n });\r\n this.spinner.hide();\r\n }\r\n });\r\n this.spinner.hide();\r\n },\r\n (error) => {\r\n this.spinner.hide();\r\n }\r\n );\r\n } else {\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n viewDocument(document: any) {\r\n this._propertiesService\r\n .viewDocument(document.document_url)\r\n .subscribe(\r\n (response) => {\r\n const byteArray = new Uint8Array(\r\n atob(response)\r\n .split(\"\")\r\n .map((char) => char.charCodeAt(0))\r\n );\r\n let extension = document.document_url.substr(document.document_url.lastIndexOf('.') + 1);\r\n let mimeType = this.getMimeType(extension);\r\n const blob = new Blob([byteArray], { type: mimeType });\r\n const url = window.URL.createObjectURL(blob);\r\n window.open(url);\r\n this.documentFileTrustUrl =\r\n this.sanitizer.bypassSecurityTrustUrl(url);\r\n this.documentFileResourceUrl =\r\n this.sanitizer.bypassSecurityTrustResourceUrl(\r\n this.documentFileTrustUrl\r\n );\r\n },\r\n (error) => {\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n getMimeType(fileExtension: string) {\r\n switch (fileExtension) {\r\n case \"doc\":\r\n return \"application/msword\";\r\n case \"docx\":\r\n return \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\r\n case \"xls\":\r\n return \"application/vnd.ms-excel\";\r\n case \"xlsx\":\r\n return \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n case \"ppt\":\r\n return \"application/vnd.ms-powerpoint\";\r\n case \"pptx\":\r\n return \"application/vnd.openxmlformats-officedocument.presentationml.presentation\";\r\n case \"jpg\":\r\n return \"image/jpeg\";\r\n case \"png\":\r\n return \"image/png\";\r\n default:\r\n return \"application/pdf\";\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { Location } from '@angular/common';\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { AdvancesResponse } from \"src/app/models/properties/advances.response\";\r\nimport { RelationDocumentsResponse } from \"src/app/models/properties/relation.documents.response.model\";\r\nimport { PropertiesService } from \"src/app/services/admin-services/properties/properties.service\";\r\nimport { WorksResponse } from \"src/app/models/works/woks.response.model\";\r\nimport { cleanNullAttributes, findByMatchingProperty, loadSideBarConfiguration } from \"src/app/utils/utils\";\r\nimport { InternalPropertiesService } from \"../../../../../services/admin-services/properties/internal-properties.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { PropertieResponse } from \"src/app/models/properties/properties.response.model\";\r\nimport { LocalizationsService } from \"src/app/services/localizations/localizations.service\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { AccountRelationalontactModel } from \"src/app/models/accounts/relational-contact.model\";\r\nimport { InternalContactModel } from \"src/app/models/internal-contacts/internal-contact.model\";\r\nimport { InternalContactsService } from \"src/app/services/admin-services/internal-contacts/internal-contacts.service\";\r\nimport { CanComponentDeactivate } from \"src/app/config/prevent-change-route/prevent-change-route.guard\";\r\nimport { ConfirmDialogNewVersionComponent } from \"src/app/components/modals/confirm-dialog/confirm-dialog.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { InternalWorksService } from \"../../../../../services/admin-services/works/internal-works.service\";\r\n\r\n@Component({\r\n selector: \"app-internal-details-properties\",\r\n templateUrl: \"./internal-details-properties.component.html\",\r\n})\r\nexport class InternalDetailsPropertiesComponent\r\n implements OnInit, CanComponentDeactivate\r\n{\r\n propertiesFilter: string;\r\n indexProperties: number;\r\n properties: string[] = [];\r\n relationDocuments: RelationDocumentsResponse[] = [];\r\n relationInternalDocuments: RelationDocumentsResponse[] = [];\r\n advances: AdvancesResponse[] = [];\r\n worksResponse: WorksResponse[] = [];\r\n documentFileTrustUrl = null;\r\n documentFileResourceUrl = null;\r\n isEditable = false;\r\n propertiesForm: UntypedFormGroup;\r\n notificationForm: UntypedFormGroup;\r\n documentationForm: UntypedFormGroup;\r\n documentType: string;\r\n documentCategory: string;\r\n document: string;\r\n country: string;\r\n countriesSelect;\r\n citiesSelect;\r\n cities = [];\r\n states = [];\r\n statesSelect;\r\n documentsType = [];\r\n documentsCategory = [];\r\n propertiesTypes = [];\r\n documents: any[] = [];\r\n documentsFiltered: any[] = [];\r\n documentNames: any[] = [];\r\n documentsToUpload: any[] = [];\r\n contactRecords: InternalContactModel[];\r\n idClient: number;\r\n internalProjects = [];\r\n projectNumber: string;\r\n isButtonDisabled = false;\r\n routerUrl: string;\r\n internalProperties: any;\r\n userType: string = sessionStorage.getItem(\"tipo\");\r\n\r\n constructor(\r\n private readonly _Activatedroute: ActivatedRoute,\r\n private readonly _propertiesService: PropertiesService,\r\n private readonly localizationService: LocalizationsService,\r\n private readonly internalPropertiesService: InternalPropertiesService,\r\n private readonly _InternalWorksServices: InternalWorksService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly sanitizer: DomSanitizer,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly toastr: ToastrService,\r\n private readonly authService: AuthService,\r\n private readonly internalContactService: InternalContactsService,\r\n private readonly dialog: MatDialog,\r\n private readonly router: Router,\r\n private readonly location: Location\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getParameteresURL();\r\n this.buildDocumentationForm();\r\n this.buildNotificationForm();\r\n this.getDocumentsType();\r\n this.getDocumentsCategory();\r\n this.getPropertiesType();\r\n this.getCountries();\r\n this.getCities();\r\n this.getStates();\r\n loadSideBarConfiguration(\"btnMenuInternalPropertiesDetails\");\r\n this.router.events.subscribe((event) => {\r\n this.routerUrl = event[\"url\"];\r\n if (this.routerUrl === \"/\") {\r\n this.routerUrl = \"/home/projects\";\r\n }\r\n });\r\n }\r\n\r\n tabChanged(event) {\r\n if (event.index > 0) {\r\n this.isButtonDisabled = true;\r\n } else {\r\n this.isButtonDisabled = false;\r\n }\r\n }\r\n\r\n validateForm(): Promise {\r\n if (this.propertiesForm.dirty) {\r\n sessionStorage.setItem(\"propertyDirty\", \"true\");\r\n const dialogRef = this.dialog.open(ConfirmDialogNewVersionComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title: \"Are you sure to quit without saving?\",\r\n textSaveButton: \"Save changes\",\r\n textCloseButton: \"Exit without saving\",\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n sessionStorage.setItem(\"propertyDirty\", \"false\");\r\n this.saveFormProperties();\r\n this.propertiesForm.reset();\r\n this.router.navigate([this.routerUrl]);\r\n } else {\r\n sessionStorage.setItem(\"propertyDirty\", \"false\");\r\n this.propertiesForm.reset();\r\n this.router.navigate([this.routerUrl]);\r\n }\r\n });\r\n return Promise.resolve(true);\r\n } else {\r\n return Promise.resolve(false);\r\n }\r\n }\r\n\r\n openConfirmUpdatePropertyDialog(\r\n textSaveButton: string,\r\n textCloseButton: string,\r\n title: string,\r\n action: string\r\n ): void {\r\n const dialogRef = this.dialog.open(ConfirmDialogNewVersionComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title,\r\n textSaveButton,\r\n textCloseButton,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n if (action === \"close\" || action === \"cancel\") {\r\n this.saveFormProperties();\r\n this.propertiesForm.reset();\r\n this.location.back();\r\n } else {\r\n this.saveFormProperties();\r\n }\r\n } else {\r\n if (action === \"cancel\") {\r\n this.propertiesForm.reset();\r\n this.location.back();\r\n }\r\n }\r\n });\r\n }\r\n\r\n getPropertiesType() {\r\n this.spinner.show();\r\n this.internalPropertiesService\r\n .getPropertiesType()\r\n .subscribe((response: any[]) => {\r\n this.propertiesTypes = response;\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n setStates(idCountry: string) {\r\n this.states = this.statesSelect.filter(\r\n (state) => state.country_Name === idCountry\r\n );\r\n }\r\n\r\n setCities(idState: string) {\r\n this.cities = this.citiesSelect.filter(\r\n (state) => state.department_Name === idState\r\n );\r\n }\r\n\r\n getStates() {\r\n this.spinner.show();\r\n this.localizationService.getStates().subscribe((response: any[]) => {\r\n this.statesSelect = response;\r\n this.setStates(this.properties[this.indexProperties][\"country\"]);\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n getCountries() {\r\n this.spinner.show();\r\n this.localizationService.getCountries().subscribe((countries: any[]) => {\r\n this.countriesSelect = countries;\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n getCities() {\r\n this.spinner.show();\r\n this.localizationService.getCities().subscribe((cities: any[]) => {\r\n this.citiesSelect = cities;\r\n this.setCities(this.properties[this.indexProperties][\"department\"]);\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n buildDocumentationForm() {\r\n this.documentationForm = this.formBuilder.group({\r\n property_type: [null],\r\n document_Category: [null],\r\n document_Name: [null],\r\n });\r\n }\r\n\r\n buildNotificationForm() {\r\n this.notificationForm = this.formBuilder.group({\r\n Send_To: [\r\n this.properties[this.indexProperties][\"id_Property_Contact\"],\r\n Validators.required,\r\n ],\r\n Property_Name: [this.properties[this.indexProperties][\"name\"]],\r\n Property: [this.properties[this.indexProperties][\"property_Number\"]],\r\n Project_Name: [this.properties[this.indexProperties][\"projectName\"]],\r\n Details: [\"\", Validators.required],\r\n Created: [new Date()],\r\n });\r\n }\r\n\r\n buildPropertiesForm() {\r\n this.propertiesForm = this.formBuilder.group({\r\n ID: [this.properties[this.indexProperties][\"id\"], Validators.required],\r\n ProjectName: [\r\n this.properties[this.indexProperties][\"projectName\"],\r\n Validators.required,\r\n ],\r\n Project_Number: [this.properties[this.indexProperties][\"project_Number\"]],\r\n Property_Number: [\r\n this.properties[this.indexProperties][\"property_Number\"],\r\n ],\r\n Property_Name: [this.properties[this.indexProperties][\"property_Name\"]],\r\n Department: [this.properties[this.indexProperties][\"department\"]],\r\n Property_Contact: [\r\n this.properties[this.indexProperties][\"property_Contact\"],\r\n ],\r\n Service: [this.properties[this.indexProperties][\"service\"]],\r\n Deliverable: [this.properties[this.indexProperties][\"deliverable\"]],\r\n Created: [new Date(this.properties[this.indexProperties][\"created\"])],\r\n Latitude: [this.properties[this.indexProperties][\"latitude\"]],\r\n Longitude: [this.properties[this.indexProperties][\"longitude\"]],\r\n Property_Major_Type: [\r\n this.properties[this.indexProperties][\"property_Major_Type\"],\r\n ],\r\n Property_Subtype: [\r\n this.properties[this.indexProperties][\"property_Subtype\"],\r\n ],\r\n Property_Account: [\r\n this.properties[this.indexProperties][\"property_Account\"],\r\n ],\r\n Property_Contact_Email: [\r\n this.properties[this.indexProperties][\"property_Contact_Email\"],\r\n ],\r\n Zip_Code: [this.properties[this.indexProperties][\"zip_Code\"]],\r\n Property_Type: [this.properties[this.indexProperties][\"property_Type\"]],\r\n Identifier: [this.properties[this.indexProperties][\"identifier\"]],\r\n Street_Address: [this.properties[this.indexProperties][\"street_Address\"]],\r\n Country: [this.properties[this.indexProperties][\"country\"]],\r\n City: [this.properties[this.indexProperties][\"city\"]],\r\n Parcel_Number: [this.properties[this.indexProperties][\"parcel_Number\"]],\r\n Property_Descriptions: [\r\n this.properties[this.indexProperties][\"property_Descriptions\"],\r\n ],\r\n Id_property_Contact: [\r\n this.properties[this.indexProperties][\"id_Property_Contact\"],\r\n ],\r\n Id_Inspection_Contact: [\r\n this.properties[this.indexProperties][\"id_Inspection_Contact\"],\r\n ],\r\n });\r\n }\r\n\r\n getDocumentsType() {\r\n this.internalPropertiesService\r\n .getDocumentsType()\r\n .subscribe((types: any) => {\r\n this.documentsType = types\r\n .map((type) => type[\"property_type\"])\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n this.documents = types;\r\n });\r\n }\r\n\r\n getDocumentsCategory() {\r\n this.internalPropertiesService\r\n .getDocumentsCategory()\r\n .subscribe((categories: any) => {\r\n this.documentsCategory = categories;\r\n });\r\n }\r\n\r\n getParameteresURL() {\r\n this._Activatedroute.paramMap.subscribe((params) => {\r\n this.indexProperties = Number(params.get(\"id\"));\r\n this.getProperties();\r\n this.getRelationDocuments();\r\n });\r\n this.worksResponse = JSON.parse(\r\n sessionStorage.getItem(\"internalJobs\")\r\n );\r\n this.internalProperties = this.properties[this.indexProperties];\r\n this.buildPropertiesForm();\r\n }\r\n\r\n getRelationDocuments() {\r\n this.spinner.show();\r\n this._propertiesService\r\n .getRelationDocuments(\r\n this.properties[this.indexProperties][\"project_Number\"],\r\n this.properties[this.indexProperties][\"property_Number\"]\r\n )\r\n .subscribe(\r\n (response: RelationDocumentsResponse[]) => {\r\n this.relationInternalDocuments = response;\r\n this.spinner.hide();\r\n },\r\n (error) => {\r\n this.spinner.hide();\r\n this.toastr.error(error.error.message, \"Error\");\r\n }\r\n );\r\n }\r\n\r\n getProperties() {\r\n this.properties = JSON.parse(sessionStorage.getItem(\"internalProperties\"));\r\n this.internalProjects = JSON.parse(\r\n sessionStorage.getItem(\"internalProjects\")\r\n );\r\n this.projectNumber =\r\n this.properties[this.indexProperties][\"project_Number\"];\r\n this.idClient = this.internalProjects?.find(\r\n (project) => project.project_Number === this.projectNumber\r\n ).id_Client;\r\n this.getCompanyxContacts(this.idClient);\r\n }\r\n\r\n viewDocument(document: any) {\r\n this._propertiesService.viewDocument(document.document_url).subscribe(\r\n (response) => {\r\n const byteArray = new Uint8Array(\r\n atob(response)\r\n .split(\"\")\r\n .map((char) => char.charCodeAt(0))\r\n );\r\n let extension = document.document_url.substr(\r\n document.document_url.lastIndexOf(\".\") + 1\r\n );\r\n let mimeType = this.getMimeType(extension);\r\n const blob = new Blob([byteArray], { type: mimeType });\r\n const url = window.URL.createObjectURL(blob);\r\n window.open(url);\r\n this.documentFileTrustUrl = this.sanitizer.bypassSecurityTrustUrl(url);\r\n this.documentFileResourceUrl =\r\n this.sanitizer.bypassSecurityTrustResourceUrl(\r\n this.documentFileTrustUrl\r\n );\r\n },\r\n () => {\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n getMimeType(fileExtension: string) {\r\n switch (fileExtension) {\r\n case \"doc\":\r\n return \"application/msword\";\r\n case \"docx\":\r\n return \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\r\n case \"xls\":\r\n return \"application/vnd.ms-excel\";\r\n case \"xlsx\":\r\n return \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n case \"ppt\":\r\n return \"application/vnd.ms-powerpoint\";\r\n case \"pptx\":\r\n return \"application/vnd.openxmlformats-officedocument.presentationml.presentation\";\r\n case \"jpg\":\r\n return \"image/jpeg\";\r\n case \"png\":\r\n return \"image/png\";\r\n default:\r\n return \"application/pdf\";\r\n }\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n\r\n saveFormProperties() {\r\n const relatedJob = this.worksResponse\r\n ?.find( job => job['property_Number'] === this.propertiesForm.value.Property_Number);\r\n\r\n const data = {\r\n id: relatedJob.id,\r\n job_Number: relatedJob.job_Number,\r\n project_Number: relatedJob.project_Number,\r\n property_Number: relatedJob.property_Number,\r\n job_type: relatedJob.job_type,\r\n country: relatedJob.country,\r\n business_Unit: relatedJob.business_Unit,\r\n sector: relatedJob.sector,\r\n job_Manager: relatedJob.job_Manager,\r\n job_Status: relatedJob.job_Status,\r\n job_Comments: relatedJob.job_Comments,\r\n external_Fees: relatedJob.external_Fees,\r\n internal_fees: relatedJob.internal_fees,\r\n due_Date: relatedJob.due_Date,\r\n created: relatedJob.created,\r\n address: this.propertiesForm.value.Street_Address,\r\n currency: relatedJob.currency,\r\n equivalent_USD: relatedJob.equivalent_USD,\r\n account: relatedJob.account,\r\n account_Officer: relatedJob.account_Officer,\r\n phone_Account_Officer: relatedJob.phone_Account_Officer,\r\n email_Account_Officer: relatedJob.email_Account_Officer,\r\n deliverable: relatedJob.deliverable,\r\n property_Name: this.propertiesForm.value.Property_Name,\r\n latitude: this.propertiesForm.value.Latitude,\r\n longitude: this.propertiesForm.value.Longitude,\r\n city: relatedJob.city,\r\n zip_Code: relatedJob.zip_Code,\r\n name_Job_Manager: relatedJob.name_Job_Manager,\r\n department: relatedJob.department,\r\n market_Approach_Land: relatedJob.market_Approach_Land,\r\n residual_Land_Approach_Land: relatedJob.residual_Land_Approach_Land,\r\n cost_Approach: relatedJob.cost_Approach,\r\n market_Approach: relatedJob.market_Approach,\r\n income_Approach_Direct_Capitalization: relatedJob.income_Approach_Direct_Capitalization,\r\n income_Approach_Discounted_Cash_Flow: relatedJob.income_Approach_Discounted_Cash_Flow,\r\n interest_Valued: relatedJob.interest_Valued,\r\n type_of_Value: relatedJob.type_of_Value,\r\n valuation_Scenarios: relatedJob.valuation_Scenarios,\r\n delivery_Date: relatedJob.delivery_Date,\r\n days_to_Deliver: relatedJob.days_to_Deliver,\r\n iD_Collaborating_Territory: relatedJob.iD_Collaborating_Territory,\r\n iD_Collaborator: relatedJob.iD_Collaborator,\r\n percentage_of_Collaboration: relatedJob.percentage_of_Collaboration,\r\n iD_Job_Status: relatedJob.iD_Job_Status,\r\n iD_Job_Manager: relatedJob.iD_Job_Manager,\r\n id_Property_Contact: relatedJob.id_Property_Contact,\r\n id_Inspection_Contact: relatedJob.id_Inspection_Contact,\r\n iD_Account_Officer: relatedJob.iD_Account_Officer,\r\n iD_Account: relatedJob.iD_Account,\r\n inspection_Required: relatedJob.inspection_Required,\r\n id_Property_Type: relatedJob.id_Property_Type\r\n }\r\n\r\n this.spinner.show();\r\n this._propertiesService\r\n .updatePropertie(this.propertiesForm.value)\r\n .subscribe((response: any) => {\r\n if (response) {\r\n this.toastr.success(\r\n \"The property has been successfully updated\",\r\n \"Update Property\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.listProperties();\r\n this.saveFormJob(data);\r\n this.isEditable = false;\r\n this.spinner.hide();\r\n } else {\r\n this.toastr.error(\r\n \"Se han presentado problemas al actualizar la propiedad\",\r\n \"Update Property\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n });\r\n }\r\n\r\n listProperties() {\r\n this._propertiesService\r\n .getAllProperties()\r\n .subscribe((resp: PropertieResponse[]) => {\r\n sessionStorage.setItem(\"properties\", JSON.stringify(resp));\r\n sessionStorage.setItem(\"internalProperties\", JSON.stringify(resp));\r\n this.properties = JSON.parse(sessionStorage.getItem(\"internalProperties\"));\r\n this.internalProjects = JSON.parse(\r\n sessionStorage.getItem(\"internalProjects\")\r\n );\r\n });\r\n }\r\n\r\n sendNotificationDetail() {\r\n this.spinner.show();\r\n const email = this.contactRecords.find(\r\n (contact) =>\r\n this.notificationForm.value.Send_To ===\r\n contact.idContactInformationRecord\r\n )?.email;\r\n this.notificationForm.get(\"Send_To\").setValue(email);\r\n this.internalPropertiesService\r\n .sendNotificationDetail(this.notificationForm.value)\r\n .subscribe(\r\n () => {\r\n this.toastr.success(\"Sent successfully\", \"Notification Detail\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.notificationForm.patchValue({\r\n Send_To: null,\r\n Details: null,\r\n });\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se han presentado problemas realizar el envio de la notificación\",\r\n \"Notification Detail\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n clearFiltersDocumentations() {\r\n this.documentationForm.patchValue({\r\n property_type: undefined,\r\n document_Category: undefined,\r\n document_Name: undefined,\r\n });\r\n this.documentsFiltered = [];\r\n this.relationDocuments = [];\r\n }\r\n\r\n filterDocuments() {\r\n const filters = cleanNullAttributes(this.documentationForm.value);\r\n const resultFilter = findByMatchingProperty(this.documents, filters);\r\n this.documentsFiltered = resultFilter;\r\n this.relationDocuments = this.documentsFiltered;\r\n this.documentNames = this.relationDocuments\r\n .map((type) => type[\"document_Name\"])\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n }\r\n\r\n documentsUpload() {\r\n const documentsAlreadyLoad = [];\r\n this.documentsFiltered.forEach((document) => {\r\n let documentExists = this.documentsToUpload.find(\r\n (documentUpload) =>\r\n documentUpload.document_Name === document.document_Name\r\n );\r\n if (!documentExists) {\r\n this.documentsToUpload.push(document);\r\n } else {\r\n documentsAlreadyLoad.push(document);\r\n }\r\n });\r\n\r\n if (documentsAlreadyLoad.length > 0) {\r\n this.toastr.warning(\r\n \"There is/are document(s) already exists in the list\",\r\n \"Notification Detail\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n }\r\n }\r\n\r\n removeDocument(document) {\r\n this.documentsToUpload.splice(this.documentsToUpload.indexOf(document), 1);\r\n }\r\n\r\n saveDocuments() {\r\n this.spinner.show();\r\n const data = [];\r\n const duplicateDocuments = [];\r\n\r\n this.documentsToUpload.forEach((document) => {\r\n let documentExists = this.relationInternalDocuments.find(\r\n (documentUpload) =>\r\n documentUpload.document_Name === document.document_Name\r\n );\r\n\r\n data.push({\r\n Document_Name: document.document_Name,\r\n Property_Type: document.property_type,\r\n Document_Category: document.document_Category,\r\n Project_Number: this.properties[this.indexProperties][\"project_Number\"],\r\n Property: this.properties[this.indexProperties][\"property_Number\"],\r\n Document_Upload: false,\r\n Document_url: \"\",\r\n Created: new Date(),\r\n Id_RelacionDocumentoSH: 0,\r\n });\r\n\r\n if (documentExists) {\r\n duplicateDocuments.push(document);\r\n }\r\n });\r\n\r\n if (duplicateDocuments.length > 0) {\r\n this.toastr.warning(\r\n \"Alguno de los documentos que intenta cargar ya se encuentra cargado\",\r\n \"Notification Detail\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n } else {\r\n this.internalPropertiesService.saveDocuments(data).subscribe(\r\n () => {\r\n this.toastr.success(\r\n \"Documents have been stored successfully\",\r\n \"Upload Documents\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.documentsToUpload = [];\r\n this.getRelationDocuments();\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se han presentado problemas al almacenar los documentos\",\r\n \"Upload Documents\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n }\r\n\r\n private saveFormJob(job: any) {\r\n this.spinner.show();\r\n this._InternalWorksServices.updateJobs(job).subscribe(\r\n (): void => { this.spinner.hide() },\r\n (): void => { this.spinner.hide() }\r\n );\r\n }\r\n\r\n private getCompanyxContacts(idClient: number) {\r\n this.spinner.show();\r\n this.internalContactService.getCompanyxContacts(idClient).subscribe(\r\n (contacts: AccountRelationalontactModel[]) => {\r\n this.spinner.hide();\r\n const contactIds = contacts.map(\r\n (contact) => contact.idContactInformationRecord\r\n );\r\n this.getRecordsIds(contactIds);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\r\n `Error! Does not exist an ID Client in ${this.projectNumber}`,\r\n \"Error\"\r\n );\r\n }\r\n );\r\n }\r\n\r\n private getRecordsIds(contacts: number[]) {\r\n this.spinner.show();\r\n this.internalContactService.getRecordsIds(contacts).subscribe(\r\n (contactRecords: InternalContactModel[]) => {\r\n this.spinner.hide();\r\n this.contactRecords = contactRecords;\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { PropertieResponse } from '../../../../../models/properties/properties.response.model';\r\n\r\n@Component({\r\n selector: 'app-internal-table-properties',\r\n templateUrl: './internal-table-properties.component.html'\r\n})\r\nexport class InternalTablePropertiesComponent implements OnInit {\r\n\r\n filterPropertiesTable: string;\r\n\r\n @Output() updateInternalFilterProperties = new EventEmitter();\r\n @Input() propertiesResponse: PropertieResponse[];\r\n @Input() set filter(filter: string) {\r\n this.filterByWord(filter);\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n identifyProperties(index, propertie) {\r\n return propertie.id;\r\n }\r\n\r\n filterByWord(filter: string) {\r\n if (filter) {\r\n this.filterPropertiesTable = filter;\r\n this.propertiesResponse = JSON.parse(sessionStorage.getItem(\"internalProperties\"));\r\n var internalPropertiesFiltered = this.filterByValue(this.propertiesResponse, filter);\r\n this.updateInternalFilterProperties.emit(internalPropertiesFiltered);\r\n }\r\n }\r\n\r\n filterByValue(array, string) {\r\n return array?.filter((o) =>\r\n Object.keys(o).some((k) =>\r\n String(o[k])?.toLowerCase().includes(string?.toLowerCase())\r\n )\r\n );\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { PropertieResponse } from 'src/app/models/properties/properties.response.model';\r\nimport { PropertiesService } from 'src/app/services/admin-services/properties/properties.service';\r\nimport { AuthService } from 'src/app/services/auth/auth.service';\r\n\r\n@Component({\r\n selector: 'app-properties-table',\r\n templateUrl: './properties-table.component.html'\r\n})\r\nexport class PropertiesTableComponent implements OnInit {\r\n\r\n propertiesResponse: PropertieResponse[];\r\n\r\n constructor(\r\n private readonly propertiesService: PropertiesService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly authService: AuthService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.userProperties();\r\n this.loadSideBarConfiguration();\r\n }\r\n\r\n loadSideBarConfiguration() {\r\n let sidebar = document.querySelector(\".sidebar\");\r\n let closeBtn = document.querySelector(\"#btnMenuProperties\");\r\n\r\n closeBtn.addEventListener(\"click\", () => {\r\n sidebar.classList.toggle(\"open\");\r\n menuBtnChange();\r\n });\r\n\r\n function menuBtnChange() {\r\n if (sidebar.classList.contains(\"open\")) {\r\n closeBtn.classList.replace(\"bx-menu\", \"bx-menu-alt-right\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-14\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-3\");\r\n } else {\r\n closeBtn.classList.replace(\"bx-menu-alt-right\", \"bx-menu\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-3\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-14\");\r\n }\r\n }\r\n\r\n }\r\n\r\n userProperties() {\r\n this.spinner.show();\r\n this.propertiesService.currentPropiertes.subscribe( (resp: PropertieResponse[]) => {\r\n this.propertiesResponse = resp;\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-tasks-details',\r\n templateUrl: './tasks-details.component.html'\r\n})\r\nexport class TasksDetailsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from \"@angular/core\";\r\n\r\nimport {\r\n ApexAxisChartSeries,\r\n ApexChart,\r\n ChartComponent,\r\n ApexDataLabels,\r\n ApexPlotOptions,\r\n ApexResponsive,\r\n ApexXAxis,\r\n ApexLegend,\r\n ApexFill,\r\n ApexTooltip,\r\n ApexYAxis,\r\n} from \"ng-apexcharts\";\r\nimport { TaskModel } from \"src/app/models/tasks/tasks.model\";\r\n\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries;\r\n chart: ApexChart;\r\n dataLabels: ApexDataLabels;\r\n plotOptions: ApexPlotOptions;\r\n responsive: ApexResponsive[];\r\n xaxis: ApexXAxis;\r\n yaxis: ApexYAxis;\r\n legend: ApexLegend;\r\n fill: ApexFill;\r\n tooltip: ApexTooltip;\r\n};\r\n@Component({\r\n selector: \"app-tasks-graphics\",\r\n templateUrl: \"./tasks-graphics.component.html\",\r\n})\r\nexport class TasksGraphicsComponent implements OnInit {\r\n @ViewChild(\"chart\") chart: ChartComponent;\r\n @Input() title: string;\r\n @Input() horizontal: boolean;\r\n @Input() taskStatus: any[];\r\n @Input() taskCodes: any[];\r\n @Input() set tasks(tasks: TaskModel[]) {\r\n this.settingsChart(tasks);\r\n };\r\n\r\n types: any[] = [];\r\n assigneds: any[] = [];\r\n public chartOptions: Partial;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void { }\r\n\r\n settingsChart(tasks: TaskModel[]) {\r\n this.chartOptions = {\r\n series: this.getSeries(tasks),\r\n chart: {\r\n type: \"bar\",\r\n height: 470,\r\n stacked: true,\r\n toolbar: {\r\n show: true,\r\n },\r\n zoom: {\r\n enabled: true,\r\n },\r\n },\r\n responsive: [\r\n {\r\n breakpoint: 480,\r\n options: {\r\n legend: {\r\n position: \"bottom\",\r\n offsetX: -10,\r\n offsetY: 0,\r\n },\r\n },\r\n },\r\n ],\r\n plotOptions: {\r\n bar: {\r\n horizontal: this.horizontal\r\n },\r\n },\r\n xaxis: {\r\n type: \"category\",\r\n categories: this.getCategories(tasks),\r\n },\r\n yaxis: {\r\n labels: {\r\n formatter(val) {\r\n return val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\r\n },\r\n },\r\n },\r\n legend: {\r\n position: this.horizontal ? \"bottom\" : \"right\",\r\n offsetY: 10,\r\n markers: {\r\n fillColors: [\r\n '#415AA8',\r\n '#1A468D',\r\n '#254382',\r\n '#51737F',\r\n '#0080C8',\r\n '#03B1E5',\r\n '#ABC8E6',\r\n '#5D6770',\r\n '#FE0000',\r\n '#FD4600',\r\n '#FF6D3E',\r\n '#FAA21C',\r\n '#B4B5B7',\r\n '#FDE3C0',\r\n ],\r\n },\r\n },\r\n fill: {\r\n colors: [\r\n '#415AA8',\r\n '#1A468D',\r\n '#254382',\r\n '#51737F',\r\n '#0080C8',\r\n '#03B1E5',\r\n '#ABC8E6',\r\n '#5D6770',\r\n '#FE0000',\r\n '#FD4600',\r\n '#FF6D3E',\r\n '#FAA21C',\r\n '#B4B5B7',\r\n '#FDE3C0',\r\n ],\r\n opacity: 1,\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n custom: ({ series, seriesIndex, dataPointIndex, w }) => {\r\n if (this.horizontal) {\r\n const serie = w.globals.seriesNames[seriesIndex];\r\n const assigned = this.assigneds.find(\r\n (assign) => assign.assigned_to_Name === serie\r\n );\r\n return (\r\n \"
\" +\r\n \"\" +\r\n \"Status: \" +\r\n this.taskStatus?.find(\r\n (status) => status.name_Status === assigned.task_Status_Description\r\n )?.name_Status +\r\n \"\" +\r\n \"\" +\r\n \"Task Category: \" +\r\n this.taskCodes?.find(\r\n (status) => status.name_Code === assigned.task_Category_Description\r\n )?.name_Code +\r\n \"\" +\r\n \"\" +\r\n \"Assigned to: \" +\r\n assigned?.assigned_to +\r\n \"\" +\r\n \"\" +\r\n \"Start Date: \" +\r\n assigned?.startt_Date.split(\"T\")[0] +\r\n \"\" +\r\n \"\" +\r\n \"Expiration Date: \" +\r\n assigned?.expiration_Date.split(\"T\")[0] +\r\n \"\" +\r\n \"
\"\r\n );\r\n } else {\r\n const serie = w.globals.seriesNames[seriesIndex];\r\n const type = this.types.find(\r\n (typeValue) => typeValue.task_Status_Description === serie\r\n );\r\n return (\r\n \"
\" +\r\n \"\" +\r\n \"Status: \" +\r\n type?.task_Status_Description +\r\n \"\" +\r\n \"\" +\r\n \"Task Category: \" +\r\n type?.task_Category_Description +\r\n \"\" +\r\n \"\" +\r\n \"Assigned to: \" +\r\n type?.assigned_to +\r\n \"\" +\r\n \"\" +\r\n \"Start Date: \" +\r\n type?.startt_Date.split(\"T\")[0] +\r\n \"\" +\r\n \"\" +\r\n \"Expiration Date: \" +\r\n type?.expiration_Date.split(\"T\")[0] +\r\n \"\" +\r\n \"
\"\r\n );\r\n }\r\n },\r\n marker: {\r\n fillColors: [\r\n '#415AA8',\r\n '#1A468D',\r\n '#254382',\r\n '#51737F',\r\n '#0080C8',\r\n '#03B1E5',\r\n '#ABC8E6',\r\n '#5D6770',\r\n '#FE0000',\r\n '#FD4600',\r\n '#FF6D3E',\r\n '#FAA21C',\r\n '#B4B5B7',\r\n '#FDE3C0',\r\n ],\r\n },\r\n },\r\n };\r\n }\r\n\r\n getSeries(tasks: TaskModel[]) {\r\n let series = [];\r\n const types = tasks\r\n .map((task: TaskModel) => task.task_Category_Description)\r\n .filter(\r\n (value: string, index: number, self: string[]) =>\r\n self.indexOf(value) === index\r\n );\r\n\r\n const status = tasks\r\n .map((task: TaskModel) => task.task_Status_Description)\r\n .filter(\r\n (value: string, index: number, self: string[]) =>\r\n self.indexOf(value) === index\r\n );\r\n\r\n const assigneds = tasks\r\n .map((task: TaskModel) => task.assigned_to_Name)\r\n .filter(\r\n (value: string, index: number, self: string[]) =>\r\n self.indexOf(value) === index\r\n );\r\n\r\n if (this.horizontal) {\r\n assigneds.forEach((assigned: string) => {\r\n series.push({ name: assigned, data: [] });\r\n });\r\n series.forEach((serie) => {\r\n assigneds.forEach((assigned: string) => {\r\n if (serie.name === assigned) {\r\n const assigneds = tasks.filter(\r\n (task: TaskModel) => task.assigned_to_Name === assigned\r\n );\r\n assigneds.forEach((value) => {\r\n this.assigneds.push(value);\r\n });\r\n serie.data.push(assigneds.length);\r\n } else {\r\n serie.data.push(0);\r\n }\r\n });\r\n });\r\n } else {\r\n status.forEach((status: string) => {\r\n series.push({ name: status, data: [] });\r\n });\r\n series.forEach((serie) => {\r\n types.forEach((type: string) => {\r\n const types = tasks.filter(\r\n (task: TaskModel) =>\r\n task.task_Category_Description === type && task.task_Status_Description === serie.name\r\n );\r\n if (types.length > 0) {\r\n types.forEach((value) => {\r\n this.types.push(value);\r\n });\r\n serie.data.push(types.length);\r\n } else {\r\n serie.data.push(0);\r\n }\r\n });\r\n });\r\n if (series.length === 1) {\r\n series.push({ name: \"No existen más tipos\", data: [0] });\r\n }\r\n }\r\n return series;\r\n }\r\n\r\n getCategories(tasks: TaskModel[]) {\r\n if (this.horizontal) {\r\n return tasks\r\n .map((task: TaskModel) => task?.assigned_to_Name)\r\n .filter(\r\n (value: string, index: number, self: string[]) =>\r\n self.indexOf(value) === index\r\n );\r\n } else {\r\n return tasks\r\n .map((task: TaskModel) => task?.task_Category_Description)\r\n .filter(\r\n (value: string, index: number, self: string[]) =>\r\n self.indexOf(value) === index\r\n );\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-internal-details-tasks',\r\n templateUrl: './internal-details-tasks.component.html'\r\n})\r\nexport class InternalDetailsTasksComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport {\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} from \"@angular/forms\";\r\nimport { InternalTasksService } from \"src/app/services/admin-services/tasks/internal-tasks.service\";\r\nimport { InternalWorksService } from \"../../../../../../services/admin-services/works/internal-works.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { TaskModel } from \"src/app/models/tasks/tasks.model\";\r\nimport { combineLatest } from \"rxjs\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\n\r\n@Component({\r\n selector: \"app-edit-task-dialog\",\r\n templateUrl: \"./edit-task-dialog.component.html\",\r\n})\r\nexport class EditTaskDialogComponent implements OnInit {\r\n taskForm: UntypedFormGroup;\r\n taskCodes: any = [];\r\n taskSubTypes: any = [];\r\n taskCodesFiltered: any = [];\r\n internalJobs: any = [];\r\n internalContacts: any = [];\r\n externalContacts: any = [];\r\n contacts: any = [];\r\n projectNumber: string;\r\n manager: string;\r\n isIspenctionDate = false;\r\n isLoadingForm = false;\r\n startDate: any;\r\n expirationDate: any;\r\n\r\n constructor(\r\n private readonly dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly internalTasksService: InternalTasksService,\r\n private readonly internalJobsService: InternalWorksService,\r\n private readonly toastr: ToastrService,\r\n private readonly spinner: NgxSpinnerService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getTaskCodes();\r\n this.getTaskSubTypes();\r\n this.getJobsNumbers();\r\n this.getContacts();\r\n }\r\n\r\n getContacts() {\r\n combineLatest([\r\n this.internalJobsService.getInternalContacts(),\r\n this.internalJobsService.getExternalContacts(),\r\n ]).subscribe(([internalContacts, externalContacts]) => {\r\n if (internalContacts !== null && externalContacts !== null) {\r\n this.internalContacts = internalContacts;\r\n this.externalContacts = externalContacts;\r\n this.buildTaskForm();\r\n this.jobNumberChange();\r\n this.taskStatusChange();\r\n this.assignedToChange();\r\n this.taskSubtypeChange();\r\n this.taskTypeChange();\r\n this.taskStartDateChange();\r\n this.taskExpirationDateChange();\r\n this.isLoadingForm = true;\r\n }\r\n });\r\n }\r\n\r\n assignedToChange() {\r\n this.taskForm.get(\"Assigned_to\").valueChanges.subscribe((value) => {\r\n const assignedToName = this.internalContacts.find(\r\n (contact) => contact.email === value\r\n )?.full_Name;\r\n this.taskForm.get(\"Assigned_to_Name\").setValue(assignedToName);\r\n });\r\n }\r\n\r\n taskTypeChange() {\r\n this.taskForm.get(\"Task_Type\").valueChanges.subscribe((resp) => {\r\n if (resp === 1) {\r\n this.contacts = this.internalContacts;\r\n } else {\r\n this.contacts = this.externalContacts;\r\n }\r\n });\r\n }\r\n\r\n taskSubtypeChange() {\r\n this.taskForm.get(\"Id_Task_SubType\").valueChanges.subscribe((subtype) => {\r\n this.taskCodesFiltered = this.taskCodes.filter(\r\n (taskCode) => taskCode.id_Task_SubType === +subtype\r\n );\r\n });\r\n }\r\n\r\n taskStartDateChange() {\r\n this.taskForm.get(\"Startt_Date\").valueChanges.subscribe((startDate) => {\r\n this.startDate = startDate;\r\n this.dateRangeValidator();\r\n });\r\n }\r\n\r\n taskExpirationDateChange() {\r\n this.taskForm\r\n .get(\"Expiration_Date\")\r\n .valueChanges.subscribe((expirationDate) => {\r\n this.expirationDate = expirationDate;\r\n this.dateRangeValidator();\r\n });\r\n }\r\n\r\n jobNumberChange() {\r\n this.taskForm.get(\"Job_Number\").valueChanges.subscribe((jobNumber) => {\r\n this.projectNumber = this.internalJobs.find(\r\n (x) => x.job_Number == jobNumber\r\n )?.project_Number;\r\n this.manager = this.internalJobs.find(\r\n (x) => x.job_Number == jobNumber\r\n ).job_Manager;\r\n this.taskForm.patchValue({\r\n Project_Number: this.projectNumber,\r\n Manager: this.manager,\r\n Manager_Name: this.manager,\r\n });\r\n });\r\n }\r\n\r\n taskStatusChange() {\r\n this.taskForm.get(\"Task_Status\").valueChanges.subscribe(() => {\r\n if (\r\n this.taskForm.get(\"Task_Status\").value === \"Canceled\" ||\r\n this.taskForm.get(\"Task_Status\").value === \"Finished\"\r\n ) {\r\n this.taskForm.get(\"Comments\").setValidators(Validators.required);\r\n this.taskForm.get(\"Comments\").updateValueAndValidity();\r\n } else {\r\n this.taskForm.get(\"Comments\").clearValidators();\r\n this.taskForm.get(\"Comments\").updateValueAndValidity();\r\n }\r\n });\r\n }\r\n\r\n buildTaskForm() {\r\n let jobNumber = \"\";\r\n\r\n if (!this.data.task) {\r\n jobNumber = this.data.jobNumber;\r\n } else {\r\n jobNumber = this.data.task.job_Number;\r\n\r\n if (this.data.task.task_Category === 1) {\r\n this.isIspenctionDate = true;\r\n }\r\n\r\n if (this.data.task.task_Type === 1) {\r\n this.contacts = this.internalContacts;\r\n } else {\r\n this.contacts = this.externalContacts;\r\n }\r\n }\r\n\r\n this.taskForm = this.formBuilder.group({\r\n ID: [this.data.task === undefined ? \"\" : this.data.task.id],\r\n Task_Name: [this.data.task === undefined ? \"\" : this.data.task.task_Name],\r\n Task_Type: [\r\n this.data.task === undefined ? \"\" : this.data.task.task_Type,\r\n Validators.required,\r\n ],\r\n Id_Task_SubType: [\r\n this.data.task === undefined ? \"\" : +this.data.task.id_Task_SubType,\r\n Validators.required,\r\n ],\r\n Job_Number: [jobNumber, Validators.required],\r\n Startt_Date: [\r\n this.data.task === undefined\r\n ? null\r\n : new Date(this.data.task?.startt_Date),\r\n Validators.required,\r\n ],\r\n Expiration_Date: [\r\n this.data.task === undefined\r\n ? null\r\n : new Date(this.data.task?.expiration_Date),\r\n Validators.required,\r\n ],\r\n Date_Completed: [\r\n this.data.task === undefined\r\n ? new Date()\r\n : new Date(this.data.task.date_Completed),\r\n ],\r\n Assigned_to: [\r\n this.data.task === undefined ? \"\" : this.data.task.assigned_to,\r\n Validators.required,\r\n ],\r\n Task_Status: [\r\n this.data.task === undefined ? 1 : this.data.task?.task_Status,\r\n Validators.required,\r\n ],\r\n Project_Number: [\r\n this.data.task === undefined ? \"\" : this.data.task.project_Number,\r\n ],\r\n Manager: [this.data.task === undefined ? \"\" : this.data.task.manager],\r\n Created: [\r\n this.data.task === undefined\r\n ? new Date()\r\n : new Date(this.data.task.created),\r\n Validators.required,\r\n ],\r\n Modified: [new Date(), Validators.required],\r\n Assigned_to_Name: [\r\n this.data.task === undefined ? \"\" : this.data.task.assigned_to_Name,\r\n ],\r\n Manager_Name: [\r\n this.data.task === undefined ? \"\" : this.data.task.manager_Name,\r\n ],\r\n Comments: [this.data.task === undefined ? \"\" : this.data.task.comments],\r\n Task_Category: [\r\n this.data.task === undefined ? \"\" : this.data.task.task_Category,\r\n Validators.required,\r\n ],\r\n Inspection_Date: [\r\n this.data.task === undefined\r\n ? new Date()\r\n : new Date(this.data.task.inspection_Date),\r\n ],\r\n });\r\n\r\n if (this.data?.task?.id_Task_SubType) {\r\n this.taskCodesFiltered = this.taskCodes.filter(\r\n (taskCode) =>\r\n taskCode.id_Task_SubType === +this.data.task.id_Task_SubType\r\n );\r\n }\r\n }\r\n\r\n getTaskSubTypes() {\r\n this.internalTasksService.getTaskSubTypes().subscribe((resp) => {\r\n this.taskSubTypes = resp;\r\n });\r\n }\r\n\r\n getTaskCodes() {\r\n this.taskCodes = this.data.taskCodes;\r\n this.taskCodesFiltered = this.data.taskCodes;\r\n }\r\n\r\n getJobsNumbers() {\r\n this.internalJobs = JSON.parse(sessionStorage.getItem(\"internalJobs\"));\r\n }\r\n\r\n createUpdateTask() {\r\n this.spinner.show();\r\n if (this.data.action === \"create\") {\r\n let taskCategoryName = this.data.taskCategory.find(\r\n (taskCategory) => taskCategory.id === this.taskForm.value.Task_Category\r\n ).name_Category;\r\n this.taskForm.removeControl(\"ID\");\r\n this.taskForm\r\n .get(\"Id_Task_SubType\")\r\n .setValue(+this.taskForm.value.Id_Task_SubType);\r\n this.taskForm.get(\"Task_Name\").setValue(taskCategoryName);\r\n this.internalTasksService.createTask(this.taskForm.value).subscribe(\r\n () => {\r\n this.toastr.success(\r\n \"The task has been created successfully\",\r\n \"Create Task\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.closeDialog(true);\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again.\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n } else {\r\n this.taskForm\r\n .get(\"Id_Task_SubType\")\r\n .setValue(+this.taskForm.value.Id_Task_SubType);\r\n this.internalTasksService.updateTask(this.taskForm.value).subscribe(\r\n () => {\r\n this.toastr.success(\r\n \"The Task has been updated successfully\",\r\n \"Update Task\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.closeDialog(true);\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again.\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n }\r\n\r\n closeDialog(reload: boolean = false) {\r\n this.dialogRef.close(reload);\r\n }\r\n\r\n getInternalContacts() {\r\n this.internalJobsService\r\n .getInternalContacts()\r\n .subscribe(\r\n (internalContacts) => (this.internalContacts = internalContacts)\r\n );\r\n }\r\n\r\n getExternalContacs() {\r\n this.internalJobsService\r\n .getExternalContacts()\r\n .subscribe(\r\n (externalContacts) => (this.externalContacts = externalContacts)\r\n );\r\n }\r\n\r\n getTasksByUser() {\r\n this.internalTasksService.getTasksByUser().subscribe(\r\n (response: TaskModel[]) => {\r\n sessionStorage.setItem(\"tasks\", JSON.stringify(response));\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se ha presentado un problema cargando las tareas\",\r\n \"Tareas\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n private dateRangeValidator() {\r\n let difference = this.startDate.diff(this.expirationDate);\r\n if (this.startDate && this.expirationDate && difference > 0) {\r\n this.toastr.warning('The \"Start Date\" must be less than the \"End Date\"');\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { TaskModel } from \"../../../../../models/tasks/tasks.model\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { EditTaskDialogComponent } from \"./edit-task-dialog/edit-task-dialog.component\";\r\n\r\n@Component({\r\n selector: \"app-internal-table-tasks\",\r\n templateUrl: \"./internal-table-tasks.component.html\",\r\n})\r\nexport class InternalTableTasksComponent implements OnInit {\r\n filterTable: string;\r\n internalProperties = [];\r\n @Input() taskStatus: any[];\r\n @Input() taskCategory: any[];\r\n @Input() taskType: any[];\r\n @Input() taskCodes: any[];\r\n\r\n @Output() updateInternalFilterTasks = new EventEmitter();\r\n @Input() tasks: TaskModel[];\r\n @Input() set filter(filter: string) {\r\n this.filterByWord(filter);\r\n }\r\n\r\n constructor(private readonly dialog: MatDialog) {}\r\n\r\n ngOnInit(): void {\r\n this.internalProperties = JSON.parse(\r\n sessionStorage.getItem(\"internalProperties\")\r\n );\r\n }\r\n\r\n getStatusName(status: number) {\r\n return this.taskStatus?.find((x) => x.id === status)?.name_Status;\r\n }\r\n\r\n getTypeName(type: number) {\r\n return this.taskType?.find((x) => x.id === type)?.name_Option;\r\n }\r\n\r\n getCategoryName(category: number) {\r\n return this.taskCodes?.find((x) => x.id === category)?.name_Code;\r\n }\r\n\r\n filterByWord(filter: string) {\r\n this.filterTable = filter;\r\n this.tasks = JSON.parse(sessionStorage.getItem(\"tasks\"));\r\n var internalTasksFiltered = this.filterByValue(this.tasks, filter);\r\n this.updateInternalFilterTasks.emit(internalTasksFiltered);\r\n }\r\n\r\n filterByValue(array, string) {\r\n return array?.filter((o) =>\r\n Object.keys(o).some((k) =>\r\n String(o[k])?.toLowerCase().includes(string?.toLowerCase())\r\n )\r\n );\r\n }\r\n\r\n openEditTaskDialog(task?: TaskModel) {\r\n const dialogRef = this.dialog.open(EditTaskDialogComponent, {\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n task,\r\n taskStatus: this.taskStatus,\r\n taskCategory: this.taskCategory,\r\n taskType: this.taskType,\r\n taskCodes: this.taskCodes,\r\n action: \"edit\",\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n window.location.reload();\r\n }\r\n });\r\n }\r\n\r\n getPropertyName(task: TaskModel) {\r\n return this.internalProperties?.find(\r\n (x) => x.project_Number === task.project_Number\r\n )?.property_Name;\r\n }\r\n\r\n getIndexProperty(task: TaskModel) {\r\n return this.internalProperties.findIndex(\r\n (x) => x.property_Number === task[\"property_Number\"]\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { TaskResponse } from 'src/app/models/tasks/tasks.response.model';\r\nimport { TasksService } from 'src/app/services/admin-services/tasks/tasks.service';\r\nimport { AuthService } from 'src/app/services/auth/auth.service';\r\n\r\n@Component({\r\n selector: 'app-tasks-table',\r\n templateUrl: './tasks-table.component.html'\r\n})\r\nexport class TasksTableComponent implements OnInit {\r\n\r\n tasksResponse: TaskResponse[];\r\n\r\n constructor(\r\n private readonly tasksService: TasksService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly authService: AuthService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.userProperties();\r\n this.loadSideBarConfiguration();\r\n }\r\n\r\n loadSideBarConfiguration() {\r\n let sidebar = document.querySelector(\".sidebar\");\r\n let closeBtn = document.querySelector(\"#btnMenuTasks\");\r\n\r\n closeBtn.addEventListener(\"click\", () => {\r\n sidebar.classList.toggle(\"open\");\r\n menuBtnChange();\r\n });\r\n\r\n function menuBtnChange() {\r\n if (sidebar.classList.contains(\"open\")) {\r\n closeBtn.classList.replace(\"bx-menu\", \"bx-menu-alt-right\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-14\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-3\");\r\n } else {\r\n closeBtn.classList.replace(\"bx-menu-alt-right\", \"bx-menu\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-3\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-14\");\r\n }\r\n }\r\n\r\n }\r\n\r\n userProperties() {\r\n this.spinner.show();\r\n this.tasksService.getAllTasks().subscribe( (resp: TaskResponse[]) => {\r\n this.tasksResponse = resp;\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-works-details',\r\n templateUrl: './works-details.component.html'\r\n})\r\nexport class WorksDetailsComponent implements OnInit {\r\n\r\n openTab: number = 1;\r\n indexWorks: number;\r\n works: string[] = [];\r\n\r\n constructor(\r\n private readonly _Activatedroute: ActivatedRoute,\r\n private readonly spinner: NgxSpinnerService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getParameteresURL();\r\n }\r\n\r\n getParameteresURL() {\r\n this._Activatedroute.paramMap.subscribe(params => { \r\n this.indexWorks = Number(params.get('id'));\r\n this.getWorks();\r\n });\r\n }\r\n\r\n getWorks() {\r\n this.works = JSON.parse(sessionStorage.getItem(\"jobs\"));\r\n }\r\n\r\n toggleTabs($tabNumber: number){\r\n this.openTab = $tabNumber;\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { InternalWorksService } from \"../../../../../../services/admin-services/works/internal-works.service\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport {\r\n ConfirmationCollaborationDialogComponent\r\n} from \"./confirmation-collaboration-dialog/confirmation-collaboration-dialog.component\";\r\n\r\n@Component({\r\n selector: 'app-collaboration-dialog',\r\n templateUrl: './collaboration-dialog.component.html'\r\n})\r\nexport class CollaborationDialogComponent implements OnInit {\r\n\r\n collaborationForm: UntypedFormGroup;\r\n hasBeenSaved = false;\r\n\r\n constructor(\r\n private readonly dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private readonly dialog: MatDialog,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly internalWorksService: InternalWorksService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.buildcollaborationForm();\r\n }\r\n\r\n confirmationManageCollaboration() {\r\n if (this.collaborationForm.dirty) {\r\n const dialogRef = this.dialog.open(ConfirmationCollaborationDialogComponent, {\r\n hasBackdrop: true,\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n collaborationForm: this.collaborationForm\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((action: string) => {\r\n if ( action === 'discardChanges') {\r\n this.dialogRef.close();\r\n } else if ( action === 'saveChanges') {\r\n this.manageCollaboration('saveAndClose');\r\n }\r\n });\r\n } else {\r\n this.dialogRef.close();\r\n }\r\n }\r\n\r\n manageCollaboration(action: string): void {\r\n if (this.data.action === 'edit') {\r\n this.updateCollaboration(action);\r\n } else {\r\n this.createCollaboration(action);\r\n }\r\n }\r\n\r\n private createCollaboration(action: string): void {\r\n if ( this.hasBeenSaved ) {\r\n this.keepOrCloseDialog(action);\r\n } else {\r\n this.spinner.show();\r\n this.collaborationForm.get('id').setValue(0);\r\n this.internalWorksService.createCollaboration(this.collaborationForm.value).subscribe(\r\n () => {\r\n this.toastr.success('Collaboration created successfully.');\r\n this.spinner.hide();\r\n this.keepOrCloseDialog(action);\r\n },\r\n () => {\r\n this.toastr.error('Error, please try again later.');\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n }\r\n\r\n private updateCollaboration(action: string): void {\r\n this.spinner.show();\r\n this.internalWorksService.updateCollaboration(this.collaborationForm.value).subscribe(\r\n () => {\r\n this.toastr.success('Collaboration updated successfully.');\r\n this.spinner.hide();\r\n this.keepOrCloseDialog(action);\r\n },\r\n () => {\r\n this.toastr.error('Error, please try again later.');\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private keepOrCloseDialog(action: string): void {\r\n if ( action === 'saveAndClose') {\r\n this.dialogRef.close();\r\n } else {\r\n this.hasBeenSaved = true;\r\n }\r\n }\r\n\r\n private buildcollaborationForm(): void {\r\n this.collaborationForm = this.formBuilder.group({\r\n id: [this.data?.collaboration?.id],\r\n territoryCollaborating: [this.data?.collaboration?.territoryCollaborating, Validators.required],\r\n collaborator: [this.data?.collaboration?.collaborator, Validators.required],\r\n percentageOfCollaboration: [this.data?.collaboration?.percentageOfCollaboration, Validators.required],\r\n statusCode: [this.data?.collaboration?.statusCode, Validators.required],\r\n createdOn: [this.data?.collaboration ? this.data?.collaboration?.createdOn : new Date()],\r\n modifiedOn: [new Date()],\r\n createdBy: [this.data?.collaboration ? this.data?.collaboration?.createdBy : sessionStorage.getItem('userID')],\r\n modifiedBy: [sessionStorage.getItem('userID')],\r\n idJob: [this.data?.collaboration ? this.data?.collaboration?.idJob : this.data?.jobId],\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-confirmation-collaboration-dialog',\r\n templateUrl: './confirmation-collaboration-dialog.component.html'\r\n})\r\nexport class ConfirmationCollaborationDialogComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-confirmation-inspection-dialog',\r\n templateUrl: './confirmation-inspection-dialog.component.html'\r\n})\r\nexport class ConfirmationInspectionDialogComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { InternalWorksService } from \"../../../../../../services/admin-services/works/internal-works.service\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { ConfirmationInspectionDialogComponent } from \"./confirmation-inspection-dialog/confirmation-inspection-dialog.component\";\r\n\r\n@Component({\r\n selector: 'app-inspection-dialog',\r\n templateUrl: './inspection-dialog.component.html'\r\n})\r\nexport class InspectionDialogComponent implements OnInit {\r\n\r\n inspectionForm: UntypedFormGroup;\r\n hasBeenSaved = false;\r\n\r\n constructor(\r\n private readonly dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly internalWorksService: InternalWorksService,\r\n private readonly dialog: MatDialog,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.buildInspectionForm();\r\n }\r\n\r\n confirmationManageInspection() {\r\n if (this.inspectionForm.dirty) {\r\n const dialogRef = this.dialog.open(ConfirmationInspectionDialogComponent, {\r\n hasBackdrop: true,\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n inspectionForm: this.inspectionForm\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((action: string) => {\r\n if ( action === 'discardChanges') {\r\n this.dialogRef.close();\r\n } else if ( action === 'saveChanges') {\r\n this.manageInspection('saveAndClose');\r\n }\r\n });\r\n } else {\r\n this.dialogRef.close();\r\n }\r\n }\r\n\r\n manageInspection(action: string): void {\r\n if (this.data.action === 'edit') {\r\n this.updateInspection(action);\r\n } else {\r\n this.createInspection(action);\r\n }\r\n }\r\n\r\n private createInspection(action: string): void {\r\n if ( this.hasBeenSaved ) {\r\n this.keepOrCloseDialog(action);\r\n } else {\r\n this.spinner.show();\r\n this.inspectionForm.get('idInspection').setValue(0);\r\n this.internalWorksService.createInspection(this.inspectionForm.value).subscribe(\r\n () => {\r\n this.toastr.success('Inspection created successfully.');\r\n this.spinner.hide();\r\n this.keepOrCloseDialog(action);\r\n },\r\n () => {\r\n this.toastr.error('Error, please try again later.');\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n }\r\n\r\n private updateInspection(action: string): void {\r\n this.spinner.show();\r\n this.internalWorksService.updateInspection(this.inspectionForm.value).subscribe(\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.success('Inspection updated successfully', 'Success');\r\n this.keepOrCloseDialog(action);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error('An error occurred while updating the inspection', 'Error');\r\n }\r\n );\r\n }\r\n\r\n private keepOrCloseDialog(action: string): void {\r\n if ( action === 'saveAndClose') {\r\n this.dialogRef.close();\r\n } else {\r\n this.hasBeenSaved = true;\r\n }\r\n }\r\n\r\n private buildInspectionForm(): void {\r\n this.inspectionForm = this.formBuilder.group({\r\n idInspection: [this.data?.inspection?.idInspection],\r\n inspectionNumber: [this.data?.inspection?.inspectionNumber ? this.data?.inspection?.inspectionNumber : this.data?.inspectionConsecutive],\r\n inspectionDate: [this.data?.inspection?.inspectionDate, Validators.required],\r\n inspectedBy: [this.data?.inspection?.inspectedBy, Validators.required],\r\n idJob: [this.data?.jobId],\r\n statusInspection: [this.data?.inspection?.statusInspection, Validators.required],\r\n createdOn: [this.data?.inspection ? this.data?.inspection?.createdOn : new Date()],\r\n createdBy: [this.data?.inspection ? this.data?.inspection?.createdBy : sessionStorage.getItem('userID')],\r\n modifiedOn: [this.data?.inspection ? this.data?.inspection?.modifiedOn : new Date()],\r\n modifiedBy: [sessionStorage.getItem('userID')],\r\n status: [this.data?.inspection ? this.data?.inspection?.status : 'Active']\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, QueryList, ViewChild, ViewChildren } from \"@angular/core\";\r\nimport {\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} from \"@angular/forms\";\r\nimport { Location } from '@angular/common';\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { TaskModel } from \"src/app/models/tasks/tasks.model\";\r\nimport { loadSideBarConfiguration, searchJson } from \"src/app/utils/utils\";\r\nimport { InternalWorksService } from \"../../../../../services/admin-services/works/internal-works.service\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { InternalWorksResponse } from \"src/app/models/works/internal.works.response.model\";\r\nimport { EditTaskDialogComponent } from \"../../../tasks/internal/internal-table-tasks/edit-task-dialog/edit-task-dialog.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { CanComponentDeactivate } from \"src/app/config/prevent-change-route/prevent-change-route.guard\";\r\nimport { ConfirmDialogNewVersionComponent } from \"src/app/components/modals/confirm-dialog/confirm-dialog.component\";\r\nimport { InternalTasksService } from \"src/app/services/admin-services/tasks/internal-tasks.service\";\r\nimport { InternalContactModel } from \"src/app/models/internal-contacts/internal-contact.model\";\r\nimport { AccountRelationalontactModel } from \"src/app/models/accounts/relational-contact.model\";\r\nimport { InternalContactsService } from \"src/app/services/admin-services/internal-contacts/internal-contacts.service\";\r\nimport { MatTable, MatTableDataSource } from \"@angular/material/table\";\r\nimport {\r\n UploadFilesComponent\r\n} from \"../../../../../utils/upload-files/upload-files.component\";\r\nimport { ProjectFileModel } from \"../../../../../models/projects/project.file.model\";\r\nimport { ProjectsService } from \"../../../../../services/admin-services/projects/projects.service\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { getExtensionIcon } from \"../../../../../utils/file-extensions-allowed\";\r\nimport { map } from \"rxjs/operators\";\r\nimport {\r\n UpdateDocumentDialogComponent\r\n} from \"../../../../../utils/update-document-dialog/update-document-dialog.component\";\r\nimport { Group } from \"../../../../../models/general/group-column.class\";\r\nimport {\r\n ManageInternalContactDialogComponent\r\n} from \"../../../../../views/admin/internal-contacts/manage-internal-contact-dialog/manage-internal-contact-dialog.component\";\r\nimport { ProjectResponse } from \"../../../../../models/projects/project.response.model\";\r\nimport {\r\n InternalPropertiesService\r\n} from \"../../../../../services/admin-services/properties/internal-properties.service\";\r\nimport { CollaborationModel } from \"../../../../../models/works/collaboration.model\";\r\nimport { CollaborationDialogComponent } from \"./collaboration-dialog/collaboration-dialog.component\";\r\nimport { InspectionModel } from \"../../../../../models/works/inspection.model\";\r\nimport { forkJoin } from \"rxjs\";\r\nimport { InspectionDialogComponent } from \"./inspection-dialog/inspection-dialog.component\";\r\nimport { InspectionStatusModel } from \"../../../../../models/works/inspection-status.model\";\r\n\r\n@Component({\r\n selector: \"app-internal-details\",\r\n templateUrl: \"./internal-details.component.html\",\r\n})\r\nexport class InternalDetailsComponent\r\n implements OnInit, CanComponentDeactivate\r\n{\r\n\r\n @ViewChild(MatTable) matTables : QueryList>;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChildren(MatPaginator)\r\n set paginator(pagination: any) {\r\n this.dataSource.paginator = pagination.toArray()[1];\r\n this.dataSourceInspections.paginator = pagination.toArray()[0];\r\n this.dataSource.sort = this.sort;\r\n }\r\n groupByColumns: string[] = ['documentType'];\r\n displayedColumns: string[] = [\r\n \"item\",\r\n \"documentName\",\r\n \"documentType\",\r\n \"createdOn\",\r\n \"createdBy\",\r\n \"modified\",\r\n \"modifiedBy\",\r\n \"status\",\r\n \"fileActions\"\r\n ];\r\n\r\n displayedInspectionColumns: string[] = [\r\n \"inspectionNumber\",\r\n \"inspectionDate\",\r\n \"inspectionBy\",\r\n \"createdBy\",\r\n \"modifiedBy\",\r\n \"status\",\r\n \"actions\"\r\n ];\r\n\r\n dataSource = new MatTableDataSource([]);\r\n dataSourceInspections = new MatTableDataSource([]);\r\n indexInternalWorks: number;\r\n internalWorks: string[] = [];\r\n taskResponse: TaskModel[];\r\n jobsForm: UntypedFormGroup;\r\n assigned_to: string;\r\n taskStatusSelect = [];\r\n taskTypeSelect = [];\r\n taskCategorySelect = [];\r\n assignedToSelect = [];\r\n jobStatusSelect: any = [];\r\n sectorSelect: any = [];\r\n contactSelect: any = [];\r\n countrySelect: any[] = [];\r\n territoriesSelect: any[] = [];\r\n internalProperties = [];\r\n internalProjects = [];\r\n projectByJob: ProjectResponse;\r\n propertiesResponse: any[] = [];\r\n client: string;\r\n isButtonDisabled = false;\r\n isUploadFile = false;\r\n isInsepctions = false;\r\n routerUrl: string;\r\n taskStatusList: any = [];\r\n taskCategoryList: any = [];\r\n taskTypeList: any = [];\r\n taskCodesList: any = [];\r\n contactRecords: InternalContactModel[];\r\n idClient: number;\r\n documentTypes: any[] = [];\r\n documents: ProjectFileModel[] = [];\r\n documentsUploaded: number;\r\n contactIds: number[] = [];\r\n collaborations: CollaborationModel[] = [];\r\n userType: string = sessionStorage.getItem(\"tipo\");\r\n inspections: InspectionModel[] = [];\r\n inspectionStatus: InspectionStatusModel[] = [];\r\n\r\n constructor(\r\n private readonly _Activatedroute: ActivatedRoute,\r\n private readonly _InternalWorksServices: InternalWorksService,\r\n private readonly internalTasksService: InternalTasksService,\r\n private readonly internalContactService: InternalContactsService,\r\n private readonly _ProjectsService: ProjectsService,\r\n private readonly internalPropertiesService: InternalPropertiesService,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly dialog: MatDialog,\r\n private readonly authService: AuthService,\r\n private readonly router: Router,\r\n private readonly location: Location\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.manageMasterLists();\r\n this.getUserProjects();\r\n this.getFilesUploaded();\r\n this.getParameteresURL();\r\n loadSideBarConfiguration(\"btnMenuInternalDetails\");\r\n this.buildJobForm();\r\n this.getDocumentsType();\r\n this.getCollaborations();\r\n this.internalProperties = JSON.parse(\r\n sessionStorage.getItem(\"internalProperties\")\r\n );\r\n this.router.events.subscribe((event) => {\r\n this.routerUrl = event[\"url\"];\r\n if (this.routerUrl === \"/\") {\r\n this.routerUrl = \"/home/jobs\";\r\n }\r\n });\r\n }\r\n\r\n manageMasterLists() {\r\n\r\n this.spinner.show();\r\n const taskCategories$ = this.internalTasksService.getTaskCategory();\r\n const taskTypes$ = this.internalTasksService.getTaskType();\r\n const taskCodes$ = this.internalTasksService.getTaskCodes();\r\n const taskStatus$ = this.internalTasksService.getTaskStatus();\r\n const jobStatus$ = this._InternalWorksServices.getStatusJobs();\r\n const propertyType$ = this.internalPropertiesService.getPropertiesType();\r\n const internalContacts$ = this._InternalWorksServices.getInternalContacts();\r\n const countries$ = this._InternalWorksServices.getCountries();\r\n const territories$ = this._InternalWorksServices.getTerritories();\r\n const inspectionStatus$ = this._InternalWorksServices.getInspectionStatus();\r\n\r\n forkJoin(\r\n [\r\n taskCategories$,\r\n taskTypes$,\r\n taskCodes$,\r\n taskStatus$,\r\n jobStatus$,\r\n propertyType$,\r\n internalContacts$,\r\n countries$,\r\n territories$,\r\n inspectionStatus$])\r\n .subscribe((\r\n [\r\n taskCategories,\r\n taskTypes,\r\n taskCodes,\r\n taskStatus,\r\n jobStatus,\r\n propertyTypes,\r\n internalContacts,\r\n countries,\r\n territories,\r\n inspectionStatus\r\n ]) => {\r\n this.taskCategoryList = taskCategories;\r\n this.taskTypeList = taskTypes;\r\n this.taskCodesList = taskCodes;\r\n this.taskStatusList = taskStatus;\r\n this.jobStatusSelect = jobStatus;\r\n this.sectorSelect = propertyTypes;\r\n this.contactSelect = internalContacts;\r\n this.countrySelect = countries;\r\n this.territoriesSelect = territories;\r\n this.inspectionStatus = inspectionStatus;\r\n this.getInspections();\r\n }, () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n getUserProjects() {\r\n this.spinner.show();\r\n this._ProjectsService.getProjects().subscribe(\r\n (resp: ProjectResponse[]) => {\r\n sessionStorage.setItem(\"internalProjects\", JSON.stringify(resp));\r\n this.internalProjects = resp;\r\n this.getClient();\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se presento un problema obteniendo los proyectos\",\r\n \"Proyectos\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n openInternalContacModal(): void {\r\n const dialogRef = this.dialog.open(ManageInternalContactDialogComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n width: \"1500px\",\r\n height: \"500pt\",\r\n data: {\r\n action: \"jobs\",\r\n idCompany: this.internalWorks[this.indexInternalWorks][\"iD_Account\"]\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n this.getCompanyxContacts(this.idClient);\r\n }\r\n });\r\n }\r\n\r\n applyInspectionFilter(event: Event) {\r\n const inspectionsFiltered = [];\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n\r\n this.inspections.forEach((element) => {\r\n const result = searchJson(element, filterValue);\r\n if (Object.keys(result).length > 0) {\r\n inspectionsFiltered.push(result);\r\n }\r\n });\r\n\r\n this.dataSourceInspections.data = inspectionsFiltered;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const documentsFiltered = [];\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n\r\n this.documents.forEach((element) => {\r\n const result = searchJson(element, filterValue);\r\n if (Object.keys(result).length > 0) {\r\n documentsFiltered.push(result);\r\n }\r\n });\r\n\r\n this.dataSourceConfiguration(documentsFiltered);\r\n }\r\n\r\n getFilesUploaded(): void {\r\n this._ProjectsService.currentFilesUploaded.subscribe((files) => {\r\n this.documentsUploaded = files;\r\n });\r\n }\r\n\r\n getIcon(document: ProjectFileModel): string {\r\n const extension = document.documentName.substring(document.documentName.lastIndexOf('.') + 1);\r\n return getExtensionIcon(extension);\r\n }\r\n\r\n getDocumentTypeName(id: number) {\r\n return this.documentTypes.find((x) => x.id === id)?.documentType;\r\n }\r\n\r\n getDocumentsType() {\r\n this._ProjectsService\r\n .getDocumentsTypeBlob()\r\n .pipe(\r\n map((response: any[]) => response.filter((type) => type.sourceTable === \"Jobs\")),\r\n )\r\n .subscribe((types: any) => {\r\n this.documentTypes = types\r\n });\r\n }\r\n\r\n manageDocument(document: ProjectFileModel, action): void {\r\n const dialogRef = this.dialog.open(UpdateDocumentDialogComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n width: \"700px\",\r\n data: {\r\n documentTypes: this.documentTypes,\r\n document: document,\r\n action: action\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n setTimeout(() => {\r\n this.getDocumentLocationByItem('Active');\r\n }, 2000)\r\n }\r\n });\r\n }\r\n\r\n setStatusDocument(document: ProjectFileModel, status: boolean): void {\r\n this.spinner.show();\r\n const data = {\r\n ...document,\r\n status: status\r\n }\r\n this._ProjectsService.setStatusDocument(data).subscribe({\r\n next: (response: any) => {\r\n const documentStatus = status ? 'Inactive' : 'Active';\r\n this.getDocumentLocationByItem(documentStatus);\r\n this.toastr.success(\"Document updated successfully\", \"Success\");\r\n },\r\n error: () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n });\r\n }\r\n\r\n viewDocument(documentUrl: string): void {\r\n if (documentUrl.includes(\".pdf\")) {\r\n window.open(documentUrl, \"_blank\");\r\n } else {\r\n window.open(`https://view.officeapps.live.com/op/view.aspx?src=${documentUrl}`, \"_blank\");\r\n }\r\n }\r\n\r\n downloadDocument(documentName: string): void {\r\n this._ProjectsService.downloadDocument(documentName).subscribe({\r\n next: (response: any) => {\r\n const linkSource = `data:image/jpg;base64,${response}`;\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = documentName;\r\n\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n },\r\n error: () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n });\r\n }\r\n\r\n groupByDocumentType(status: boolean): void {\r\n this.groupByColumns = status ? ['documentType'] : [];\r\n this.dataSource.data = this.addGroups(this.documents, this.groupByColumns);\r\n this.dataSource.filter = performance.now().toString();\r\n }\r\n\r\n openUploadFileProject(): void {\r\n const dialogRef = this.dialog.open(UploadFilesComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n width: \"1500px\",\r\n data: {\r\n documentTypes: this.documentTypes,\r\n id: this.internalWorks[this.indexInternalWorks][\"id\"],\r\n regarding: 'Jobs',\r\n idFolder: this.internalWorks[this.indexInternalWorks][\"job_Number\"],\r\n documents: this.documents\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n setTimeout(() => {\r\n this.getDocumentLocationByItem('Active');\r\n }, 2000)\r\n }\r\n });\r\n }\r\n\r\n tabChanged(event) {\r\n if (event.index > 0) {\r\n this.isUploadFile = event.index === 4;\r\n this.isInsepctions = event.index === 1;\r\n this.isButtonDisabled = true;\r\n } else {\r\n this.isButtonDisabled = false;\r\n this.isUploadFile = false;\r\n this.isInsepctions = false;\r\n }\r\n }\r\n\r\n getTaskStatusName(id: number) {\r\n return this.taskStatusList.find((status) => status.id === id)?.name_Status;\r\n }\r\n\r\n getTaskTypeName(id: number) {\r\n return this.taskTypeList.find((type) => type.id === id)?.name_Option;\r\n }\r\n\r\n getTaskCategoryName(id: number) {\r\n return this.taskCategoryList.find((category) => category.id === id)\r\n ?.name_Category;\r\n }\r\n\r\n validateForm(): Promise {\r\n if (this.jobsForm.dirty) {\r\n sessionStorage.setItem(\"jobDirty\", \"true\");\r\n const dialogRef = this.dialog.open(ConfirmDialogNewVersionComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title: \"Are you sure to quit without saving?\",\r\n textSaveButton: \"Save changes\",\r\n textCloseButton: \"Exit without saving\",\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n sessionStorage.setItem(\"jobDirty\", \"false\");\r\n this.saveFormJob();\r\n this.jobsForm.reset();\r\n this.location.back();\r\n } else {\r\n sessionStorage.setItem(\"jobDirty\", \"false\");\r\n this.jobsForm.reset();\r\n this.location.back();\r\n }\r\n });\r\n return Promise.resolve(true);\r\n } else {\r\n return Promise.resolve(false);\r\n }\r\n }\r\n\r\n openConfirmUpdateJobDialog(\r\n textSaveButton: string,\r\n textCloseButton: string,\r\n title: string,\r\n action: string\r\n ): void {\r\n const dialogRef = this.dialog.open(ConfirmDialogNewVersionComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title,\r\n textSaveButton,\r\n textCloseButton,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n if (action === \"close\" || action === \"cancel\") {\r\n this.saveFormJob();\r\n this.jobsForm.reset();\r\n this.router.navigate([\"/home/jobs\"]);\r\n } else {\r\n this.jobsForm.markAsPristine();\r\n this.saveFormJob();\r\n }\r\n } else {\r\n if (action === \"cancel\") {\r\n this.jobsForm.reset();\r\n this.router.navigate([\"/home/jobs\"]);\r\n }\r\n }\r\n });\r\n }\r\n\r\n getClient() {\r\n this.projectByJob = this.internalProjects.find(\r\n (project) =>\r\n this.internalWorks[this.indexInternalWorks][\"project_Number\"] ===\r\n project.project_Number\r\n );\r\n this.client = this.internalProjects?.find(\r\n (project) =>\r\n this.internalWorks[this.indexInternalWorks][\"project_Number\"] ===\r\n project.project_Number\r\n )?.client;\r\n this.idClient = this.internalProjects.find(\r\n (project) =>\r\n project.project_Number ===\r\n this.internalWorks[this.indexInternalWorks][\"project_Number\"]\r\n ).id_Client;\r\n this.getCompanyxContacts(this.idClient);\r\n }\r\n\r\n getUniqueValuesOnchangeSelect() {\r\n this.taskTypeSelect = this.taskResponse\r\n .map((property) => property.task_Type)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.assignedToSelect = this.taskResponse\r\n .map((account) => account.assigned_to)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.taskStatusSelect = this.taskResponse\r\n .map((task) => task.task_Status)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.taskCategorySelect = this.taskResponse\r\n .map((category) => category.task_Category)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n }\r\n\r\n getParameteresURL() {\r\n this._Activatedroute.paramMap.subscribe((params) => {\r\n this.getWorks(params.get(\"id\"));\r\n this.getTasks();\r\n });\r\n }\r\n\r\n buildJobForm() {\r\n this.jobsForm = this.formBuilder.group({\r\n id: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"id\"] : null],\r\n job_Number: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"job_Number\"] : null],\r\n project_Number: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"project_Number\"] : null],\r\n property_Number: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"property_Number\"] : null],\r\n job_type: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"job_type\"] : null],\r\n country: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"country\"] : null],\r\n business_Unit: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"business_Unit\"] : null],\r\n sector: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"sector\"] : null],\r\n job_Manager: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"job_Manager\"] : null],\r\n iD_Job_Manager: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"iD_Job_Manager\"] : null],\r\n job_Comments: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"job_Comments\"] : null],\r\n external_Fees: [Number(this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"external_Fees\"] : null)],\r\n internal_fees: [Number(this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"internal_fees\"] : null)],\r\n due_Date: [new Date(this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"due_Date\"] : null)],\r\n created: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"created\"] : null],\r\n address: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"address\"] : null],\r\n currency: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"currency\"] : null],\r\n equivalent_USD: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"equivalent_USD\"] : null],\r\n account: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"account\"] : null],\r\n account_Officer: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"account_Officer\"] : null],\r\n phone_Account_Officer: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"phone_Account_Officer\"] : null],\r\n email_Account_Officer: [ this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"email_Account_Officer\"] : null],\r\n deliverable: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"deliverable\"] : null],\r\n property_Name: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"property_Name\"] : null],\r\n latitude: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"latitude\"] : null],\r\n longitude: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"longitude\"] : null],\r\n iD_Collaborating_Territory: [null],\r\n iD_Collaborator: [null],\r\n iD_Job_Status: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"iD_Job_Status\"] : null],\r\n percentage_of_Collaboration: [null],\r\n Id_property_Contact: [this.internalWorks[this.indexInternalWorks][\"id_Property_Contact\"]],\r\n Id_Inspection_Contact: [this.internalWorks[this.indexInternalWorks][\"id_Inspection_Contact\"]],\r\n Valuation_Scenarios: [this.internalWorks[this.indexInternalWorks][\"valuation_Scenarios\"]],\r\n Interest_Valued: [this.internalWorks[this.indexInternalWorks][\"interest_Valued\"]],\r\n Type_of_Value: [this.internalWorks[this.indexInternalWorks][\"type_of_Value\"]],\r\n Inspection_Required: [this.internalWorks[this.indexInternalWorks][\"inspection_Required\"]],\r\n Days_to_Deliver: [this.internalWorks[this.indexInternalWorks][\"days_to_Deliver\"]],\r\n id_Property_Type: [this.internalWorks[this.indexInternalWorks] ? this.internalWorks[this.indexInternalWorks][\"id_Property_Type\"] : null, Validators.required],\r\n });\r\n this.jobsForm.markAllAsTouched();\r\n }\r\n\r\n getWorks(jobNumber: string) {\r\n this.internalWorks = JSON.parse(sessionStorage.getItem(\"internalJobs\"));\r\n const indexJob = this.internalWorks.findIndex(\r\n (job) => job[\"job_Number\"] === jobNumber\r\n );\r\n this.indexInternalWorks = Number(indexJob);\r\n this.getDocumentLocationByItem('Active');\r\n }\r\n\r\n getTasks() {\r\n this.spinner.show();\r\n this._InternalWorksServices\r\n .getTasks(\r\n this.internalWorks[this.indexInternalWorks]\r\n ? this.internalWorks[this.indexInternalWorks][\"job_Number\"]\r\n : null\r\n )\r\n .subscribe(\r\n (response: any) => {\r\n this.taskResponse = response;\r\n sessionStorage.setItem(\"tasksByJobNumber\", JSON.stringify(response));\r\n this.getUniqueValuesOnchangeSelect();\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se ha presentado un error consultando las tareas\",\r\n \"Tasks\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n\r\n saveFormJob() {\r\n this.spinner.show();\r\n this.jobsForm.get(\"iD_Job_Manager\").setValue(this.getInternalContactId(this.jobsForm.get(\"job_Manager\").value));\r\n this._InternalWorksServices.updateJobs(this.jobsForm.value).subscribe(\r\n () => {\r\n this.toastr.success(\"Se ha editado exitosamente el job\", \"Jobs\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.getJobsRol();\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se ha presentado un error al editar el job\",\r\n \"Jobs\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n getJobsRol() {\r\n this._InternalWorksServices.getJobsRol().subscribe(\r\n (resp: InternalWorksResponse[]) => {\r\n sessionStorage.setItem(\"internalJobs\", JSON.stringify(resp));\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se han presentando inconvenientes al obtener los datos de los jobs\",\r\n \"Obteniendo datos\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n openEditTaskDialog(task?: TaskModel, action?: string) {\r\n const dialogRef = this.dialog.open(EditTaskDialogComponent, {\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n task,\r\n taskStatus: this.taskStatusList,\r\n taskCategory: this.taskCategoryList,\r\n taskType: this.taskTypeList,\r\n taskCodes: this.taskCodesList,\r\n action: action,\r\n jobNumber: this.internalWorks[this.indexInternalWorks][\"job_Number\"],\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.getJobsRol();\r\n }\r\n });\r\n }\r\n\r\n openInspectionDialog(inspection?: InspectionModel, action?: string) {\r\n const dialogRef = this.dialog.open(InspectionDialogComponent, {\r\n hasBackdrop: true,\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n inspection,\r\n internalContacts: this.contactSelect,\r\n jobId: this.internalWorks[this.indexInternalWorks][\"id\"],\r\n action: action,\r\n inspectionConsecutive: this.inspections.length + 1,\r\n inspectionStatus: this.inspectionStatus\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.getInspections();\r\n });\r\n }\r\n\r\n openCollaborationDialog(collaboration?: CollaborationModel, action?: string) {\r\n const dialogRef = this.dialog.open(CollaborationDialogComponent, {\r\n hasBackdrop: true,\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n collaboration,\r\n territories: this.territoriesSelect,\r\n collaborators: this.contactSelect,\r\n jobId: this.internalWorks[this.indexInternalWorks][\"id\"],\r\n action: action\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.getCollaborations();\r\n });\r\n }\r\n\r\n getIndexProperty(task: TaskModel, propertyNumber?: string) {\r\n const propertyNumberToSeach = task ? task.property_Number : propertyNumber;\r\n return this.internalProperties.findIndex(\r\n (x) => x.property_Number === propertyNumberToSeach\r\n );\r\n }\r\n\r\n getPropertyName(task: TaskModel) {\r\n return this.internalProperties?.find(\r\n (x) => x.property_Number === task.property_Number\r\n )?.identifier;\r\n }\r\n\r\n getTerritoryName(id: number) {\r\n return this.territoriesSelect.find((x) => x.id === id)?.name_Territory;\r\n }\r\n\r\n getInternalContactName(id: number) {\r\n return this.contactSelect.find((x) => x.id === id)?.full_Name;\r\n }\r\n\r\n getInspectionStatusName(id: number) {\r\n return this.inspectionStatus.find((status) => status.id === id)?.nameStatus;\r\n }\r\n\r\n getInspectorsName(inspectionId: number): string {\r\n return this.inspections?.filter(inspection => inspection.idInspection === inspectionId)\r\n .map(inspection => inspection.inspectedBy)\r\n .map(inspector => inspector.map(inspector => this.getInternalContactName(inspector)))\r\n .join(', ') || '';\r\n }\r\n\r\n validateCollaborator(collaborator: number) {\r\n return collaborator?.toString() === sessionStorage.getItem(\"userID\");\r\n }\r\n\r\n getInspectionsByStatus(status: string) {\r\n if ( status === 'All') {\r\n return this.dataSourceInspections.data = this.inspections;\r\n } else {\r\n return this.dataSourceInspections.data = this.inspections.filter(inspection => inspection.status === status);\r\n }\r\n }\r\n\r\n getDocumentLocationByItem(status: string): void {\r\n this.spinner.show();\r\n this._ProjectsService.getDocumentLocationByItem(this.internalWorks[this.indexInternalWorks][\"id\"], status).subscribe(\r\n {\r\n next: (response: ProjectFileModel[]) => {\r\n this.documents = response;\r\n this.dataSourceConfiguration(response);\r\n this.spinner.hide();\r\n },\r\n error: () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n }\r\n );\r\n }\r\n\r\n private getInternalContactId(fullName: string) {\r\n return this.contactSelect?.find((x) => x.full_Name === fullName)?.id;\r\n }\r\n\r\n private getCompanyxContacts(idClient: number) {\r\n this.spinner.show();\r\n this.internalContactService.getCompanyxContacts(idClient).subscribe(\r\n (contacts: AccountRelationalontactModel[]) => {\r\n this.contactIds = contacts.map(\r\n (contact) => contact.idContactInformationRecord\r\n );\r\n this.getRecordsIds(this.contactIds);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\r\n `Error! Does not exist an ID Client in ${\r\n this.internalWorks[this.indexInternalWorks][\"project_Number\"]\r\n }`,\r\n \"Error\"\r\n );\r\n }\r\n );\r\n }\r\n\r\n private getRecordsIds(contacts: number[]) {\r\n this.internalContactService.getRecordsIds(contacts).subscribe(\r\n (contactRecords: InternalContactModel[]) => {\r\n this.spinner.hide();\r\n this.contactRecords = contactRecords;\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private dataSourceConfiguration(response: ProjectFileModel[]) {\r\n this.dataSource.data = this.addGroups(response, this.groupByColumns);\r\n this.dataSource.filterPredicate = this.customFilterPredicate.bind(this);\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n private addGroups(data: any[], groupByColumns: string[]): any[] {\r\n var rootGroup = new Group();\r\n return this.getSublevel(data, 0, groupByColumns, rootGroup);\r\n }\r\n\r\n private getSublevel(data: any[], level: number, groupByColumns: string[], parent: Group): any[] {\r\n // Recursive function, stop when there are no more levels.\r\n if (level >= groupByColumns.length)\r\n return data;\r\n\r\n var groups = this.uniqueBy(\r\n data.map(\r\n row => {\r\n var result = new Group();\r\n result.level = level + 1;\r\n result.parent = parent;\r\n for (var i = 0; i <= level; i++)\r\n result[groupByColumns[i]] = row[groupByColumns[i]];\r\n return result;\r\n }\r\n ),\r\n JSON.stringify);\r\n\r\n const currentColumn = groupByColumns[level];\r\n\r\n var subGroups = [];\r\n groups.forEach(group => {\r\n let rowsInGroup = data.filter(row => group[currentColumn] === row[currentColumn])\r\n let subGroup = this.getSublevel(rowsInGroup, level + 1, groupByColumns, group);\r\n subGroup.unshift(group);\r\n subGroups = subGroups.concat(subGroup);\r\n })\r\n return subGroups;\r\n }\r\n\r\n private uniqueBy(a, key) {\r\n var seen = {};\r\n return a.filter(function (item) {\r\n var k = key(item);\r\n return seen.hasOwnProperty(k) ? false : (seen[k] = true);\r\n })\r\n }\r\n\r\n private customFilterPredicate(data: ProjectFileModel | Group): boolean {\r\n return (data instanceof Group) ? data.visible : this.getDataRowVisible(data);\r\n }\r\n\r\n private getDataRowVisible(data: ProjectFileModel): boolean {\r\n const groupRows = this.dataSource.data.filter(\r\n row => {\r\n if (!(row instanceof Group)) return false;\r\n\r\n let match = true;\r\n this.groupByColumns.forEach(\r\n column => {\r\n if (!row[column] || !data[column] || row[column] !== data[column]) match = false;\r\n }\r\n );\r\n return match;\r\n }\r\n );\r\n\r\n if (groupRows.length === 0) return true;\r\n if (groupRows.length > 1) throw \"Data row is in more than one group!\";\r\n const parent = groupRows[0];\r\n\r\n return parent.visible && parent.expanded;\r\n }\r\n\r\n groupHeaderClick(row) {\r\n row.expanded = !row.expanded\r\n this.dataSource.filter = performance.now().toString();\r\n }\r\n\r\n isGroup(index, item): boolean {\r\n return item.level;\r\n }\r\n\r\n private getCollaborations() {\r\n this.spinner.show();\r\n this._InternalWorksServices.getCollaborations(this.internalWorks[this.indexInternalWorks][\"id\"])\r\n .pipe(\r\n map((collaboration: CollaborationModel[]) => {\r\n collaboration.forEach((collaboration: CollaborationModel) => {\r\n collaboration.terrirotyName = this.getTerritoryName(collaboration.territoryCollaborating);\r\n collaboration.collaboratorName = this.getInternalContactName(collaboration.collaborator);\r\n return collaboration;\r\n });\r\n return collaboration;\r\n })\r\n )\r\n .subscribe(\r\n (collaborations: CollaborationModel[]) => {\r\n this.collaborations = collaborations;\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getInspections() {\r\n this.spinner.show();\r\n this._InternalWorksServices.getInspectionsByJob(this.internalWorks[this.indexInternalWorks][\"id\"])\r\n .subscribe(\r\n (inspections: InspectionModel[]) => {\r\n this.inspections = inspections;\r\n this.dataSourceInspections.data = inspections;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, HostListener, Input, OnInit, Output } from \"@angular/core\";\r\nimport { InternalWorksResponse } from \"../../../../../models/works/internal.works.response.model\";\r\nimport * as moment from \"moment\";\r\nimport { InternalWorksService } from \"src/app/services/admin-services/works/internal-works.service\";\r\n\r\n@Component({\r\n selector: \"app-internal-table\",\r\n templateUrl: \"./internal-table.component.html\",\r\n})\r\nexport class InternalTableComponent implements OnInit {\r\n filterTable: string;\r\n jobStatusSelect: any[] = [];\r\n contactSelect: any[] = [];\r\n isScreenSmall: boolean = false;\r\n\r\n private mediaQuery: MediaQueryList = window.matchMedia('(max-width: 768px)');\r\n\r\n @Output() updateInternalFilterJobs = new EventEmitter();\r\n @Input() internalJobs: InternalWorksResponse[];\r\n @Input() internalProperties: any[];\r\n @Input() set filter(filter: string) {\r\n this.filterByWord(filter);\r\n }\r\n\r\n constructor(\r\n private readonly _InternalWorksServices: InternalWorksService\r\n ) {\r\n this.checkMediaQuery();\r\n }\r\n\r\n checkMediaQuery() {\r\n this.isScreenSmall = this.mediaQuery.matches;\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event: Event) {\r\n this.checkMediaQuery();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getStatusJobs();\r\n this.getInternalContacts();\r\n }\r\n\r\n identify(index, job) {\r\n return job.id;\r\n }\r\n\r\n filterByWord(filter: string) {\r\n this.filterTable = filter;\r\n this.internalJobs = JSON.parse(sessionStorage.getItem(\"internalJobs\"));\r\n const internalJobsFiltered = this.filterByValue(this.internalJobs, filter);\r\n this.updateInternalFilterJobs.emit(internalJobsFiltered);\r\n }\r\n\r\n getStatusJobs() {\r\n this._InternalWorksServices\r\n .getStatusJobs()\r\n .subscribe((jobStatus: any[]) => (this.jobStatusSelect = jobStatus));\r\n }\r\n\r\n getStatusJobName(idStatusJob: number) {\r\n const statusJob = this.jobStatusSelect.find(\r\n (x) => x.id === idStatusJob\r\n )?.name_Status;\r\n return statusJob;\r\n }\r\n\r\n filterByValue(array, text) {\r\n return array?.filter((o) =>\r\n Object.keys(o).some((k: string) =>\r\n String(o[k])?.toLowerCase().includes(text?.toLowerCase())\r\n )\r\n );\r\n }\r\n\r\n validateDueDateState(date: any) {\r\n const today = moment(new Date());\r\n const dueDate = moment(date);\r\n const differenceDays = dueDate.diff(today, \"days\");\r\n\r\n if (differenceDays < -5) {\r\n return \"text-red-600\";\r\n } else if (differenceDays >= -5 && differenceDays <= 0) {\r\n return \"text-orange-500\";\r\n } else {\r\n return \"text-black\";\r\n }\r\n }\r\n\r\n getPropertyId(job: InternalWorksResponse) {\r\n return this.internalProperties?.findIndex(\r\n (x) => x.property_Number === job.property_Number\r\n );\r\n }\r\n\r\n getPropertyValues(job: InternalWorksResponse) {\r\n return this.internalProperties?.find(\r\n (property) => property.property_Number === job.property_Number\r\n );\r\n }\r\n\r\n validateCollaborator(collaborator: number) {\r\n return collaborator?.toString() === sessionStorage.getItem(\"userID\");\r\n }\r\n\r\n private getInternalContacts() {\r\n this._InternalWorksServices\r\n .getInternalContacts()\r\n .subscribe((contacts: any[]) => (this.contactSelect = contacts));\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AuthService } from 'src/app/services/auth/auth.service';\r\nimport { cleanNullAttributes, findByMatchingProperties, loadSideBarConfiguration } from \"../../../utils/utils\";\r\nimport { UntypedFormBuilder, UntypedFormGroup } from \"@angular/forms\";\r\nimport { InternalWorksResponse } from \"../../../models/works/internal.works.response.model\";\r\nimport { DatepickerOptions } from \"ng2-datepicker\";\r\nimport { getYear } from \"date-fns\";\r\nimport locale from \"date-fns/locale/en-US\";\r\nimport * as moment from \"moment/moment\";\r\nimport { InternalWorksService } from \"../../../services/admin-services/works/internal-works.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { ProjectResponse } from \"../../../models/projects/project.response.model\";\r\nimport { ProjectsService } from \"../../../services/admin-services/projects/projects.service\";\r\nimport { WorksService } from \"../../../services/admin-services/works/works.service\";\r\n\r\n@Component({\r\n selector: 'app-works-table',\r\n templateUrl: './works-table.component.html'\r\n})\r\nexport class WorksTableComponent implements OnInit {\r\n @ViewChild(\"startDate\") resetStartDate: ElementRef;\r\n @ViewChild(\"endDate\") resetEndDate: ElementRef;\r\n\r\n internalJobsResponse: InternalWorksResponse[] = [];\r\n filterInternalJobs: InternalWorksResponse[] = [];\r\n filtersForm: UntypedFormGroup;\r\n jobs: string;\r\n jobStatusSelect: any[] = [];\r\n country: string;\r\n countrySelect = [];\r\n city: string;\r\n citySelect = [];\r\n\r\n startDateValue = null;\r\n endDateValue = null;\r\n\r\n optionsStartDate: DatepickerOptions = {\r\n minYear: getYear(new Date()) - 30, // minimum available and selectable year\r\n maxYear: getYear(new Date()) + 30, // maximum available and selectable year\r\n placeholder: \"Start Date\", // placeholder in case date model is null | undefined, example: 'Please pick a date'\r\n format: \"LLLL do yyyy\", // date format to display in input\r\n formatTitle: \"LLLL yyyy\",\r\n formatDays: \"EEEEE\",\r\n firstCalendarDay: 1, // 0 - Sunday, 1 - Monday\r\n locale, // date-fns locale\r\n position: \"bottom\",\r\n inputClass:\r\n \"border-0 px-3 py-3 placeholder-blueGray-300 text-blueGray-600 bg-white rounded text-sm shadow focus:outline-none focus:ring w-full ease-linear transition-all duration-150\", // custom input CSS class to be applied\r\n calendarClass: \"datepicker-default\", // custom datepicker calendar CSS class to be applied\r\n scrollBarColor: \"#dfe3e9\", // in case you customize you theme, here you define scroll bar color\r\n };\r\n\r\n optionsEndDate: DatepickerOptions = {\r\n minYear: getYear(new Date()) - 30, // minimum available and selectable year\r\n maxYear: getYear(new Date()) + 30, // maximum available and selectable year\r\n placeholder: \"End Date\", // placeholder in case date model is null | undefined, example: 'Please pick a date'\r\n format: \"LLLL do yyyy\", // date format to display in input\r\n formatTitle: \"LLLL yyyy\",\r\n formatDays: \"EEEEE\",\r\n firstCalendarDay: 1, // 0 - Sunday, 1 - Monday\r\n locale, // date-fns locale\r\n position: \"bottom\",\r\n inputClass:\r\n \"border-0 px-3 py-3 placeholder-blueGray-300 text-blueGray-600 bg-white rounded text-sm shadow focus:outline-none focus:ring w-full ease-linear transition-all duration-150\", // custom input CSS class to be applied\r\n calendarClass: \"datepicker-default\", // custom datepicker calendar CSS class to be applied\r\n scrollBarColor: \"#dfe3e9\", // in case you customize you theme, here you define scroll bar color\r\n };\r\n\r\n get startDate() {\r\n return moment(this.startDateValue).format(\"YYYY-MM-DD\");\r\n }\r\n\r\n get endDate() {\r\n return moment(this.endDateValue).format(\"YYYY-MM-DD\");\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n\r\n constructor(\r\n private readonly internalWorksServices: InternalWorksService,\r\n private readonly jobService: WorksService,\r\n private readonly projectService: ProjectsService,\r\n private readonly toastr: ToastrService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly authService: AuthService,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getStatusJobs();\r\n this.getUserProjects();\r\n this.buildFiltersForms();\r\n loadSideBarConfiguration(\"btnMenuJobs\");\r\n }\r\n\r\n filterJobs() {\r\n const startDate = this.startDate;\r\n const endDate = this.endDate;\r\n\r\n this.filterInternalJobs = JSON.parse(\r\n sessionStorage.getItem(\"internalJobs\")\r\n ).map((job) => ({\r\n ...job,\r\n created: job.created.split(\"T\")[0],\r\n }));\r\n\r\n if (this.startDateValue && this.endDateValue) {\r\n this.filterInternalJobs = this.filterInternalJobs.filter(\r\n (job: InternalWorksResponse) =>\r\n job.created >= startDate && job.created <= endDate\r\n );\r\n }\r\n\r\n const filtersForm = {\r\n ...this.filtersForm.value,\r\n };\r\n\r\n const filters = cleanNullAttributes(filtersForm);\r\n this.internalJobsResponse = findByMatchingProperties(\r\n this.filterInternalJobs,\r\n filters\r\n );\r\n }\r\n\r\n clearFilters() {\r\n this.resetStartDate[\"displayValue\"] = \"\";\r\n this.resetEndDate[\"displayValue\"] = \"\";\r\n this.startDateValue = undefined;\r\n this.endDateValue = undefined;\r\n this.filtersForm.patchValue({\r\n iD_Job_Status: undefined,\r\n country: undefined,\r\n city: undefined,\r\n });\r\n this.internalJobsResponse = JSON.parse(\r\n sessionStorage.getItem(\"internalJobs\")\r\n );\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n updateInternalFilterJobs(event) {\r\n this.internalJobsResponse = event;\r\n }\r\n\r\n private getUserProjects() {\r\n this.spinner.show();\r\n this.projectService.getProjects().subscribe(\r\n (resp: ProjectResponse[]) => {\r\n const projects = resp.map((project) => project.project_Number);\r\n this.getJobsByProjects(projects);\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se presento un problema obteniendo los proyectos\",\r\n \"Proyectos\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n private getJobsByProjects(projectNumbers: string[]) {\r\n this.jobService.getAllWorks(projectNumbers).subscribe(\r\n (resp: InternalWorksResponse[]) => {\r\n this.internalJobsResponse = resp\r\n .sort(\r\n (a, b) => Number(moment(a.due_Date)) - Number(moment(b.due_Date))\r\n )\r\n .reverse();\r\n sessionStorage.setItem(\"internalJobs\", JSON.stringify(resp));\r\n this.getUniqueValuesOnchangeSelect();\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se han presentando inconvenientes al obtener los datos de los jobs\",\r\n \"Obteniendo datos\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getUniqueValuesOnchangeSelect() {\r\n this.countrySelect = this.internalJobsResponse\r\n .map((job: InternalWorksResponse) => job.country)\r\n .filter(\r\n (value: string, index: number, self: string[]) =>\r\n self.indexOf(value) === index\r\n );\r\n\r\n this.citySelect = this.internalJobsResponse\r\n .map((job: InternalWorksResponse) => job.city)\r\n .filter(\r\n (value: string, index: number, self: string[]) =>\r\n self.indexOf(value) === index\r\n );\r\n }\r\n\r\n private getStatusJobs() {\r\n this.internalWorksServices\r\n .getStatusJobs()\r\n .subscribe((jobStatus: any[]) => (this.jobStatusSelect = jobStatus));\r\n }\r\n\r\n private buildFiltersForms() {\r\n this.filtersForm = this.formBuilder.group({\r\n iD_Job_Status: [[]],\r\n country: [null],\r\n city: [null],\r\n });\r\n }\r\n\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[click-stop-propagation]'\r\n})\r\nexport class ClickStopPropagationDirective {\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n public onClick(event: any): void\r\n {\r\n event.stopPropagation();\r\n }\r\n\r\n}","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from \"@angular/forms\";\r\n\r\n@Directive({\r\n selector: '[inputEmail]',\r\n providers: [{provide: NG_VALIDATORS, useExisting: InputEmailDirective, multi: true}]\r\n})\r\nexport class InputEmailDirective implements Validator {\r\n\r\n isEmailValid(email: string): boolean {\r\n const regexEmail = '^[\\\\w-\\\\.]+@([\\\\w-]+\\\\.)+[\\\\w-]{2,4}$';\r\n return new RegExp(regexEmail).test(email);\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n if (control.value) {\r\n const validEmail = this.isEmailValid(control.value);\r\n return !validEmail ? { email: { value: control.value } } : null;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n}","import { Directive, ElementRef, HostListener } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[inputNumber]\",\r\n})\r\nexport class InputNumberDirective {\r\n constructor(private el: ElementRef) {}\r\n\r\n regexNumber = \"[0-9.]\";\r\n @HostListener(\"keypress\", [\"$event\"]) onKeyPress(event: KeyboardEvent) {\r\n return new RegExp(this.regexNumber).test(event.key);\r\n }\r\n\r\n @HostListener(\"paste\", [\"$event\"]) blockPaste() {\r\n this.validateFields();\r\n }\r\n\r\n validateFields() {\r\n this.el.nativeElement.value = this.el.nativeElement.value\r\n .replace(/[^A-Za-z0-9À-ÖØ-öø-ÿ., ]+/g, \"\")\r\n .replace(/[ ]*$/g, \"\");\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef, ElementRef, HostListener, ComponentRef } from '@angular/core';\r\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { CustomTooltipComponent } from 'src/app/components/custom-tooltip/custom-tooltip.component';\r\n\r\n@Directive({\r\n selector: '[customToolTip]'\r\n})\r\nexport class ToolTipRendererDirective {\r\n\r\n @Input() showToolTip: boolean = true;\r\n @Input() contentTemplate: TemplateRef;\r\n\r\n private _overlayRef: OverlayRef;\r\n \r\n constructor(private _overlay: Overlay,\r\n private _overlayPositionBuilder: OverlayPositionBuilder,\r\n private _elementRef: ElementRef) { }\r\n\r\n ngOnInit() {\r\n\r\n if (!this.showToolTip) {\r\n return;\r\n }\r\n\r\n const positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 5,\r\n }]);\r\n\r\n this._overlayRef = this._overlay.create({ positionStrategy});\r\n\r\n }\r\n\r\n @HostListener('mouseenter')\r\n show() {\r\n\r\n if (this._overlayRef && !this._overlayRef.hasAttached()) {\r\n const tooltipRef: ComponentRef = this._overlayRef.attach(new ComponentPortal(CustomTooltipComponent));\r\n tooltipRef.instance.contentTemplate = this.contentTemplate;\r\n } \r\n }\r\n\r\n @HostListener('mouseleave')\r\n hide() {\r\n this.closeToolTip();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.closeToolTip();\r\n }\r\n\r\n private closeToolTip() {\r\n if (this._overlayRef) {\r\n this._overlayRef.detach();\r\n }\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n\r\n constructor(\r\n private readonly router: Router\r\n ) {}\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\r\n if (sessionStorage.getItem(\"email\")) {\r\n return true;\r\n } else {\r\n this.router.navigate(['/auth/login-logan']);\r\n return false;\r\n }\r\n }\r\n \r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'selectSearch'\r\n})\r\nexport class SelectSearchPipe implements PipeTransform {\r\n\r\n transform(items: any[], searchCriteria: string, key: string): any[] {\r\n if (!items || !items.length) { return items; }\r\n if (!searchCriteria || !searchCriteria.length) { return items; }\r\n return items.filter(item => {\r\n return item[key].toString().toLowerCase().indexOf(searchCriteria.toLowerCase()) > -1;\r\n });\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'truncateText'\r\n})\r\nexport class TruncateTextPipe implements PipeTransform {\r\n\r\n transform(text: string, length: number = 20, suffix: string = '...'): string {\r\n\r\n if (text?.length > length) {\r\n let truncated: string = text.substring(0, length).trim() + suffix;\r\n return truncated;\r\n }\r\n\r\n return text;\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { CanDeactivate, Router } from \"@angular/router\";\r\n\r\nexport interface CanComponentDeactivate {\r\n validateForm(): Promise;\r\n}\r\n\r\n@Injectable()\r\nexport class PreventChangeRouteGuard\r\n implements CanDeactivate\r\n{\r\n constructor(private readonly router: Router) {}\r\n\r\n canDeactivate(component: CanComponentDeactivate) {\r\n return component?.validateForm().then((resp) => {\r\n if (resp) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { LocalizationsService } from '../../services/localizations/localizations.service';\r\nimport { CountryResponse } from '../../models/localizations/country.reponse.model';\r\nimport { StateResponse } from '../../models/localizations/state.response.model';\r\nimport { CityResponse } from '../../models/localizations/city.response.model';\r\nimport { CompanyNameService } from '../../services/admin-services/company-name/company-name.service';\r\nimport { CompanyNameResponse } from '../../models/company-names/company-name.response.model';\r\nimport { ContactsService } from '../../services/admin-services/contacts/contacts.service';\r\nimport { ProjectsService } from \"src/app/services/admin-services/projects/projects.service\";\r\nimport { ProjectResponse } from \"src/app/models/projects/project.response.model\";\r\nimport { PropertiesService } from \"src/app/services/admin-services/properties/properties.service\";\r\nimport { PropertieResponse } from \"src/app/models/properties/properties.response.model\";\r\n\r\n@Component({\r\n selector: \"app-admin\",\r\n templateUrl: \"./admin.component.html\",\r\n})\r\nexport class AdminComponent implements OnInit {\r\n\r\n numberProjects: string[] = [];\r\n jobsTypes: string[] = [];\r\n\r\n constructor(\r\n private readonly localizations: LocalizationsService,\r\n private readonly companyName: CompanyNameService,\r\n private readonly contacts: ContactsService,\r\n private readonly projects: ProjectsService,\r\n private readonly properties: PropertiesService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadMasters();\r\n }\r\n\r\n loadMasters() {\r\n this.listCountries();\r\n this.listStates();\r\n this.listCities();\r\n this.listCompanyNames();\r\n this.listContacts();\r\n this.listProjects();\r\n }\r\n\r\n listCountries() {\r\n this.localizations.getCountries().subscribe( (resp:CountryResponse[]) => {\r\n this.localizations.setCountries(resp);\r\n }, (error) => {\r\n console.log(error);\r\n })\r\n };\r\n\r\n listStates() {\r\n this.localizations.getStates().subscribe( (resp:StateResponse[]) => {\r\n this.localizations.setStates(resp);\r\n }, (error) => {\r\n console.log(error);\r\n })\r\n };\r\n\r\n listCities() {\r\n this.localizations.getCities().subscribe( (resp:CityResponse[]) => {\r\n this.localizations.setCities(resp);\r\n }, (error) => {\r\n console.log(error);\r\n })\r\n };\r\n\r\n listCompanyNames() {\r\n this.companyName.getCompanyNames().subscribe( (resp:CompanyNameResponse[]) => {\r\n this.companyName.setCompanyNames(resp);\r\n }, (error) => {\r\n console.log(error);\r\n })\r\n }\r\n\r\n listContacts() {\r\n this.contacts.getContacts().subscribe( (resp: any[]) => {\r\n this.contacts.setContacts(resp);\r\n }, (error) => {\r\n console.log(error);\r\n })\r\n }\r\n\r\n listProjects() {\r\n this.projects.getProjects().subscribe( (resp: ProjectResponse[]) => {\r\n resp.forEach(project => {\r\n this.numberProjects.push(project.project_Number);\r\n });\r\n sessionStorage.setItem(\"numberProjects\", JSON.stringify(this.numberProjects));\r\n this.projects.setProjects(resp);\r\n this.listProperties();\r\n })\r\n }\r\n\r\n listProperties() {\r\n this.properties.getAllProperties().subscribe( (resp: PropertieResponse[]) => {\r\n sessionStorage.setItem(\"properties\", JSON.stringify(resp));\r\n sessionStorage.setItem(\"internalProperties\", JSON.stringify(resp));\r\n this.properties.setProperties(resp);\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"app-auth\",\n templateUrl: \"./auth.component.html\",\n})\nexport class AuthComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","export class Group {\r\n level = 0;\r\n parent: Group;\r\n expanded = true;\r\n totalCounts = 0;\r\n get visible(): boolean {\r\n return !this.parent || (this.parent.visible && this.parent.expanded);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { AccountModel } from \"src/app/models/accounts/account.model\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AccountsService {\r\n protected accounts = new BehaviorSubject(null);\r\n currentAccounts = this.accounts.asObservable();\r\n\r\n private headers = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Bearer ${sessionStorage.getItem(\"token\")}`,\r\n }),\r\n };\r\n\r\n constructor(public readonly http: HttpClient) {}\r\n\r\n getAccounts() {\r\n return this.http.get(environment.accounts.get, this.headers);\r\n }\r\n\r\n setAccounts(accounts: AccountModel[]) {\r\n this.accounts.next(accounts);\r\n }\r\n\r\n createAccount(data: any) {\r\n return this.http.post(environment.accounts.create, data, this.headers);\r\n }\r\n\r\n updateAccount(data: any) {\r\n return this.http.put(environment.accounts.update, data, this.headers);\r\n }\r\n\r\n getCompanyXproject(idCompany: number) {\r\n return this.http.get(environment.accounts.projectsXcompany, {\r\n params: {\r\n idCompany: idCompany.toString(),\r\n },\r\n headers: this.headers.headers,\r\n });\r\n }\r\n\r\n getProjectsCompany(projects: any) {\r\n return this.http.post(\r\n environment.accounts.projectsCompany,\r\n projects,\r\n this.headers\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { environment } from \"../../../../environments/environment\";\r\nimport { Observable } from \"rxjs\";\r\nimport { AdvancedSettingsCityModel } from \"../../../models/advanced-settings/city.model\";\r\nimport { AdvancedSettingsCountryModel } from \"../../../models/advanced-settings/country.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AdvancedSettingsService {\r\n private headers = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Bearer ${sessionStorage.getItem(\"token\")}`,\r\n }),\r\n };\r\n\r\n constructor(public readonly http: HttpClient) {}\r\n\r\n getContacts() {\r\n return this.http.get(\r\n environment.advancedSettings.contacts.get,\r\n this.headers\r\n );\r\n }\r\n\r\n createContact(data: any) {\r\n return this.http.post(\r\n environment.advancedSettings.contacts.create,\r\n data,\r\n this.headers\r\n );\r\n }\r\n\r\n updateContact(data: any) {\r\n return this.http.put(\r\n environment.advancedSettings.contacts.update,\r\n data,\r\n this.headers\r\n );\r\n }\r\n\r\n getRoles() {\r\n return this.http.get(environment.advancedSettings.roles.get, this.headers);\r\n }\r\n\r\n getAllRoles() {\r\n return this.http.get(\r\n environment.advancedSettings.roles.getAll,\r\n this.headers\r\n );\r\n }\r\n\r\n getRolesFeatures() {\r\n return this.http.get(\r\n environment.advancedSettings.features.get,\r\n this.headers\r\n );\r\n }\r\n\r\n getAllFeatures() {\r\n return this.http.get(\r\n environment.advancedSettings.features.getAll,\r\n this.headers\r\n );\r\n }\r\n\r\n createFeature(data: any) {\r\n return this.http.post(\r\n environment.advancedSettings.features.create,\r\n data,\r\n this.headers\r\n );\r\n }\r\n\r\n updateFeature(data: any) {\r\n return this.http.put(\r\n environment.advancedSettings.features.update,\r\n data,\r\n this.headers\r\n );\r\n }\r\n\r\n createRol(data: any) {\r\n return this.http.post(\r\n environment.advancedSettings.roles.create,\r\n data,\r\n this.headers\r\n );\r\n }\r\n\r\n updateRol(data: any) {\r\n return this.http.put(\r\n environment.advancedSettings.roles.update,\r\n data,\r\n this.headers\r\n );\r\n }\r\n\r\n getCities(): Observable {\r\n return this.http.get(\r\n environment.advancedSettings.dropdowns.city,\r\n this.headers\r\n );\r\n }\r\n\r\n getCountries(): Observable {\r\n return this.http.get(\r\n environment.advancedSettings.dropdowns.countries,\r\n this.headers\r\n );\r\n }\r\n\r\n getSubtypes() {\r\n return this.http.get(\r\n environment.advancedSettings.dropdowns.subtypes,\r\n this.headers\r\n );\r\n }\r\n\r\n getTypes() {\r\n return this.http.get(\r\n environment.advancedSettings.dropdowns.types,\r\n this.headers\r\n );\r\n }\r\n\r\n getUserInfoGraph(email: string) {\r\n return this.http.get(environment.masters.userInfoGraph, {\r\n params: { email },\r\n ...this.headers,\r\n });\r\n }\r\n\r\n sendEmail(data: any) {\r\n return this.http.post(\r\n environment.advancedSettings.contacts.sendEmail,\r\n data,\r\n this.headers\r\n );\r\n }\r\n\r\n getRulesJobs() {\r\n return this.http.get(environment.advancedSettings.rules.get, this.headers);\r\n }\r\n\r\n createRuleJob(data: any) {\r\n return this.http.post(\r\n environment.advancedSettings.rules.create,\r\n data,\r\n this.headers\r\n );\r\n }\r\n\r\n updateRuleJob(data: any) {\r\n return this.http.put(\r\n environment.advancedSettings.rules.update,\r\n data,\r\n this.headers\r\n );\r\n }\r\n\r\n getUsersTenant() {\r\n return this.http.get(environment.masters.userTenant, this.headers);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CompanyName } from 'src/app/models/company-names/company-name.model';\r\nimport { CompanyNameResponse } from 'src/app/models/company-names/company-name.response.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompanyNameService {\r\n\r\n protected companyNames = new BehaviorSubject(null);\r\n currentCompanyNames = this.companyNames.asObservable();\r\n\r\n private headers = { headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'Authorization': `Bearer ${sessionStorage.getItem('token')}`\r\n })};\r\n\r\n constructor(\r\n public readonly http: HttpClient\r\n ) { }\r\n\r\n getCompanyNames() {\r\n return this.http.get(`${environment.companyNames}?guidCompany=${sessionStorage.getItem(\"guidCompany\")}`, this.headers);\r\n }\r\n\r\n saveCompanyNames(companyNames: CompanyName[]) {\r\n return this.http.post(environment.saveCompanyName, companyNames, this.headers);\r\n }\r\n\r\n setCompanyNames(companyNames: CompanyNameResponse[]): void {\r\n this.companyNames.next(companyNames);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Contact } from 'src/app/models/contacts/contact.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContactsService {\r\n\r\n protected contacts = new BehaviorSubject(null);\r\n currentContacts = this.contacts.asObservable();\r\n\r\n private headers = { headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'Authorization': `Bearer ${sessionStorage.getItem('token')}`\r\n })};\r\n\r\n constructor(\r\n public readonly http: HttpClient\r\n ) { }\r\n\r\n saveContact(contact: Contact) {\r\n return this.http.post(environment.saveContact, contact, this.headers);\r\n }\r\n\r\n getContacts() {\r\n return this.http.get(`${environment.contacts}?guidCompany=${sessionStorage.getItem(\"guidCompany\")}`, this.headers);\r\n }\r\n\r\n getAllContacts() {\r\n return this.http.get(`${environment.contacts}`, this.headers);\r\n }\r\n\r\n setContacts(contacts: any[]): void {\r\n this.contacts.next(contacts);\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { InternalContactModel } from \"src/app/models/internal-contacts/internal-contact.model\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class InternalContactsService {\r\n protected internalContacts = new BehaviorSubject(\r\n null\r\n );\r\n currentInternalContacts = this.internalContacts.asObservable();\r\n\r\n private headers = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Bearer ${sessionStorage.getItem(\"token\")}`,\r\n }),\r\n };\r\n\r\n constructor(public readonly http: HttpClient) {}\r\n\r\n getInternalContacts() {\r\n return this.http.get(environment.internalContacts.get, this.headers);\r\n }\r\n\r\n setInternalContacts(internalContacts: InternalContactModel[]) {\r\n this.internalContacts.next(internalContacts);\r\n }\r\n\r\n createInternalContact(data: any) {\r\n return this.http.post(\r\n environment.internalContacts.create,\r\n data,\r\n this.headers\r\n );\r\n }\r\n\r\n updateInternalContact(data: any) {\r\n return this.http.put(\r\n environment.internalContacts.update,\r\n data,\r\n this.headers\r\n );\r\n }\r\n\r\n getRecordsXProperties(idContactRecord: number) {\r\n return this.http.get(environment.internalContacts.recordsXProperties, {\r\n params: {\r\n idContactRecord: idContactRecord.toString(),\r\n },\r\n headers: this.headers.headers,\r\n });\r\n }\r\n\r\n getRecordsXJobs(idContactRecord: number) {\r\n return this.http.get(environment.internalContacts.recordsXJobs, {\r\n params: {\r\n idContactRecord: idContactRecord.toString(),\r\n },\r\n headers: this.headers.headers,\r\n });\r\n }\r\n\r\n getRecordsXProjects(idContactRecord: number) {\r\n return this.http.get(environment.internalContacts.recordsXProjects, {\r\n params: {\r\n idContactRecord: idContactRecord.toString(),\r\n },\r\n headers: this.headers.headers,\r\n });\r\n }\r\n\r\n getContactProperties(properties: string[]) {\r\n return this.http.post(\r\n environment.internalContacts.propertiesContact,\r\n properties,\r\n this.headers\r\n );\r\n }\r\n\r\n getContactJobs(jobs: number[]) {\r\n return this.http.post(\r\n environment.internalContacts.jobsContact,\r\n jobs,\r\n this.headers\r\n );\r\n }\r\n\r\n getContactProjects(projects: string[]) {\r\n return this.http.post(\r\n environment.accounts.projectsCompany,\r\n projects,\r\n this.headers\r\n );\r\n }\r\n\r\n getCompanyxContacts(idCompany: number) {\r\n return this.http.get(environment.internalContacts.contactCompanies, {\r\n params: {\r\n idCompany: idCompany?.toString(),\r\n },\r\n headers: this.headers.headers,\r\n });\r\n }\r\n\r\n getRecordsIds(idContactRercords: number[]) {\r\n return this.http.post(\r\n environment.internalContacts.recordsIds,\r\n idContactRercords,\r\n this.headers\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { ProjectResponse } from \"src/app/models/projects/project.response.model\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { ProjectFileModel } from \"../../../models/projects/project.file.model\";\r\nimport { ProjectStatusModel } from \"../../../models/projects/project-status.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ProjectsService {\r\n protected projects = new BehaviorSubject(null);\r\n currentProjects = this.projects.asObservable();\r\n\r\n protected filesUploaded = new BehaviorSubject(0);\r\n currentFilesUploaded = this.filesUploaded.asObservable();\r\n\r\n private headers = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Bearer ${sessionStorage.getItem(\"token\")}`,\r\n }),\r\n };\r\n\r\n constructor(public readonly http: HttpClient) {}\r\n\r\n getProjects() {\r\n let data = {\r\n GuidCliente: sessionStorage.getItem(\"guidCompany\"),\r\n Pais: sessionStorage.getItem(\"country\"),\r\n Rol: sessionStorage.getItem(\"rol\"),\r\n Email: sessionStorage.getItem(\"email\"),\r\n };\r\n return this.http.post(`${environment.projects}`, data, this.headers);\r\n }\r\n\r\n updateProject(data: any) {\r\n return this.http.put(`${environment.updateProject}`, data, this.headers);\r\n }\r\n\r\n getStatusProjects(): Observable {\r\n return this.http.get(`${environment.masters.statusProjects}`, this.headers);\r\n }\r\n\r\n setProjects(projects: ProjectResponse[]): void {\r\n this.projects.next(projects);\r\n }\r\n\r\n setFilesUploaded(files: number): void {\r\n this.filesUploaded.next(files);\r\n }\r\n\r\n uploadDocuments(data: any): Observable {\r\n return this.http.post(`${environment.documents.upload}`, data);\r\n }\r\n\r\n getDocumentsTypeBlob(): Observable {\r\n return this.http.get(`${environment.documents.typeBlob}`);\r\n }\r\n\r\n getDocumentLocationByItem(idItem: string, status: string): Observable {\r\n return this.http.get(`${environment.documents.documentLocationByItem}`, { params: { idItem, status } });\r\n }\r\n\r\n downloadDocument(pathAndFileName: string): Observable {\r\n return this.http.get(`${environment.documents.download}`,\r\n { params: { pathAndFileName }, responseType: 'text' }\r\n );\r\n }\r\n\r\n setStatusDocument(document: ProjectFileModel): Observable {\r\n return this.http.put(`${environment.documents.manageDocument}`, document);\r\n }\r\n\r\n updateDocument(data: any, action: string): Observable {\r\n if ( action === 'Edit' ) {\r\n return this.http.put(`${environment.documents.manageDocument}`, data);\r\n } else {\r\n return this.http.post(`${environment.documents.rename}`, data);\r\n }\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InternalPropertiesService {\r\n\r\n private headers = { headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'Authorization': `Bearer ${sessionStorage.getItem('token')}`\r\n })};\r\n\r\n constructor(\r\n public readonly http: HttpClient\r\n ) { }\r\n\r\n sendNotificationDetail(notificationDetail: any): Observable {\r\n return this.http.post(`${environment.internalServices.notificationDetails}`, notificationDetail, this.headers);\r\n }\r\n\r\n getDocumentsType() {\r\n return this.http.get(`${environment.masters.documentsType}`, this.headers);\r\n }\r\n\r\n getDocumentsCategory() {\r\n return this.http.get(`${environment.masters.documentsCategory}`, this.headers);\r\n }\r\n\r\n saveDocuments(documents: any[]) {\r\n return this.http.post(`${environment.internalServices.saveDocuments}`, documents, this.headers);\r\n }\r\n\r\n getPropertiesType() {\r\n return this.http.get(`${environment.masters.propertiesType}`, this.headers);\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { PropertieResponse } from 'src/app/models/properties/properties.response.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PropertiesService {\r\n\r\n protected properties = new BehaviorSubject(null);\r\n currentPropiertes = this.properties.asObservable();\r\n\r\n private headers = { headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'Authorization': `Bearer ${sessionStorage.getItem('token')}`\r\n })};\r\n\r\n constructor(\r\n public readonly http: HttpClient\r\n ) { }\r\n\r\n getAllProperties() {\r\n let body = sessionStorage.getItem(\"numberProjects\");\r\n return this.http.post(`${environment.allProperties}`, body, this.headers);\r\n }\r\n\r\n getPropertieByProjectNumber(projectNumber: string): Observable {\r\n return this.http.get(`${environment.properties}?numeroProyecto=${projectNumber}`, this.headers);\r\n }\r\n\r\n updatePropertie(propertie: any) {\r\n return this.http.put(environment.updateProperty, propertie, this.headers);\r\n }\r\n\r\n getRelationDocuments(projectNumber: string, propertieNumber: string): Observable {\r\n return this.http.get(`${environment.relationDocuments}?numeroProyecto=${projectNumber}&numeroPropiedad=${propertieNumber}`, this.headers);\r\n }\r\n\r\n getAdvances(projectNumber: string, propertieNumber: string) {\r\n return this.http.get(`${environment.advances}?numeroProyecto=${projectNumber}&numeroPropiedad=${propertieNumber}`, this.headers);\r\n }\r\n\r\n deleteRelationDocuments(deleteDocument: any): Observable {\r\n return this.http.post(environment.deleteRelationDocuments, deleteDocument, this.headers);\r\n }\r\n\r\n uploadRelationDocument(document: any): Observable {\r\n return this.http.post(environment.uploadDocument, document, this.headers);\r\n }\r\n\r\n updateRelationDocument(document: any): Observable {\r\n return this.http.post(environment.updateRelationDocumetns, document, this.headers);\r\n } \r\n\r\n viewDocument(urlDocument: any): Observable {\r\n return this.http.post(environment.viewDocument, JSON.stringify(urlDocument), this.headers);\r\n }\r\n\r\n setProperties(works: PropertieResponse[]): void {\r\n this.properties.next(works);\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class InternalTasksService {\r\n private headers = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Bearer ${sessionStorage.getItem(\"token\")}`,\r\n }),\r\n };\r\n\r\n constructor(public readonly http: HttpClient) {}\r\n\r\n getTasksByUser() {\r\n return this.http.get(\r\n `${environment.tasksByUser}?usuario=${sessionStorage.getItem(\"email\")}`,\r\n this.headers\r\n );\r\n }\r\n\r\n getTasksByProject(projectNumber: string) {\r\n return this.http.get(\r\n `${environment.internalServices.tasksProjects}?proyectNumber=${projectNumber}`,\r\n this.headers\r\n );\r\n }\r\n\r\n getTaskStatus() {\r\n return this.http.get(`${environment.masters.taskStatus}`, this.headers);\r\n }\r\n\r\n getTaskType() {\r\n return this.http.get(`${environment.masters.taskType}`, this.headers);\r\n }\r\n\r\n getTaskCategory() {\r\n return this.http.get(`${environment.masters.taskCategory}`, this.headers);\r\n }\r\n\r\n getTaskCodes() {\r\n return this.http.get(`${environment.masters.taskCode}`, this.headers);\r\n }\r\n\r\n getTaskSubTypes() {\r\n return this.http.get(`${environment.masters.taskSubType}`, this.headers);\r\n }\r\n\r\n updateTask(task: any) {\r\n return this.http.put(`${environment.updateTask}`, task, this.headers);\r\n }\r\n\r\n createTask(task: any) {\r\n return this.http.post(`${environment.createTask}`, task, this.headers);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TasksService {\r\n\r\n private headers = { headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'Authorization': `Bearer ${sessionStorage.getItem('token')}`\r\n })};\r\n\r\n constructor(\r\n public readonly http: HttpClient\r\n ) { }\r\n\r\n getAllTasks() {\r\n return this.http.post(`${environment.allTasks}`, JSON.parse(sessionStorage.getItem(\"jobsTypes\")), this.headers);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { WorksResponse } from \"src/app/models/works/woks.response.model\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { CollaborationModel } from \"../../../models/works/collaboration.model\";\r\nimport { InspectionModel } from \"../../../models/works/inspection.model\";\r\nimport { InspectionStatusModel } from \"../../../models/works/inspection-status.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class InternalWorksService {\r\n protected works = new BehaviorSubject(null);\r\n currentWorks = this.works.asObservable();\r\n\r\n private headers = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Bearer ${sessionStorage.getItem(\"token\")}`,\r\n }),\r\n };\r\n\r\n constructor(public readonly http: HttpClient) {}\r\n\r\n getJobsRol() {\r\n return this.http\r\n .get(`${environment.internalServices.getJobsRol}?usuario=${sessionStorage.getItem(\"email\")}&rol=${sessionStorage.getItem(\"rol\")}`, this.headers);\r\n }\r\n\r\n updateJobs(job: any) {\r\n return this.http.put(\r\n `${environment.internalServices.updateJobs}`,\r\n job,\r\n this.headers\r\n );\r\n }\r\n\r\n getExpenses(job: string) {\r\n return this.http.get(\r\n `${environment.internalServices.getExpenses}?job=${job}`,\r\n this.headers\r\n );\r\n }\r\n\r\n getTasks(job: string) {\r\n return this.http.get(`${environment.tasks}?numeroJob=${job}`, this.headers);\r\n }\r\n\r\n getStatusJobs() {\r\n return this.http.get(`${environment.masters.statusJobs}`, this.headers);\r\n }\r\n\r\n getSectors() {\r\n return this.http.get(`${environment.masters.sector}`, this.headers);\r\n }\r\n\r\n getInternalContacts(): Observable {\r\n return this.http.get(\r\n `${environment.masters.internalContacts}`,\r\n this.headers\r\n );\r\n }\r\n\r\n getExternalContacts(): Observable {\r\n return this.http.get(\r\n `${environment.masters.externalContacts}`,\r\n this.headers\r\n );\r\n }\r\n\r\n getCountries() {\r\n return this.http.get(`${environment.countries}`, this.headers);\r\n }\r\n\r\n getTerritories() {\r\n return this.http.get(`${environment.masters.territory}`, this.headers);\r\n }\r\n\r\n getCollaborations(idJob: number): Observable {\r\n return this.http.get(`${environment.internalServices.collaborationByJob}?idjob=${idJob}`, this.headers);\r\n }\r\n\r\n createCollaboration(collaboration: CollaborationModel): Observable {\r\n return this.http.post(`${environment.internalServices.createCollaboration}`, collaboration, this.headers);\r\n }\r\n\r\n updateCollaboration(collaboration: CollaborationModel): Observable {\r\n return this.http.put(`${environment.internalServices.updateCollaboration}`, collaboration, this.headers);\r\n }\r\n\r\n getInspectionsByJob(idJob: number): Observable {\r\n return this.http.get(`${environment.inspection.getByJob}?idJob=${idJob}`, this.headers);\r\n }\r\n\r\n createInspection(inspection: InspectionModel): Observable {\r\n return this.http.post(`${environment.inspection.create}`, inspection, this.headers);\r\n }\r\n\r\n updateInspection(inspection: InspectionModel): Observable {\r\n return this.http.put(`${environment.inspection.update}`, inspection, this.headers);\r\n }\r\n\r\n getInspectionStatus(): Observable {\r\n return this.http.get(`${environment.masters.inspectionStatus}`, this.headers);\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WorksService {\r\n\r\n private headers = { headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'Authorization': `Bearer ${sessionStorage.getItem('token')}`\r\n })};\r\n\r\n constructor(\r\n public readonly http: HttpClient\r\n ) { }\r\n\r\n getAllWorks(projects: string[]) {\r\n return this.http.post(`${environment.allJobs}`, projects, this.headers);\r\n }\r\n\r\n getWorksByProjectNumber(projectNumber: string): Observable {\r\n return this.http.get(`${environment.jobs}?numeroProyecto=${projectNumber}`, this.headers);\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { AuthUser } from \"../../models/auth/auth.model\";\r\nimport { CodeRequest } from \"src/app/models/auth/code.model\";\r\nimport { NewPasswordRequest } from \"src/app/models/auth/newpassword.model\";\r\nimport { MsalService } from \"@azure/msal-angular\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AuthService {\r\n constructor(\r\n public readonly http: HttpClient,\r\n private readonly authService: MsalService,\r\n private readonly router: Router\r\n ) {}\r\n\r\n loginLogan() {\r\n return this.authService.loginPopup();\r\n }\r\n\r\n logout() {\r\n sessionStorage.removeItem(\"email\");\r\n if (sessionStorage.getItem(\"tipo\") === \"Interno\") {\r\n this.router.navigate([\"/auth/login-logan\"]);\r\n } else {\r\n this.router.navigate([\"/auth/login\"]);\r\n }\r\n }\r\n\r\n getToken(authUser: AuthUser) {\r\n return this.http.post(environment.authToken, authUser);\r\n }\r\n\r\n signIn(authUser: AuthUser) {\r\n let headers = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Bearer ${sessionStorage.getItem(\"token\")}`,\r\n }),\r\n };\r\n\r\n return this.http.post(environment.auth, authUser, headers);\r\n }\r\n\r\n generateToken(email: string) {\r\n let headers = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Bearer ${sessionStorage.getItem(\"token\")}`,\r\n }),\r\n };\r\n\r\n return this.http.post(environment.generateToken, `\"${email}\"`, headers);\r\n }\r\n\r\n testCode(codeRequest: CodeRequest) {\r\n let headers = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Bearer ${sessionStorage.getItem(\"token\")}`,\r\n }),\r\n };\r\n\r\n return this.http.post(environment.testCode, codeRequest, headers);\r\n }\r\n\r\n changePassword(newPasswordRequest: NewPasswordRequest) {\r\n let headers = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Bearer ${sessionStorage.getItem(\"token\")}`,\r\n }),\r\n };\r\n\r\n return this.http.post(\r\n environment.changePassword,\r\n newPasswordRequest,\r\n headers\r\n );\r\n }\r\n\r\n validateEmail(email: { Email: string }) {\r\n return this.http.post(environment.forgotPassword.validateEmail, email);\r\n }\r\n\r\n sendEmailResetPassword(email: { Email: string }) {\r\n return this.http.post(environment.forgotPassword.sendEmailResetPassword, email);\r\n }\r\n\r\n createNewPassword( data: any ) {\r\n return this.http.post(environment.forgotPassword.changePassword, data);\r\n }\r\n\r\n validateCode( data: any ) {\r\n return this.http.post(environment.forgotPassword.validateCode, data);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CountryResponse } from '../../models/localizations/country.reponse.model';\r\nimport { StateResponse } from '../../models/localizations/state.response.model';\r\nimport { CityResponse } from '../../models/localizations/city.response.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalizationsService {\r\n\r\n protected countries = new BehaviorSubject(null);\r\n currentCountries = this.countries.asObservable();\r\n\r\n protected states = new BehaviorSubject(null);\r\n currentStates = this.states.asObservable();\r\n\r\n protected cities = new BehaviorSubject(null);\r\n currentCities = this.cities.asObservable();\r\n\r\n private headers = { headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'Authorization': `Bearer ${sessionStorage.getItem('token')}`\r\n })};\r\n\r\n constructor(\r\n public readonly http: HttpClient\r\n ) { }\r\n\r\n getCountries() {\r\n return this.http.get(environment.countries, this.headers);\r\n }\r\n\r\n getStates() {\r\n return this.http.get(environment.states, this.headers);\r\n }\r\n\r\n getCities() {\r\n return this.http.get(environment.cities, this.headers);\r\n }\r\n\r\n setCountries(countries: CountryResponse[]): void {\r\n this.countries.next(countries);\r\n }\r\n\r\n setStates(states: StateResponse[]): void {\r\n this.states.next(states);\r\n }\r\n\r\n setCities(cities: CityResponse[]): void {\r\n this.cities.next(cities);\r\n }\r\n\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MasterService {\r\n private headers = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Bearer ${sessionStorage.getItem(\"token\")}`,\r\n }),\r\n };\r\n\r\n constructor(public readonly http: HttpClient) {}\r\n\r\n getBusinessUnits() {\r\n return this.http.get(environment.masters.businessUnit, this.headers);\r\n }\r\n\r\n getContactClasses() {\r\n return this.http.get(environment.masters.contactClasses, this.headers);\r\n }\r\n}\r\n","export function fileExtensions(extensionName: string) {\r\n switch (extensionName.toLocaleLowerCase()) {\r\n case 'xlsx':\r\n return true;\r\n case 'xls':\r\n return true;\r\n case 'docx':\r\n return true;\r\n case 'doc':\r\n return true;\r\n case 'pptx':\r\n return true;\r\n case 'ppt':\r\n return true;\r\n case 'pdf':\r\n return true;\r\n case 'jpg':\r\n return true;\r\n case 'png':\r\n return true;\r\n case 'mpp':\r\n return true;\r\n case 'txt':\r\n return true;\r\n case 'bmp':\r\n return true;\r\n case 'dwg':\r\n return true;\r\n case 'dgn':\r\n return true;\r\n case 'dwl2':\r\n return true;\r\n case 'tif':\r\n return true;\r\n case 'mp3':\r\n return true;\r\n case 'wav':\r\n return true;\r\n case 'avi':\r\n return true;\r\n case 'mpeg':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nexport function getExtensionIcon(extensionName: string) {\r\n switch (extensionName.toLocaleLowerCase()) {\r\n case 'xlsx':\r\n return 'fas fa-file-excel excel-color mr-1';\r\n case 'docx':\r\n return 'fas fa-file-word word-color mr-1';\r\n case 'pptx':\r\n return 'fas fa-file-powerpoint power-point-color mr-1';\r\n case 'pdf':\r\n return 'fas fa-file-pdf pdf-color mr-1';\r\n case 'jpg':\r\n return 'fas fa-image image-color mr-1';\r\n case 'png':\r\n return 'fas fa-image image-color mr-1';\r\n case 'mpp':\r\n return 'fas fa-file-excel excel-color mr-1';\r\n case 'txt':\r\n return 'fas fa-envelope-open-text image-color mr-1';\r\n case 'bmp':\r\n return 'fas fa-file-code image-color mr-1';\r\n case 'dwg':\r\n return 'fas fa-file-code image-color mr-1';\r\n case 'dgn':\r\n return 'fas fa-file-code image-color mr-1';\r\n case 'dwl2':\r\n return 'fas fa-file-code image-color mr-1';\r\n case 'tif':\r\n return 'fas fa-image image-color mr-1';\r\n case 'mp3':\r\n return 'fas fa-file-audio word-color mr-1';\r\n case 'wav':\r\n return 'fas fa-file-video word-color mr-1';\r\n case 'avi':\r\n return 'fas fa-file-video word-color mr-1';\r\n case 'mpeg':\r\n return 'fas fa-file-video word-color mr-1';\r\n default:\r\n return 'fa fa-folder color-icon-folder mr-1';\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: 'app-replace-keep-file',\r\n templateUrl: './replace-keep-file.component.html'\r\n})\r\nexport class ReplaceKeepFileComponent implements OnInit {\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n fileName: string\r\n },\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from \"@angular/forms\";\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { ProjectsService } from \"../../services/admin-services/projects/projects.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ProjectFileModel } from \"../../models/projects/project.file.model\";\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-update-document-dialog',\r\n templateUrl: './update-document-dialog.component.html'\r\n})\r\nexport class UpdateDocumentDialogComponent implements OnInit {\r\n\r\n public udpateRenameForm: UntypedFormGroup;\r\n\r\n constructor(\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n documentTypes: any[];\r\n action: string;\r\n document: ProjectFileModel;\r\n },\r\n private readonly _ProjectsService: ProjectsService,\r\n private readonly toastr: ToastrService,\r\n private readonly spinner: NgxSpinnerService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.createUpdateRenameForm();\r\n }\r\n\r\n createUpdateRenameForm(): void {\r\n this.udpateRenameForm = this.formBuilder.group({\r\n id: new UntypedFormControl(this.data.document.id),\r\n idItem: new UntypedFormControl(this.data.document.idItem),\r\n regarding: new UntypedFormControl(this.data.document.regarding),\r\n url: new UntypedFormControl(this.data.document.url),\r\n item: new UntypedFormControl(this.data.document.item),\r\n documentName: new UntypedFormControl(this.data.document.documentName.substring(0, this.data.document.documentName.lastIndexOf('.'))),\r\n documentType: new UntypedFormControl(this.data.document.documentType),\r\n createdOn: new UntypedFormControl(this.data.document.createdOn),\r\n createdBy: new UntypedFormControl(this.data.document.createdBy),\r\n modifiedOn: new UntypedFormControl(moment(new Date()).format('YYYY-MM-DD')),\r\n modifiedBy: new UntypedFormControl(sessionStorage.getItem(\"userID\")),\r\n status: new UntypedFormControl(this.data.document.status),\r\n });\r\n }\r\n\r\n getExtension(): string {\r\n return this.data.document.documentName.substring(this.data.document.documentName.lastIndexOf('.') + 1);\r\n }\r\n\r\n manageDocument(): void {\r\n if ( this.data.action === 'Edit' ) {\r\n this.editDocument();\r\n } else if ( this.data.action === 'Rename' ) {\r\n this.renameDocument();\r\n }\r\n }\r\n\r\n editDocument(): void {\r\n this.spinner.show();\r\n this._ProjectsService.updateDocument(this.udpateRenameForm.value, 'Edit').subscribe({\r\n next: (response: any) => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Document updated successfully\", \"Success\");\r\n this.dialogRef.close(true);\r\n },\r\n error: () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n this.dialogRef.close(true);\r\n }\r\n });\r\n }\r\n\r\n renameDocument(): void {\r\n this.spinner.show();\r\n const data = {\r\n ActualName: this.data.document.documentName,\r\n NewName: `${this.udpateRenameForm.value.documentName}.${this.data.document.documentName.substring(this.data.document.documentName.lastIndexOf('.') + 1)}`,\r\n DocumentId: this.data.document.id,\r\n UrlDocument: \"\"\r\n }\r\n this._ProjectsService.updateDocument(data, 'Rename').subscribe({\r\n next: (response: any) => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Document renamed successfully\", \"Success\");\r\n this.dialogRef.close(true);\r\n },\r\n error: () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n this.dialogRef.close(true);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormArray, UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { FileUploadValidators } from \"@iplab/ngx-file-upload\";\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { ProjectsService } from \"../../services/admin-services/projects/projects.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport * as moment from 'moment';\r\nimport { ProjectFileModel } from \"../../models/projects/project.file.model\";\r\nimport { ReplaceKeepFileComponent } from \"../replace-keep-file/replace-keep-file.component\";\r\n\r\n@Component({\r\n selector: 'app-upload-files',\r\n templateUrl: './upload-files.component.html'\r\n})\r\nexport class UploadFilesComponent implements OnInit {\r\n\r\n private filesControl = new UntypedFormControl(\r\n null,\r\n FileUploadValidators.filesLimit(10)\r\n );\r\n\r\n public fileForm = new UntypedFormGroup({\r\n files: this.filesControl,\r\n documentFiles: new FormArray([], Validators.required)\r\n });\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n documentTypes: any[];\r\n id: number;\r\n regarding: string;\r\n idFolder: string;\r\n documents: ProjectFileModel[]\r\n },\r\n private readonly _ProjectsService: ProjectsService,\r\n private readonly toastr: ToastrService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly dialog: MatDialog,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.documentFilesValueChanges();\r\n }\r\n\r\n async documentFilesValueChanges() {\r\n this.filesControl.valueChanges.subscribe((files) => {\r\n const documentsData = this.fileForm.get('documentFiles') as FormArray;\r\n let fileName = \"\";\r\n let keepOrReplaceFile = false;\r\n documentsData.clear();\r\n files.forEach(async (file: any) => {\r\n const extension = file.name.substring(file.name.lastIndexOf('.') + 1);\r\n const name = file.name.replace(/^.*[\\\\\\/]/, '').replace(/\\.[^/.]+$/, '');\r\n fileName = file.name.replace(/\\s/g, \"\");\r\n\r\n if(this.keepOrReplaceFile(file)) {\r\n keepOrReplaceFile = await this.openReplaceKeepFileDialog(file.name);\r\n if (!keepOrReplaceFile) {\r\n this.filesControl.value.splice(this.filesControl.value.indexOf(file), 1);\r\n this.fileForm.get('files')?.setValue(this.filesControl.value);\r\n return;\r\n }\r\n }\r\n\r\n if(keepOrReplaceFile) {\r\n fileName = `${name}_${moment(new Date()).format('YYYYMMDDHHmmss')}-Copy.${extension}`;\r\n }\r\n\r\n const documentData = new UntypedFormGroup({\r\n documento: new UntypedFormControl(file),\r\n id: new UntypedFormControl(\"0\"),\r\n idItem: new UntypedFormControl(this.data.id),\r\n regarding: new UntypedFormControl(this.data.regarding),\r\n url: new UntypedFormControl(fileName),\r\n item: new UntypedFormControl(\"1\"),\r\n documentName: new UntypedFormControl(fileName),\r\n documentType: new UntypedFormControl(null),\r\n createdOn: new UntypedFormControl(new Date()),\r\n createdBy: new UntypedFormControl(sessionStorage.getItem(\"userID\")),\r\n modifiedOn: new UntypedFormControl(new Date()),\r\n modifiedBy: new UntypedFormControl(sessionStorage.getItem(\"userID\")),\r\n status: new UntypedFormControl(\"true\"),\r\n });\r\n\r\n documentsData.push(documentData);\r\n\r\n });\r\n });\r\n }\r\n\r\n uploadDocuments(): void {\r\n let filesToUpload = this.filesControl.value.length;\r\n\r\n this.filesFormArray.value.forEach((file: any) => {\r\n\r\n const formData = new FormData();\r\n formData.append('Documento', file.documento);\r\n formData.append('Id', file.id);\r\n formData.append('IdItem', file.idItem);\r\n formData.append('Regarding', file.regarding);\r\n formData.append('Url', file.url);\r\n formData.append('Item', file.item);\r\n formData.append('DocumentName', `/${this.data.regarding}/${this.data.idFolder}/${file.documentName}`);\r\n formData.append('DocumentType', file.documentType);\r\n formData.append('CreatedOn', moment(file.createdOn).format('YYYY-MM-DD'));\r\n formData.append('CreatedBy', file.createdBy);\r\n formData.append('ModifiedOn', moment(file.modifiedOn).format('YYYY-MM-DD'));\r\n formData.append('ModifiedBy', file.modifiedBy);\r\n formData.append('Status', file.status);\r\n\r\n this._ProjectsService.uploadDocuments(formData).subscribe({\r\n next: () => {\r\n filesToUpload--;\r\n this.toastr.success(\"Documents uploaded successfully\", \"Success\");\r\n this._ProjectsService.setFilesUploaded(filesToUpload);\r\n },\r\n error: () => {\r\n this.toastr.error(\"Error uploading documents\", \"Error\");\r\n }\r\n });\r\n\r\n });\r\n\r\n this.dialogRef.close(true);\r\n\r\n }\r\n\r\n openReplaceKeepFileDialog(fileName: string): Promise {\r\n const dialogRef = this.dialog.open(ReplaceKeepFileComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n width: \"500px\",\r\n data: {\r\n fileName: fileName\r\n }\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n dialogRef.afterClosed().subscribe(result => {\r\n resolve(result);\r\n });\r\n });\r\n }\r\n\r\n private keepOrReplaceFile(file: any): boolean {\r\n return this.data.documents.some( ( document: any ) => document.documentName === `/${this.data.regarding}/${this.data.idFolder}/${file.name}` );\r\n }\r\n\r\n get filesFormArray(): any {\r\n return this.fileForm.get('documentFiles') as FormArray;\r\n }\r\n\r\n}\r\n","export function cleanNullAttributes(object: any) {\r\n for (var propName in object) {\r\n if (object[propName] === null || object[propName] === undefined || object[propName].length === 0) {\r\n delete object[propName];\r\n }\r\n }\r\n return object;\r\n}\r\n\r\nexport function findByMatchingProperties(array, properties) {\r\n return array.filter(function (property) {\r\n return Object.keys(properties).every(function (key) {\r\n return properties[key].some((element) => {\r\n return property[key] === element;\r\n });\r\n });\r\n });\r\n}\r\n\r\nexport function findByMatchingProperty(array, properties) {\r\n return array.filter(function (propertie) {\r\n return Object.keys(properties).every(function (key) {\r\n return propertie[key] === properties[key];\r\n });\r\n });\r\n}\r\n\r\nexport function loadSideBarConfiguration(idMenu: string) {\r\n let sidebar = document.querySelector(\".sidebar\");\r\n let closeBtn = document.querySelector(\"#\" + idMenu);\r\n\r\n closeBtn.addEventListener(\"click\", () => {\r\n sidebar.classList.toggle(\"open\");\r\n menuBtnChange();\r\n });\r\n\r\n function menuBtnChange() {\r\n if (sidebar.classList.contains(\"open\")) {\r\n closeBtn.classList.replace(\"bx-menu\", \"bx-menu-alt-right\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-14\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-3\");\r\n } else {\r\n closeBtn.classList.replace(\"bx-menu-alt-right\", \"bx-menu\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-3\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-14\");\r\n }\r\n }\r\n}\r\n\r\nexport function kFormatter(num) {\r\n return Math.abs(num) > 999\r\n ? Math.sign(num) * Number((Math.abs(num) / 1000).toFixed(1)) + \"k\"\r\n : Math.sign(num) * Math.abs(num);\r\n}\r\n\r\nexport function searchJson(jsonObj: any, targetValue: any): any {\r\n let foundObjects = {};\r\n\r\n for (const key in jsonObj) {\r\n const value = jsonObj[key];\r\n if (value?.toString().includes(targetValue)) {\r\n foundObjects = jsonObj;\r\n break;\r\n }\r\n }\r\n\r\n return foundObjects;\r\n}\r\n\r\nexport function orderArraysByName(array1: any[], array2: any[]): [any[], any[]] {\r\n const clonedArray1 = [...array1];\r\n const clonedArray2 = [...array2];\r\n\r\n // Sort both arrays based on the name property\r\n const comparator = (a: any, b: any) => a.name.localeCompare(b.name);\r\n\r\n clonedArray1.sort(comparator);\r\n clonedArray2.sort(comparator);\r\n\r\n // Create a mapping of names to their corresponding items in array1\r\n const nameToItemMap = new Map();\r\n clonedArray1.forEach(item => {\r\n nameToItemMap.set(item.name, item);\r\n });\r\n\r\n // Order array2 based on the order of array1, with unmatched names at the end\r\n const orderedArray2 = clonedArray2.sort((a, b) => {\r\n const itemA = nameToItemMap.get(a.name);\r\n const itemB = nameToItemMap.get(b.name);\r\n\r\n if (itemA && itemB) {\r\n return clonedArray1.indexOf(itemA) - clonedArray1.indexOf(itemB);\r\n } else if (itemA) {\r\n return -1;\r\n } else if (itemB) {\r\n return 1;\r\n } else {\r\n // Both names are not present in array1, order them by name\r\n return comparator(a, b);\r\n }\r\n });\r\n\r\n return [clonedArray1, orderedArray2];\r\n}\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { loadSideBarConfiguration } from \"src/app/utils/utils\";\r\nimport { AccountsService } from \"../../../services/admin-services/accounts/accounts.service\";\r\nimport { AccountModel } from \"src/app/models/accounts/account.model\";\r\nimport { LocalizationsService } from \"../../../services/localizations/localizations.service\";\r\nimport { combineLatest } from \"rxjs\";\r\nimport { CountryResponse } from \"src/app/models/localizations/country.reponse.model\";\r\nimport { StateResponse } from \"src/app/models/localizations/state.response.model\";\r\nimport { CityResponse } from \"src/app/models/localizations/city.response.model\";\r\nimport { Router } from \"@angular/router\";\r\nimport { BreadcrumbService } from \"xng-breadcrumb\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\n\r\n@Component({\r\n selector: \"app-accounts\",\r\n templateUrl: \"./accounts.component.html\",\r\n})\r\nexport class AccountsComponent implements OnInit {\r\n @ViewChild(MatPaginator)\r\n set paginator(pagination: MatPaginator) {\r\n this.dataSource.paginator = pagination;\r\n }\r\n displayedColumns: string[] = [\r\n \"actions\",\r\n \"accountName\",\r\n \"businessPhone\",\r\n \"webSite\",\r\n \"parentAccount\",\r\n \"country\",\r\n \"state\",\r\n \"city\",\r\n \"address\",\r\n \"status\",\r\n ];\r\n dataSource = new MatTableDataSource();\r\n accounts: AccountModel[];\r\n countriesResponse: CountryResponse[];\r\n statesResponse: StateResponse[];\r\n citiesResponse: CityResponse[];\r\n showAccounts = true;\r\n type = false;\r\n\r\n constructor(\r\n private readonly authService: AuthService,\r\n private readonly accountService: AccountsService,\r\n private readonly localizationService: LocalizationsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly router: Router,\r\n private readonly breadcrumbService: BreadcrumbService\r\n ) {\r\n breadcrumbService.breadcrumbs$.subscribe((breadCrumbs) => {\r\n if (breadCrumbs.length == 2 && breadCrumbs[1].label == \"Accounts\") {\r\n this.getAccountsCache();\r\n }\r\n });\r\n router.events.subscribe((val) => {\r\n if (val[\"url\"] === \"/home/accounts\") {\r\n this.showAccounts = true;\r\n if (sessionStorage.getItem(\"tipo\") === \"Interno\") {\r\n this.type = true;\r\n } else {\r\n this.type = false;\r\n }\r\n } else {\r\n this.showAccounts = false;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n loadSideBarConfiguration(\"btnMenuAccounts\");\r\n this.getLocalizations();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n\r\n getCountryName(countryId: number) {\r\n return this.countriesResponse?.find((country) => country.id === countryId)\r\n ?.country_Name;\r\n }\r\n\r\n getStateName(stateId: number) {\r\n return this.statesResponse?.find((state) => state.id === stateId)\r\n ?.department_Name;\r\n }\r\n\r\n getCityName(cityId: number) {\r\n return this.citiesResponse?.find((city) => city.id === cityId)?.city_Name;\r\n }\r\n\r\n getParentAccountName(idParentAccount: number) {\r\n return this.accounts?.find(\r\n (account) => account.idCompany === idParentAccount\r\n )?.companyName;\r\n }\r\n\r\n private getAccountsCache() {\r\n this.spinner.show();\r\n this.accountService.currentAccounts.subscribe({\r\n next: (accounts: AccountModel[]) => {\r\n if (accounts !== null) {\r\n this.accounts = accounts;\r\n this.dataSource.data = accounts;\r\n this.spinner.hide();\r\n } else {\r\n this.getAccounts();\r\n }\r\n },\r\n });\r\n }\r\n\r\n getAccounts() {\r\n this.spinner.show();\r\n this.accountService.getAccounts().subscribe(\r\n (accounts: AccountModel[]) => {\r\n this.accounts = accounts;\r\n this.accountService.setAccounts(accounts);\r\n this.dataSource.data = accounts;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getLocalizations() {\r\n combineLatest([\r\n this.localizationService.currentCountries,\r\n this.localizationService.currentStates,\r\n this.localizationService.currentCities,\r\n ]).subscribe(([countries, states, cities]) => {\r\n if (countries !== null && states !== null && cities !== null) {\r\n this.countriesResponse = countries;\r\n this.statesResponse = states;\r\n this.citiesResponse = cities;\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport {\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} from \"@angular/forms\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { combineLatest } from \"rxjs\";\r\nimport { ConfirmDialogComponent } from \"src/app/components/confirm-dialog/confirm-dialog.component\";\r\nimport { AccountModel } from \"src/app/models/accounts/account.model\";\r\nimport { AccountCompanyProjectModel } from \"src/app/models/accounts/company-project.model\";\r\nimport { AccountProjectModel } from \"src/app/models/accounts/project.model\";\r\nimport { CityResponse } from \"src/app/models/localizations/city.response.model\";\r\nimport { CountryResponse } from \"src/app/models/localizations/country.reponse.model\";\r\nimport { StateResponse } from \"src/app/models/localizations/state.response.model\";\r\nimport { AccountsService } from \"src/app/services/admin-services/accounts/accounts.service\";\r\nimport { LocalizationsService } from \"src/app/services/localizations/localizations.service\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { InternalContactsService } from \"../../../../services/admin-services/internal-contacts/internal-contacts.service\";\r\nimport { ManageInternalContactDialogComponent } from \"../../internal-contacts/manage-internal-contact-dialog/manage-internal-contact-dialog.component\";\r\nimport { AccountRelationalontactModel } from \"src/app/models/accounts/relational-contact.model\";\r\nimport { InternalContactModel } from \"src/app/models/internal-contacts/internal-contact.model\";\r\n\r\n@Component({\r\n selector: \"app-manage-account-dialog\",\r\n templateUrl: \"./manage-account-dialog.component.html\",\r\n})\r\nexport class ManageAccountDialogComponent implements OnInit {\r\n accountForm: UntypedFormGroup;\r\n filteredStates: StateResponse[];\r\n filteredCities: CityResponse[];\r\n relatedProjects: AccountProjectModel[];\r\n countriesResponse: CountryResponse[];\r\n statesResponse: StateResponse[];\r\n citiesResponse: CityResponse[];\r\n accounts: AccountModel[];\r\n account: AccountModel;\r\n idAccount: number;\r\n contactRecords: InternalContactModel[];\r\n loadForm = false;\r\n\r\n constructor(\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly dialog: MatDialog,\r\n private readonly accountService: AccountsService,\r\n private readonly internalContactService: InternalContactsService,\r\n private readonly localizationService: LocalizationsService,\r\n private readonly route: ActivatedRoute,\r\n private readonly router: Router\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.idAccount = +this.route.snapshot.paramMap.get(\"idAccount\");\r\n this.getLocalizations();\r\n this.getAccounts();\r\n if (this.idAccount) {\r\n this.getCompanyXproject();\r\n this.getCompanyxContacts();\r\n }\r\n }\r\n\r\n openManageContactDialog(action?: string) {\r\n this.dialog.open(ManageInternalContactDialogComponent, {\r\n width: \"950pt\",\r\n height: \"700pt\",\r\n maxWidth: \"1000pt\",\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n action,\r\n account: this.account,\r\n },\r\n });\r\n }\r\n\r\n setCities(idState: number) {\r\n this.filteredCities = this.citiesResponse.filter(\r\n (city) => city.department_ID === idState\r\n );\r\n }\r\n\r\n setStates(idCountry: number) {\r\n this.filteredStates = this.statesResponse.filter(\r\n (state) => state.country_ID === idCountry\r\n );\r\n }\r\n\r\n openConfirmAccountDialog(): void {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title: \"Save a New Account\",\r\n description: \"¿Are you sure you want to save a new account?\",\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n this.managementAccount();\r\n }\r\n });\r\n }\r\n\r\n getCountryName(countryId: number) {\r\n return this.countriesResponse?.find((country) => country.id === countryId)\r\n ?.country_Name;\r\n }\r\n\r\n getStateName(stateId: number) {\r\n return this.statesResponse?.find((state) => state.id === stateId)\r\n ?.department_Name;\r\n }\r\n\r\n getCityName(cityId: number) {\r\n return this.citiesResponse?.find((city) => city.id === cityId)?.city_Name;\r\n }\r\n\r\n private getAccounts() {\r\n this.spinner.show();\r\n this.loadForm = true;\r\n this.accountService.getAccounts().subscribe(\r\n (accounts: AccountModel[]) => {\r\n this.spinner.hide();\r\n this.accounts = accounts;\r\n if (this.idAccount) {\r\n this.account = accounts.find(\r\n (account) => account.idCompany === this.idAccount\r\n );\r\n }\r\n this.createAccountForm();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getLocalizations() {\r\n combineLatest([\r\n this.localizationService.currentCountries,\r\n this.localizationService.currentStates,\r\n this.localizationService.currentCities,\r\n ]).subscribe(([countries, states, cities]) => {\r\n if (countries !== null && states !== null && cities !== null) {\r\n this.countriesResponse = countries;\r\n this.statesResponse = states;\r\n this.citiesResponse = cities;\r\n }\r\n });\r\n }\r\n\r\n private getCompanyxContacts() {\r\n this.spinner.show();\r\n this.internalContactService.getCompanyxContacts(this.idAccount).subscribe(\r\n (contacts: AccountRelationalontactModel[]) => {\r\n this.spinner.hide();\r\n const contactIds = contacts.map(\r\n (contact) => contact.idContactInformationRecord\r\n );\r\n this.getRecordsIds(contactIds);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getRecordsIds(contacts: number[]) {\r\n this.spinner.show();\r\n this.internalContactService.getRecordsIds(contacts).subscribe(\r\n (contactRecords: InternalContactModel[]) => {\r\n this.spinner.hide();\r\n this.contactRecords = contactRecords;\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getCompanyXproject() {\r\n this.spinner.show();\r\n this.accountService\r\n .getCompanyXproject(this.idAccount)\r\n .subscribe((companyProjects: AccountCompanyProjectModel[]) => {\r\n const projects = companyProjects.map(\r\n (project) => project.projectNumber\r\n );\r\n this.getProjectsCompany(projects);\r\n });\r\n }\r\n\r\n private getProjectsCompany(companyProjects: string[]) {\r\n this.accountService\r\n .getProjectsCompany(companyProjects)\r\n .subscribe((projects: AccountProjectModel[]) => {\r\n this.relatedProjects = projects;\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n private managementAccount(): void {\r\n this.spinner.show();\r\n if (!this.idAccount) {\r\n this.accountService.createAccount(this.accountForm.value).subscribe(\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Account created successfully\");\r\n this.router.navigate([\"/home/accounts\"]);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error creating user\");\r\n }\r\n );\r\n } else {\r\n this.accountService.updateAccount(this.accountForm.value).subscribe(\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Account updated successfully\");\r\n this.router.navigate([\"/home/accounts\"]);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error updating user\");\r\n }\r\n );\r\n }\r\n }\r\n\r\n private createAccountForm() {\r\n this.accountForm = this.formBuilder.group({\r\n IdCompany: [this.account ? this.account.idCompany : 0],\r\n IdStatus: [this.account ? this.account.idStatus : true],\r\n CompanyName: [\r\n this.account ? this.account.companyName : \"\",\r\n Validators.required,\r\n ],\r\n CompanyAddress: [\r\n this.account ? this.account.companyAddress : \"\",\r\n Validators.required,\r\n ],\r\n PhoneCompany: [\r\n this.account ? this.account.phoneCompany : \"\",\r\n Validators.required,\r\n ],\r\n CompanyType: [this.account ? this.account.companyType : \"\"],\r\n IdCompanyMain: [this.account ? this.account.idCompanyMain : 0],\r\n GuidCompany: [this.account ? this.account.guidCompany : \"\"],\r\n TableName: [this.account ? this.account.tableName : \"Company\"],\r\n DateUpdate: [this.account ? this.account.dateUpdate : new Date()],\r\n UpdateUser: [\r\n this.account\r\n ? this.account.updateUser\r\n : sessionStorage.getItem(\"email\"),\r\n ],\r\n UpdateProgram: [\r\n this.account ? this.account.updateProgram : \"Production Web App\",\r\n ],\r\n Website: [this.account ? this.account.website : \"\", Validators.required],\r\n IdCountry: [\r\n this.account ? this.account.idCountry : \"\",\r\n Validators.required,\r\n ],\r\n IdState: [this.account ? this.account.idState : \"\", Validators.required],\r\n IdCity: [this.account ? this.account.idCity : \"\", Validators.required],\r\n Status: [this.account ? this.account.status : true],\r\n });\r\n if (this.idAccount) {\r\n this.setStates(this.account.idCountry);\r\n this.setCities(this.account.idState);\r\n }\r\n this.loadForm = false;\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { loadSideBarConfiguration } from \"src/app/utils/utils\";\r\n\r\n@Component({\r\n selector: \"app-advanced-settings\",\r\n templateUrl: \"./advanced-settings.component.html\",\r\n})\r\nexport class AdvancedSettingsComponent implements OnInit {\r\n showAdvancedSettings = true;\r\n type = false;\r\n selectedView: string;\r\n\r\n constructor(\r\n private readonly router: Router,\r\n private readonly authService: AuthService\r\n ) {\r\n router.events.subscribe((val) => {\r\n if (val[\"url\"] === \"/home/advanced-settings\") {\r\n this.showAdvancedSettings = true;\r\n if (sessionStorage.getItem(\"tipo\") === \"Interno\") {\r\n this.type = true;\r\n } else {\r\n this.type = false;\r\n }\r\n } else {\r\n this.showAdvancedSettings = false;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n loadSideBarConfiguration('btnMenuInternalAdvancedSettings');\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA,\r\n} from \"@angular/material/dialog\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { ConfirmDialogComponent } from \"src/app/components/confirm-dialog/confirm-dialog.component\";\r\nimport { AdvancedSettingsService } from \"src/app/services/admin-services/advanced-settings/advanced-settings.service\";\r\n\r\n@Component({\r\n selector: \"app-manage-rule-jobs\",\r\n templateUrl: \"./manage-rule-jobs.component.html\",\r\n})\r\nexport class ManageRuleJobsComponent implements OnInit {\r\n ruleJobForm: UntypedFormGroup;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly _advancedSettingsService: AdvancedSettingsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly dialog: MatDialog\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.createRuleJobForm();\r\n }\r\n\r\n openConfirmRuleJobDialog(): void {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title: \"Save a New Rule Job\",\r\n description: \"¿Are you sure you want to save a new rule job?\",\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n this.managementRuleJob();\r\n }\r\n });\r\n }\r\n\r\n private managementRuleJob(): void {\r\n this.spinner.show();\r\n this.ruleJobForm.patchValue({\r\n CountryName: this.data.countries.find(\r\n (country) => country.id === this.ruleJobForm.value.CountryID\r\n ).countryName,\r\n BusinessUnit: this.data.businessUnits.find(\r\n (businessUnit) =>\r\n businessUnit.id == this.ruleJobForm.value.BusinessUnitID\r\n ).nameUnit,\r\n SectorName: this.data.sectors.find(\r\n (sector) => sector.id == this.ruleJobForm.value.SectorID\r\n )?.name,\r\n JobManagerName: this.data.internalContacts.find(\r\n (contact) => contact.id == this.ruleJobForm.value.JobManagerID\r\n ).full_Name,\r\n JobManagerEmail: this.data.internalContacts.find(\r\n (contact) => contact.id == this.ruleJobForm.value.JobManagerID\r\n ).email,\r\n ProductionAdminName: this.data.internalContacts.find(\r\n (contact) => contact.id == this.ruleJobForm.value.ProductionAdminID\r\n ).full_Name,\r\n ProductionAdminEmail: this.data.internalContacts.find(\r\n (contact) => contact.id == this.ruleJobForm.value.ProductionAdminID\r\n ).email,\r\n });\r\n if (this.data.action === \"create\") {\r\n this._advancedSettingsService\r\n .createRuleJob(this.ruleJobForm.value)\r\n .subscribe(\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Rule Job created successfully\");\r\n this.dialogRef.close(true);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error creating role\");\r\n }\r\n );\r\n } else {\r\n this._advancedSettingsService\r\n .updateRuleJob(this.ruleJobForm.value)\r\n .subscribe(\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Rule Job updated successfully\");\r\n this.dialogRef.close(true);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error updating role\");\r\n }\r\n );\r\n }\r\n }\r\n\r\n private createRuleJobForm(): void {\r\n this.ruleJobForm = this.formBuilder.group({\r\n Id: [this.data.ruleJob ? this.data.ruleJob.id : 0],\r\n CountryName: [this.data.ruleJob ? this.data.ruleJob.countryName : \"\"],\r\n CountryID: [\r\n this.data.ruleJob ? this.data.ruleJob.countryId : \"\",\r\n Validators.required,\r\n ],\r\n BusinessUnit: [this.data.ruleJob ? this.data.ruleJob.businessUnit : \"\"],\r\n BusinessUnitID: [\r\n this.data.ruleJob ? this.data.ruleJob.businessUnitId : \"\",\r\n Validators.required,\r\n ],\r\n SectorName: [this.data.ruleJob ? this.data.ruleJob.sectorName : \"\"],\r\n SectorID: [this.data.ruleJob ? this.data.ruleJob.sectorId : null],\r\n JobManagerName: [\r\n this.data.ruleJob ? this.data.ruleJob.jobManagerName : \"\",\r\n ],\r\n JobManagerID: [\r\n this.data.ruleJob ? this.data.ruleJob.jobManagerId : \"\",\r\n Validators.required,\r\n ],\r\n JobManagerEmail: [\r\n this.data.ruleJob ? this.data.ruleJob.jobManagerEmail : \"\",\r\n ],\r\n ProductionAdminName: [\r\n this.data.ruleJob ? this.data.ruleJob.productionAdminName : \"\",\r\n ],\r\n ProductionAdminID: [\r\n this.data.ruleJob ? this.data.ruleJob.productionAdminId : \"\",\r\n Validators.required,\r\n ],\r\n ProductionAdminEmail: [\r\n this.data.ruleJob ? this.data.ruleJob.productionAdminEmail : \"\",\r\n ],\r\n Status: [true, Validators.required],\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { AdvancedSettingsCountryModel } from \"src/app/models/advanced-settings/country.model\";\r\nimport { AdvancedSettingsRuleJobModel } from \"src/app/models/advanced-settings/rule-job.model\";\r\nimport { MasterInternalContactModel } from \"src/app/models/contacts/internal-contact.model\";\r\nimport { MasterBusinessUnitModel } from \"src/app/models/master/business-unit.model\";\r\nimport { MasterSectorModel } from \"src/app/models/master/sector.model\";\r\nimport { AdvancedSettingsService } from \"src/app/services/admin-services/advanced-settings/advanced-settings.service\";\r\nimport { InternalWorksService } from \"src/app/services/admin-services/works/internal-works.service\";\r\nimport { MasterService } from \"src/app/services/master/master.service\";\r\nimport { ManageRuleJobsComponent } from \"./manage-rule-jobs/manage-rule-jobs.component\";\r\nimport {\r\n InternalPropertiesService\r\n} from \"../../../../../services/admin-services/properties/internal-properties.service\";\r\n\r\n@Component({\r\n selector: \"app-rule-jobs\",\r\n templateUrl: \"./rule-jobs.component.html\",\r\n})\r\nexport class RuleJobsComponent implements OnInit {\r\n countries: AdvancedSettingsCountryModel[];\r\n internalContacts: MasterInternalContactModel[];\r\n sectors: any[];\r\n businessUnits: MasterBusinessUnitModel[];\r\n ruleJobs: AdvancedSettingsRuleJobModel[];\r\n\r\n constructor(\r\n private readonly dialog: MatDialog,\r\n private readonly _advancedSettingsService: AdvancedSettingsService,\r\n private readonly masterServices: MasterService,\r\n private readonly internalJobsService: InternalWorksService,\r\n private readonly internalPropertiesService: InternalPropertiesService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getCountries();\r\n this.getPropertiesType();\r\n this.getbusinessUnits();\r\n this.getInternalContacts();\r\n this.getRulesJobs();\r\n }\r\n\r\n openManageRuleJobsDialog(action?: string, ruleJob?: any) {\r\n const dialogRef = this.dialog.open(ManageRuleJobsComponent, {\r\n width: \"850pt\",\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n ruleJob,\r\n action,\r\n countries: this.countries.sort((a, b) => a.countryName.localeCompare(b.countryName)),\r\n internalContacts: this.internalContacts,\r\n sectors: this.sectors,\r\n businessUnits: this.businessUnits,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.getRulesJobs();\r\n }\r\n });\r\n }\r\n\r\n private getInternalContacts() {\r\n this.spinner.show();\r\n this.internalJobsService.getInternalContacts().subscribe(\r\n (contacts) => {\r\n this.internalContacts = contacts;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getCountries() {\r\n this.spinner.show();\r\n this._advancedSettingsService.getCountries().subscribe(\r\n (countries: AdvancedSettingsCountryModel[]) => {\r\n this.countries = countries;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getPropertiesType() {\r\n this.spinner.show();\r\n this.internalPropertiesService.getPropertiesType().subscribe(\r\n (sectors: any[]) => {\r\n this.spinner.hide();\r\n this.sectors = sectors;\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getbusinessUnits() {\r\n this.spinner.show();\r\n this.masterServices.getBusinessUnits().subscribe(\r\n (businessUnits: MasterBusinessUnitModel[]) => {\r\n this.spinner.hide();\r\n this.businessUnits = businessUnits;\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getRulesJobs() {\r\n this.spinner.show();\r\n this._advancedSettingsService.getRulesJobs().subscribe(\r\n (rulesJobs: AdvancedSettingsRuleJobModel[]) => {\r\n this.spinner.hide();\r\n this.ruleJobs = rulesJobs;\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { AdvacedSettingsFeatureModel } from \"src/app/models/advanced-settings/feature.model\";\r\nimport { AdvancedSettingsService } from \"src/app/services/admin-services/advanced-settings/advanced-settings.service\";\r\nimport { ManageFeaturesDialogComponent } from \"./manage-features-dialog/manage-features-dialog.component\";\r\n\r\n@Component({\r\n selector: \"app-features\",\r\n templateUrl: \"./features.component.html\",\r\n})\r\nexport class FeaturesComponent implements OnInit {\r\n features: AdvacedSettingsFeatureModel[];\r\n\r\n constructor(\r\n private readonly dialog: MatDialog,\r\n private readonly _advancedSettingsService: AdvancedSettingsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getAllFeatures();\r\n }\r\n\r\n openManageFeatureDialog(action?: string, feature?: any) {\r\n const dialogRef = this.dialog.open(ManageFeaturesDialogComponent, {\r\n width: \"850pt\",\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n feature,\r\n action,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.getAllFeatures();\r\n }\r\n });\r\n }\r\n\r\n private getAllFeatures() {\r\n this.spinner.show();\r\n this._advancedSettingsService.getAllFeatures().subscribe(\r\n (features: AdvacedSettingsFeatureModel[]) => {\r\n this.features = features;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA,\r\n} from \"@angular/material/dialog\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { ConfirmDialogComponent } from \"src/app/components/confirm-dialog/confirm-dialog.component\";\r\nimport { AdvancedSettingsService } from \"src/app/services/admin-services/advanced-settings/advanced-settings.service\";\r\n\r\n@Component({\r\n selector: \"app-manage-features-dialog\",\r\n templateUrl: \"./manage-features-dialog.component.html\",\r\n})\r\nexport class ManageFeaturesDialogComponent implements OnInit {\r\n featureForm: UntypedFormGroup;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly _advancedSettingsService: AdvancedSettingsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly dialog: MatDialog\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.createFeatureForm();\r\n }\r\n\r\n openConfirmFeatureDialog(): void {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title: \"Save a New Feature\",\r\n description: \"¿Are you sure you want to save a new feature?\",\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n this.managementFeature();\r\n }\r\n });\r\n }\r\n\r\n private managementFeature(): void {\r\n this.spinner.show();\r\n if (this.data.action === \"create\") {\r\n this._advancedSettingsService\r\n .createFeature(this.featureForm.value)\r\n .subscribe(\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Feature created successfully\");\r\n this.dialogRef.close(true);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error creating role\");\r\n }\r\n );\r\n } else {\r\n this._advancedSettingsService\r\n .updateFeature(this.featureForm.value)\r\n .subscribe(\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Feature updated successfully\");\r\n this.dialogRef.close(true);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error updating role\");\r\n }\r\n );\r\n }\r\n }\r\n\r\n private createFeatureForm(): void {\r\n this.featureForm = this.formBuilder.group({\r\n Id: [this.data.feature ? this.data.feature.id : 0],\r\n FeatureName: [\r\n this.data.feature ? this.data.feature.featureName : \"\",\r\n Validators.required,\r\n ],\r\n Created: [this.data.feature ? this.data.feature.created : new Date()],\r\n Status: [this.data.feature ? this.data.feature.status : true],\r\n });\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA,\r\n} from \"@angular/material/dialog\";\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { AdvancedSettingsService } from \"src/app/services/admin-services/advanced-settings/advanced-settings.service\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { ConfirmDialogComponent } from \"src/app/components/confirm-dialog/confirm-dialog.component\";\r\n\r\n@Component({\r\n selector: \"app-manage-security-roles-dialog\",\r\n templateUrl: \"./manage-security-roles-dialog.component.html\",\r\n})\r\nexport class ManageSecurityRolesDialogComponent implements OnInit {\r\n rolForm: UntypedFormGroup;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly _advancedSettingsService: AdvancedSettingsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly dialog: MatDialog\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.createRolForm();\r\n }\r\n\r\n openConfirmRoleDialog(): void {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title: \"Save a New Role\",\r\n description: \"¿Are you sure you want to save a new role?\",\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n this.managementRole();\r\n }\r\n });\r\n }\r\n\r\n managementRole(): void {\r\n this.rolForm.get(\"Id\").enable();\r\n this.spinner.show();\r\n this.rolForm\r\n .get(\"Id\")\r\n .setValue(this.data.rol ? +this.data.rol.id : +this.rolForm.value.Id);\r\n if (this.data.action === \"create\") {\r\n this._advancedSettingsService.createRol(this.rolForm.value).subscribe(\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Role created successfully\");\r\n this.dialogRef.close(true);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error creating role\");\r\n }\r\n );\r\n } else {\r\n this._advancedSettingsService.updateRol(this.rolForm.value).subscribe(\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Role updated successfully\");\r\n this.dialogRef.close(true);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error updating role\");\r\n }\r\n );\r\n }\r\n }\r\n\r\n private createRolForm(): void {\r\n this.rolForm = this.formBuilder.group({\r\n Id: [\r\n this.data.rol ? this.data.rol.id : this.data.lastId + 1,\r\n Validators.required,\r\n ],\r\n Rol_Name: [\r\n this.data.rol ? this.data.rol.rol_Name : \"\",\r\n Validators.required,\r\n ],\r\n Status: [this.data.rol ? this.data.rol.status : true],\r\n FeaturesId: this.formBuilder.array([]),\r\n });\r\n this.rolForm.get(\"Id\").disable();\r\n this.addNewFeatures();\r\n }\r\n\r\n get features(): UntypedFormArray {\r\n return this.rolForm.get(\"FeaturesId\") as UntypedFormArray;\r\n }\r\n\r\n private addNewFeatures() {\r\n if (this.data.rol) {\r\n this.data.rol.featuresId.forEach((feature) => {\r\n const featureName = this.data.features.find(\r\n (f) => f.id === feature.idFeature\r\n ).featureName;\r\n this.features.push(\r\n this.formBuilder.group({\r\n IdFeatureRelationshipRoles: 0,\r\n IdRol: 0,\r\n IdFeature: feature.idFeature,\r\n Create: feature.create,\r\n Read: feature.read,\r\n Write: feature.write,\r\n Delete: feature.delete,\r\n Status: true,\r\n Name: featureName,\r\n })\r\n );\r\n });\r\n } else {\r\n this.data.features.forEach((feature) => {\r\n this.features.push(\r\n this.formBuilder.group({\r\n IdFeatureRelationshipRoles: 0,\r\n IdRol: 0,\r\n IdFeature: feature.id,\r\n Create: false,\r\n Read: false,\r\n Write: false,\r\n Delete: false,\r\n Status: false,\r\n Name: feature.featureName,\r\n })\r\n );\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { AdvacedSettingsFeatureModel } from \"src/app/models/advanced-settings/feature.model\";\r\nimport { AdvancedSettingsRoleModel } from \"src/app/models/advanced-settings/role.model\";\r\nimport { AdvancedSettingsService } from \"src/app/services/admin-services/advanced-settings/advanced-settings.service\";\r\nimport { ManageSecurityRolesDialogComponent } from \"./manage-security-roles-dialog/manage-security-roles-dialog.component\";\r\n\r\n@Component({\r\n selector: \"app-security-roles\",\r\n templateUrl: \"./security-roles.component.html\",\r\n})\r\nexport class SecurityRolesComponent implements OnInit {\r\n roles: AdvancedSettingsRoleModel[];\r\n features: AdvacedSettingsFeatureModel[];\r\n\r\n constructor(\r\n private readonly dialog: MatDialog,\r\n private readonly _advancedSettingsService: AdvancedSettingsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getRoles();\r\n this.getFeatures();\r\n }\r\n\r\n openManageRolDialog(action?: string, rol?: AdvancedSettingsRoleModel) {\r\n const dialogRef = this.dialog.open(ManageSecurityRolesDialogComponent, {\r\n width: \"850pt\",\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n rol,\r\n action,\r\n lastId: this.roles[this.roles.length - 1].id,\r\n features: this.features\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.getRoles();\r\n }\r\n });\r\n }\r\n\r\n private getFeatures() {\r\n this.spinner.show();\r\n this._advancedSettingsService.getRolesFeatures().subscribe(\r\n (features: any[]) => {\r\n this.features = features;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getRoles() {\r\n this.spinner.show();\r\n this._advancedSettingsService.getAllRoles().subscribe(\r\n (roles: AdvancedSettingsRoleModel[]) => {\r\n this.roles = roles;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { AdvancedSettingsService } from \"src/app/services/admin-services/advanced-settings/advanced-settings.service\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { UserTenatModel } from \"src/app/models/advanced-settings/user-info-graph.model\";\r\nimport { ConfirmDialogComponent } from \"src/app/components/confirm-dialog/confirm-dialog.component\";\r\nimport { AccountRelationalontactModel } from \"../../../../../../models/accounts/relational-contact.model\";\r\nimport {\r\n InternalContactsService\r\n} from \"../../../../../../services/admin-services/internal-contacts/internal-contacts.service\";\r\nimport { InternalContactModel } from \"../../../../../../models/internal-contacts/internal-contact.model\";\r\n\r\n@Component({\r\n selector: \"app-manage-user-dialog\",\r\n templateUrl: \"./manage-user-dialog.component.html\",\r\n})\r\nexport class ManageUserDialogComponent implements OnInit {\r\n userForm: UntypedFormGroup;\r\n isInternal = false;\r\n isCheckAutomaticPassword = false;\r\n isSendEmail = false;\r\n externalEmail: string;\r\n filteredSubtypes = [];\r\n users: UserTenatModel[];\r\n contactRecords: InternalContactModel[];\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly _advancedSettingsService: AdvancedSettingsService,\r\n private readonly internalContactService: InternalContactsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly dialog: MatDialog\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.createUserForm();\r\n this.getUsersTenat();\r\n this.manageOnChangeValues();\r\n }\r\n\r\n\r\n openConfirmUserDialog(): void {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title: \"Save a New User\",\r\n description: \"¿Are you sure you want to save a new user?\",\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n this.managementUser();\r\n }\r\n });\r\n }\r\n\r\n getSubtypeName(subtypeValue: number): string {\r\n return this.data.subtypes.find(\r\n (subtype) => subtype.idSubTypeUser === subtypeValue\r\n )?.subTypeUserName;\r\n }\r\n\r\n getActiveDirectoryUserInfo(userId: number): void {\r\n let userTenant = this.users?.find((u) => u.id === userId);\r\n if (userTenant) {\r\n this.userForm.get(\"First_Name\").setValue(userTenant.givenName);\r\n this.userForm.get(\"Last_Name\").setValue(userTenant.surname);\r\n this.userForm.get(\"Full_Name\").setValue(userTenant.displayName);\r\n this.userForm.get(\"Email\").setValue(userTenant.mail);\r\n this.userForm.get(\"Job_Title\").setValue(userTenant.jobTitle);\r\n this.userForm.get(\"Movil_Phone\").setValue(userTenant.mobilePhone);\r\n this.userForm.get(\"Address\").setValue(userTenant.officeLocation);\r\n this.userForm.get(\"Type_User\").setValue(1);\r\n }\r\n }\r\n\r\n roleName(id: number): string {\r\n return this.data.roles.find((r) => r.id === id)?.rolName;\r\n }\r\n\r\n generatePassword(event): void {\r\n if (event.checked) {\r\n this.isCheckAutomaticPassword = true;\r\n const randomstring = Math.random().toString(36).slice(-8);\r\n this.userForm.get(\"Password_value\").clearValidators();\r\n this.userForm.get(\"Password_value\").setValue(randomstring);\r\n } else {\r\n this.isCheckAutomaticPassword = false;\r\n this.userForm.get(\"Password_value\").setValue(\"\");\r\n this.userForm.get(\"Password_value\").setValidators([Validators.required]);\r\n this.userForm.get(\"Password_value\").updateValueAndValidity();\r\n }\r\n }\r\n\r\n managementUser(): void {\r\n this.userForm.get(\"Rol_Name\").setValue(this.roleName(this.userForm.value.RolesId));\r\n this.userForm.get(\"RolesId\").setValue([this.userForm.value.RolesId]);\r\n this.userForm.removeControl(\"ActiveDirectory\");\r\n this.userForm.get(\"Status_value\").setValue(this.userForm.value.Status_value ? \"Activo\" : \"Inactivo\");\r\n this.spinner.show();\r\n if (this.data.action === \"create\") {\r\n this._advancedSettingsService\r\n .createContact(this.userForm.value)\r\n .subscribe(\r\n (response: any) => {\r\n if (response.statusCode === \"428\" ) {\r\n this.spinner.hide();\r\n this.toastr.error(\"User already exists\");\r\n } else if ( this.isSendEmail ) {\r\n this.sendEmail( \"created\" );\r\n } else {\r\n this.spinner.hide();\r\n this.toastr.success( \"User created successfully\" );\r\n this.dialogRef.close( true );\r\n }\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error creating user\");\r\n }\r\n );\r\n } else {\r\n this._advancedSettingsService\r\n .updateContact(this.userForm.value)\r\n .subscribe(\r\n () => {\r\n if (this.isSendEmail) {\r\n this.sendEmail(\"updated\");\r\n } else {\r\n this.spinner.hide();\r\n this.toastr.success(\"User updated successfully\");\r\n this.dialogRef.close(true);\r\n }\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error updating user\");\r\n }\r\n );\r\n }\r\n }\r\n\r\n private getCompanyxContacts(idCompany: number) {\r\n this.spinner.show();\r\n this.internalContactService.getCompanyxContacts(idCompany).subscribe(\r\n (contacts: AccountRelationalontactModel[]) => {\r\n this.spinner.hide();\r\n const contactIds = contacts.map(\r\n (contact) => contact.idContactInformationRecord\r\n );\r\n this.getRecordsIds(contactIds);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\r\n `Error getting contacts for the company with id ${idCompany}`,\r\n \"Error\"\r\n );\r\n }\r\n );\r\n }\r\n\r\n private getRecordsIds(contacts: number[]) {\r\n this.spinner.show();\r\n this.internalContactService.getRecordsIds(contacts).subscribe(\r\n (contactRecords: InternalContactModel[]) => {\r\n this.spinner.hide();\r\n this.contactRecords = contactRecords;\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private validateTypeUser(typeValue: number): void {\r\n if (typeValue === 1) {\r\n this.isInternal = true;\r\n this.userForm.get(\"Status_value\").setValue(true);\r\n } else if (typeValue === 2) {\r\n this.isInternal = false;\r\n this.userForm.get(\"Password_value\").updateValueAndValidity();\r\n this.userForm.get(\"Status_value\").setValue(true);\r\n }\r\n }\r\n\r\n private typeUserChange(): void {\r\n this.userForm.get(\"Type_User\").valueChanges.subscribe((type) => {\r\n if (type === 2) {\r\n this.userForm.get(\"Guid_Company\").setValidators(Validators.required);\r\n this.userForm.get(\"Guid_Company\").updateValueAndValidity();\r\n this.userForm.get(\"Password_value\").setValidators([Validators.required]);\r\n this.userForm.get(\"Password_value\").updateValueAndValidity();\r\n } else {\r\n this.externalEmail = null;\r\n this.userForm.get(\"Guid_Company\").setValue(null);\r\n this.userForm.get(\"Guid_Company\").clearValidators();\r\n this.userForm.get(\"Guid_Company\").updateValueAndValidity();\r\n this.userForm.get(\"Password_value\").setValue(null);\r\n this.userForm.get(\"Password_value\").clearValidators();\r\n this.userForm.get(\"Password_value\").updateValueAndValidity();\r\n }\r\n\r\n this.filteredSubtypes = this.data.subtypes.filter(\r\n (subtype) => subtype.idTypeUser !== type\r\n );\r\n this.validateTypeUser(type);\r\n });\r\n }\r\n\r\n private createUserForm(): void {\r\n const status = this.data.user?.status_value === \"Activo\" ? true : false;\r\n if (this.data.action === \"edit\") {\r\n this.filteredSubtypes = this.data.subtypes.filter(\r\n (subtype) => subtype.idTypeUser !== this.data?.user?.type_User\r\n );\r\n }\r\n\r\n this.userForm = this.formBuilder.group({\r\n Id: [this.data.user ? this.data.user.id : 0],\r\n ActiveDirectory: [\"\"],\r\n First_Name: [\r\n this.data.user ? this.data.user.first_Name : \"\",\r\n Validators.required,\r\n ],\r\n Last_Name: [\r\n this.data.user ? this.data.user.last_Name : \"\",\r\n Validators.required,\r\n ],\r\n Full_Name: [\r\n this.data.user ? this.data.user.full_Name : \"\",\r\n Validators.required,\r\n ],\r\n Email: [this.data.user ? this.data.user.email : \"\", Validators.required],\r\n Company_Name: [this.data.user ? this.data.user.company_Name : \"\"],\r\n Business_Phone: [\r\n this.data.user ? this.data.user.business_Phone : \"\",\r\n Validators.required,\r\n ],\r\n Project_Number: [this.data.user ? this.data.user.project_Number : \"\"],\r\n City: [this.data.user ? this.data.user.city : \"\", Validators.required],\r\n Department: [this.data.user ? this.data.user.department : \"\"],\r\n Country: [\r\n this.data.user ? this.data.user.country : \"\",\r\n Validators.required,\r\n ],\r\n Job_Title: [\r\n this.data.user ? this.data.user.job_Title : \"\",\r\n Validators.required,\r\n ],\r\n Status_value: [status, Validators.required],\r\n Rol_Name: [this.data.user ? this.roleName(this.data.user.rolesId[0]) : \"\"],\r\n Guid_value: [this.data.user ? this.data.user.guid_value : \"\"],\r\n Guid_Company: [this.data.user ? this.data.user.guid_Company : \"\"],\r\n Account_Officer: [this.data.user ? this.data.user.account_Officer : \"\"],\r\n Password_value: [this.data.user ? this.data.user.password_value : \"\"],\r\n Created: [this.data.user ? this.data.user.created : new Date()],\r\n Type_User: [this.data.user ? this.data.user.type_User : \"\"],\r\n Subtype: [this.data.user ? this.data.user.subtype : \"\"],\r\n Existing_User: [this.data.user ? this.data.user.existing_User : \"\"],\r\n Movil_Phone: [\r\n this.data.user ? this.data.user.movil_Phone : \"\"\r\n ],\r\n Address: [\r\n this.data.user ? this.data.user.address : \"\",\r\n Validators.required,\r\n ],\r\n RolesId: [this.data.user ? this.data.user.rolesId[0] : [], Validators.required],\r\n });\r\n\r\n this.typeUserChange();\r\n this.validateTypeUser(this.userForm.value.Type_User);\r\n }\r\n\r\n private sendEmail(action: string) {\r\n const data = {\r\n usuario: this.externalEmail,\r\n clave: this.userForm.value.Password_value,\r\n };\r\n this.spinner.show();\r\n this._advancedSettingsService.sendEmail(data).subscribe(\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.success(`User ${action} and Email sent successfully`);\r\n this.dialogRef.close(true);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error creating or sending email\");\r\n }\r\n );\r\n }\r\n\r\n private getUsersTenat(): void {\r\n this._advancedSettingsService.getUsersTenant().subscribe(\r\n (users: UserTenatModel[]) => {\r\n this.users = users || [];\r\n },\r\n () => {\r\n this.toastr.error(\"Error getting users\");\r\n }\r\n );\r\n }\r\n\r\n private manageOnChangeValues(): void {\r\n this.userForm.get(\"Guid_Company\").valueChanges.subscribe((guidCompany) => {\r\n const idCompany = this.data.accounts.find((account) => account.guidCompany === guidCompany)?.idCompany;\r\n if (idCompany) {\r\n this.getCompanyxContacts(idCompany);\r\n }\r\n });\r\n\r\n this.userForm.get(\"Existing_User\").valueChanges.subscribe((existingUser) => {\r\n this.userForm.patchValue({\r\n First_Name: existingUser.firstName,\r\n Last_Name: existingUser.lastName,\r\n Full_Name: `${existingUser.firstName} ${existingUser.lastName}`,\r\n Email: existingUser.email,\r\n Job_Title: existingUser.title,\r\n Movil_Phone: existingUser.phoneNumber1,\r\n Business_Phone: existingUser.phoneNumber2,\r\n Address: existingUser.address1,\r\n Country: this.data.countries.find((country) => country.id === existingUser.idCountry)?.countryName,\r\n City: this.data.cities.find((city) => city.id === existingUser.idCity)?.cityName,\r\n });\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ManageUserDialogComponent } from \"./manage-user-dialog/manage-user-dialog.component\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { AdvacedSettingsContactModel } from \"src/app/models/advanced-settings/contact.model\";\r\nimport { AdvancedSettingsService } from \"src/app/services/admin-services/advanced-settings/advanced-settings.service\";\r\nimport { AdvancedSettingsCityModel } from \"../../../../../models/advanced-settings/city.model\";\r\nimport { AdvancedSettingsCountryModel } from \"../../../../../models/advanced-settings/country.model\";\r\nimport { AdvancedSettingsRoleModel } from \"src/app/models/advanced-settings/role.model\";\r\nimport { AdvancedSettingsTypeModel } from '../../../../../models/advanced-settings/type.model';\r\nimport { AdvancedSettingsSubtypeModel } from '../../../../../models/advanced-settings/subtype.model';\r\nimport { AccountModel } from \"../../../../../models/accounts/account.model\";\r\nimport { AccountsService } from \"../../../../../services/admin-services/accounts/accounts.service\";\r\n\r\n@Component({\r\n selector: \"app-users\",\r\n templateUrl: \"./users.component.html\",\r\n})\r\nexport class UsersComponent implements OnInit {\r\n contacts: AdvacedSettingsContactModel[];\r\n countries: AdvancedSettingsCountryModel[];\r\n cities: AdvancedSettingsCityModel[];\r\n roles: AdvancedSettingsRoleModel[];\r\n types: AdvancedSettingsTypeModel[];\r\n subtypes: AdvancedSettingsSubtypeModel[];\r\n accounts: AccountModel[];\r\n\r\n constructor(\r\n private readonly dialog: MatDialog,\r\n private readonly _advancedSettingsService: AdvancedSettingsService,\r\n private readonly _accountService: AccountsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getContacts();\r\n this.getCities();\r\n this.getCountries();\r\n this.getRoles();\r\n this.getSubtypes();\r\n this.getTypes();\r\n this.getAccounts();\r\n }\r\n\r\n openManageUserDialog(action?: string, user?: AdvacedSettingsContactModel) {\r\n const dialogRef = this.dialog.open(ManageUserDialogComponent, {\r\n width: \"850pt\",\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n user,\r\n action,\r\n countries: this.countries,\r\n cities: this.cities,\r\n roles: this.roles,\r\n types: this.types,\r\n subtypes: this.subtypes,\r\n accounts: this.accounts,\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.getContacts();\r\n }\r\n });\r\n }\r\n\r\n getSubtypeName(subtypeId: number) {\r\n return this.subtypes?.find(x => x.idSubTypeUser == subtypeId)?.subTypeUserName;\r\n }\r\n\r\n private getContacts() {\r\n this.spinner.show();\r\n this._advancedSettingsService.getContacts().subscribe(\r\n (contacs: AdvacedSettingsContactModel[]) => {\r\n this.contacts = contacs;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getCities() {\r\n this.spinner.show();\r\n this._advancedSettingsService.getCities().subscribe(\r\n (cities: AdvancedSettingsCityModel[]) => {\r\n this.cities = cities;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getCountries() {\r\n this.spinner.show();\r\n this._advancedSettingsService.getCountries().subscribe(\r\n (countries: AdvancedSettingsCountryModel[]) => {\r\n this.countries = countries;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getRoles() {\r\n this.spinner.show();\r\n this._advancedSettingsService.getRoles().subscribe(\r\n (roles: AdvancedSettingsRoleModel[]) => {\r\n this.roles = roles;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getSubtypes() {\r\n this.spinner.show();\r\n this._advancedSettingsService.getSubtypes().subscribe(\r\n (subtypes: AdvancedSettingsSubtypeModel[]) => {\r\n this.subtypes = subtypes;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getTypes() {\r\n this.spinner.show();\r\n this._advancedSettingsService.getTypes().subscribe(\r\n (types: AdvancedSettingsTypeModel[]) => {\r\n this.types = types;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\", {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n });\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getAccounts() {\r\n this.spinner.show();\r\n this._accountService.getAccounts().subscribe(\r\n (accounts: AccountModel[]) => {\r\n this.accounts = accounts;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-advances',\r\n templateUrl: './advances.component.html'\r\n})\r\nexport class AdvancesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.loadSideBarConfiguration();\r\n }\r\n\r\n loadSideBarConfiguration() {\r\n let sidebar = document.querySelector(\".sidebar\");\r\n let closeBtn = document.querySelector(\"#btnMenuInternalProjects\");\r\n\r\n closeBtn.addEventListener(\"click\", () => {\r\n sidebar.classList.toggle(\"open\");\r\n menuBtnChange();\r\n });\r\n\r\n function menuBtnChange() {\r\n if (sidebar.classList.contains(\"open\")) {\r\n closeBtn.classList.replace(\"bx-menu\", \"bx-menu-alt-right\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-14\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-3\");\r\n } else {\r\n closeBtn.classList.replace(\"bx-menu-alt-right\", \"bx-menu\");\r\n document.querySelector(\".margin-screen\").classList.add(\"md:ml-3\");\r\n document.querySelector(\".margin-screen\").classList.remove(\"md:ml-14\");\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { CanComponentDeactivate } from 'src/app/config/prevent-change-route/prevent-change-route.guard';\r\nimport Swal from 'sweetalert2'\r\n\r\n@Component({\r\n selector: 'app-companyname',\r\n templateUrl: './companyname.component.html'\r\n})\r\nexport class CompanynameComponent implements OnInit, CanComponentDeactivate {\r\n\r\n companyNameForm: UntypedFormGroup;\r\n\r\n constructor() { }\r\n\r\n async validateForm(): Promise {\r\n if (this.companyNameForm.dirty) {\r\n const confirm = await Swal.fire({\r\n title: '¿Estás seguro que deseas salir?',\r\n text: \"Perderas los cambios si sales de la página\",\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n cancelButtonText: 'No, deseo quedarme',\r\n confirmButtonText: 'Si, deseo salir'\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n });\r\n return confirm;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n companyForm(event) {\r\n this.companyNameForm = event;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CanComponentDeactivate } from 'src/app/config/prevent-change-route/prevent-change-route.guard';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport Swal from 'sweetalert2'\r\n\r\n@Component({\r\n selector: 'app-contacts',\r\n templateUrl: './contacts.component.html'\r\n})\r\nexport class ContactsComponent implements OnInit, CanComponentDeactivate {\r\n\r\n formContact: UntypedFormGroup;\r\n\r\n constructor() { }\r\n\r\n async validateForm(): Promise {\r\n if (this.formContact.dirty) {\r\n const confirm = await Swal.fire({\r\n title: '¿Estás seguro que deseas salir?',\r\n text: \"Perderas los cambios si sales de la página\",\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n cancelButtonText: 'No, deseo quedarme',\r\n confirmButtonText: 'Si, deseo salir'\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n });\r\n return confirm;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n contactForm(event) {\r\n this.formContact = event;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { loadSideBarConfiguration } from \"src/app/utils/utils\";\r\nimport { InternalContactsService } from \"../../../services/admin-services/internal-contacts/internal-contacts.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { InternalContactModel } from \"../../../models/internal-contacts/internal-contact.model\";\r\nimport { AccountsService } from \"src/app/services/admin-services/accounts/accounts.service\";\r\nimport { AccountModel } from \"src/app/models/accounts/account.model\";\r\nimport { combineLatest } from \"rxjs\";\r\nimport { LocalizationsService } from \"src/app/services/localizations/localizations.service\";\r\nimport { CountryResponse } from \"src/app/models/localizations/country.reponse.model\";\r\nimport { StateResponse } from \"src/app/models/localizations/state.response.model\";\r\nimport { CityResponse } from \"src/app/models/localizations/city.response.model\";\r\nimport { BreadcrumbService } from \"xng-breadcrumb\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\n\r\n@Component({\r\n selector: \"app-internal-contacts\",\r\n templateUrl: \"./internal-contacts.component.html\",\r\n})\r\nexport class InternalContactsComponent implements OnInit {\r\n @ViewChild(MatPaginator)\r\n set paginator(pagination: MatPaginator) {\r\n this.dataSource.paginator = pagination;\r\n }\r\n displayedColumns: string[] = [\r\n \"actions\",\r\n \"firstName\",\r\n \"lastName\",\r\n \"contactClass\",\r\n \"jobTitle\",\r\n \"accountName\",\r\n \"email\",\r\n \"businessPhone\",\r\n \"mobilePhone\",\r\n \"country\",\r\n \"status\",\r\n ];\r\n dataSource = new MatTableDataSource();\r\n internalContacts: InternalContactModel[];\r\n accounts: AccountModel[];\r\n countriesResponse: CountryResponse[];\r\n statesResponse: StateResponse[];\r\n citiesResponse: CityResponse[];\r\n showInternalContacts = true;\r\n type = false;\r\n\r\n constructor(\r\n private readonly authService: AuthService,\r\n private readonly internalContactService: InternalContactsService,\r\n private readonly accountService: AccountsService,\r\n private readonly localizationService: LocalizationsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly router: Router,\r\n private readonly breadcrumbService: BreadcrumbService\r\n ) {\r\n breadcrumbService.breadcrumbs$.subscribe((breadCrumbs) => {\r\n if (breadCrumbs.length == 2 && breadCrumbs[1].label == \"Contacts\") {\r\n this.getInternalContactsCache();\r\n }\r\n });\r\n router.events.subscribe((val) => {\r\n if (val[\"url\"] === \"/home/internal-contacts\") {\r\n this.showInternalContacts = true;\r\n this.type = sessionStorage.getItem( \"tipo\" ) === \"Interno\";\r\n } else {\r\n this.showInternalContacts = false;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n loadSideBarConfiguration(\"btnMenuInternalContacts\");\r\n this.getAccounts();\r\n this.getLocalizations();\r\n }\r\n\r\n getInternalContacts() {\r\n this.spinner.show();\r\n this.internalContactService.getInternalContacts().subscribe(\r\n (contacts: InternalContactModel[]) => {\r\n this.internalContacts = contacts;\r\n this.internalContactService.setInternalContacts(contacts);\r\n this.dataSource.data = contacts;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n\r\n getCountryName(countryId: number) {\r\n return this.countriesResponse?.find((country) => country.id === countryId)\r\n ?.country_Name;\r\n }\r\n\r\n getAccountName(id: number) {\r\n const account = this.accounts?.find((x) => x.idCompany === id);\r\n return account ? account.companyName : \"\";\r\n }\r\n\r\n private getLocalizations() {\r\n combineLatest([\r\n this.localizationService.currentCountries,\r\n this.localizationService.currentStates,\r\n this.localizationService.currentCities,\r\n ]).subscribe(([countries, states, cities]) => {\r\n if (countries !== null && states !== null && cities !== null) {\r\n this.countriesResponse = countries;\r\n this.statesResponse = states;\r\n this.citiesResponse = cities;\r\n }\r\n });\r\n }\r\n\r\n private getAccounts() {\r\n this.spinner.show();\r\n this.accountService.getAccounts().subscribe(\r\n (accounts: AccountModel[]) => {\r\n this.spinner.hide();\r\n this.accounts = accounts;\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getInternalContactsCache() {\r\n this.spinner.show();\r\n this.internalContactService.currentInternalContacts.subscribe({\r\n next: (contacts: InternalContactModel[]) => {\r\n if (contacts !== null) {\r\n this.internalContacts = contacts;\r\n this.dataSource.data = contacts;\r\n this.spinner.hide();\r\n } else {\r\n this.getInternalContacts();\r\n }\r\n },\r\n });\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport {\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} from \"@angular/forms\";\r\nimport {\r\n MatDialog,\r\n MAT_DIALOG_DATA,\r\n MatDialogRef,\r\n} from \"@angular/material/dialog\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { CityResponse } from \"src/app/models/localizations/city.response.model\";\r\nimport { CountryResponse } from \"src/app/models/localizations/country.reponse.model\";\r\nimport { StateResponse } from \"src/app/models/localizations/state.response.model\";\r\nimport { LocalizationsService } from \"src/app/services/localizations/localizations.service\";\r\nimport { combineLatest } from \"rxjs\";\r\nimport { InternalContactsService } from \"../../../../services/admin-services/internal-contacts/internal-contacts.service\";\r\nimport { InternalContactModel } from \"../../../../models/internal-contacts/internal-contact.model\";\r\nimport { ConfirmDialogComponent } from \"src/app/components/confirm-dialog/confirm-dialog.component\";\r\nimport { MasterService } from \"../../../../services/master/master.service\";\r\nimport { MasterContactClassModel } from \"src/app/models/master/contact-class.model\";\r\nimport { AccountsService } from \"src/app/services/admin-services/accounts/accounts.service\";\r\nimport { AccountModel } from \"src/app/models/accounts/account.model\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { InternalContactPropertyModel } from \"src/app/models/internal-contacts/proprety-contact.model\";\r\nimport { InternalContactJobModel } from \"src/app/models/internal-contacts/job-contact.model\";\r\nimport { PropertyModel } from \"src/app/models/properties/property.model\";\r\nimport { JobModel } from \"src/app/models/works/job.model\";\r\nimport { InternalContactProjectModel } from \"src/app/models/internal-contacts/project-contact.model\";\r\nimport { ProjectResponse } from \"src/app/models/projects/project.response.model\";\r\nimport { InternalWorksService } from \"src/app/services/admin-services/works/internal-works.service\";\r\n\r\n@Component({\r\n selector: \"app-manage-internal-contact-dialog\",\r\n templateUrl: \"./manage-internal-contact-dialog.component.html\",\r\n})\r\nexport class ManageInternalContactDialogComponent implements OnInit {\r\n internalContactForm: UntypedFormGroup;\r\n accounts: AccountModel[];\r\n filteredStates: StateResponse[];\r\n filteredCities: CityResponse[];\r\n countriesResponse: CountryResponse[];\r\n statesResponse: StateResponse[];\r\n citiesResponse: CityResponse[];\r\n internalContacts: InternalContactModel[];\r\n contactClasses: MasterContactClassModel[];\r\n internalContact: InternalContactModel;\r\n internalContactProperties: PropertyModel[];\r\n internalContactJobs: JobModel[];\r\n internalContactProjects: ProjectResponse[];\r\n internalProperties = [];\r\n idInternalContact: number;\r\n loadForm = false;\r\n jobStatusSelect: any[] = [];\r\n\r\n constructor(\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: any,\r\n private dialogRef: MatDialogRef,\r\n private readonly localizationService: LocalizationsService,\r\n private readonly internalContactService: InternalContactsService,\r\n private readonly masterService: MasterService,\r\n private readonly accountsService: AccountsService,\r\n private readonly route: ActivatedRoute,\r\n private readonly _InternalWorksServices: InternalWorksService,\r\n private readonly router: Router\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.idInternalContact =\r\n +this.route.snapshot.paramMap.get(\"idInternalContact\");\r\n this.getLocalizations();\r\n this.getInternalContacts();\r\n this.getContactClasses();\r\n this.getAccounts();\r\n this.createInternalContactForm();\r\n this.getStatusJobs();\r\n if (this.idInternalContact) {\r\n this.getRecordsXProperties();\r\n this.getRecordsXJobs();\r\n this.getRecordsXProjects();\r\n this.internalProperties = JSON.parse(\r\n sessionStorage.getItem(\"internalProperties\")\r\n );\r\n }\r\n }\r\n\r\n openConfirmInternalContactDialog(): void {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n autoFocus: false,\r\n disableClose: true,\r\n data: {\r\n title: \"Save a New Contact\",\r\n description: \"¿Are you sure you want to save a new contact?\",\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n this.managementInternalContact();\r\n }\r\n });\r\n }\r\n\r\n setCities(idState: number) {\r\n this.filteredCities = this.citiesResponse?.filter(\r\n (city) => city.department_ID === idState\r\n );\r\n }\r\n\r\n setStates(idCountry: number) {\r\n this.filteredStates = this.statesResponse?.filter(\r\n (state) => state.country_ID === idCountry\r\n );\r\n }\r\n\r\n getFullName() {\r\n return `${this.internalContactForm.value.firstName} ${this.internalContactForm.value.lastName}`;\r\n }\r\n\r\n getPropertyId(propertyNumber: string) {\r\n return this.internalProperties.findIndex(\r\n (property) => property.property_Number === propertyNumber\r\n );\r\n }\r\n\r\n getStatusJobName(idStatusJob: number) {\r\n const statusJob = this.jobStatusSelect.find(\r\n (x) => x.id === idStatusJob\r\n )?.name_Status;\r\n return statusJob;\r\n }\r\n\r\n getRouterLink(): void {\r\n if (this.data.action === \"account\") {\r\n this.dialogRef.close(true);\r\n } else {\r\n this.router.navigate([\"/home/internal-contacts\"]);\r\n }\r\n }\r\n\r\n private getStatusJobs() {\r\n this._InternalWorksServices\r\n .getStatusJobs()\r\n .subscribe((jobStatus: any[]) => (this.jobStatusSelect = jobStatus));\r\n }\r\n\r\n private getAccounts() {\r\n this.spinner.show();\r\n this.accountsService.getAccounts().subscribe(\r\n (accounts: AccountModel[]) => {\r\n this.accounts = accounts;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getRecordsXJobs() {\r\n this.spinner.show();\r\n this.internalContactService\r\n .getRecordsXJobs(this.idInternalContact)\r\n .subscribe(\r\n (jobsContact: InternalContactJobModel[]) => {\r\n const jobs = jobsContact.map((job) => job.idJob);\r\n this.getContactJobs(jobs);\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getRecordsXProperties() {\r\n this.spinner.show();\r\n this.internalContactService\r\n .getRecordsXProperties(this.idInternalContact)\r\n .subscribe(\r\n (propertiesContact: InternalContactPropertyModel[]) => {\r\n const properties = propertiesContact.map(\r\n (property) => property.propertyNumber\r\n );\r\n this.getPropertiesContact(properties);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getRecordsXProjects() {\r\n this.spinner.show();\r\n this.internalContactService\r\n .getRecordsXProjects(this.idInternalContact)\r\n .subscribe(\r\n (projectsContact: InternalContactProjectModel[]) => {\r\n const projects = projectsContact.map(\r\n (project) => project.projectNumber\r\n );\r\n this.getContactProjects(projects);\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getPropertiesContact(properties: string[]) {\r\n this.spinner.show();\r\n this.internalContactService.getContactProperties(properties).subscribe(\r\n (propertiesContact: PropertyModel[]) => {\r\n this.internalContactProperties = propertiesContact;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getContactJobs(jobs: number[]) {\r\n this.spinner.show();\r\n this.internalContactService.getContactJobs(jobs).subscribe(\r\n (jobs: JobModel[]) => {\r\n this.internalContactJobs = jobs;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getContactProjects(projects: string[]) {\r\n this.spinner.show();\r\n this.internalContactService.getContactProjects(projects).subscribe(\r\n (projects: ProjectResponse[]) => {\r\n this.internalContactProjects = projects;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getContactClasses() {\r\n this.spinner.show();\r\n this.masterService.getContactClasses().subscribe(\r\n (contactClasses: MasterContactClassModel[]) => {\r\n this.contactClasses = contactClasses;\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n private getInternalContacts() {\r\n this.spinner.show();\r\n this.loadForm = true;\r\n this.internalContactService.getInternalContacts().subscribe(\r\n (contacts: InternalContactModel[]) => {\r\n this.spinner.hide();\r\n this.internalContacts = contacts;\r\n if (this.idInternalContact) {\r\n this.internalContact = contacts.find(\r\n (contact) =>\r\n contact.idContactInformationRecord === this.idInternalContact\r\n );\r\n }\r\n this.createInternalContactForm();\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error! Please try again\", \"Error\");\r\n }\r\n );\r\n }\r\n\r\n private getLocalizations() {\r\n combineLatest([\r\n this.localizationService.currentCountries,\r\n this.localizationService.currentStates,\r\n this.localizationService.currentCities,\r\n ]).subscribe(([countries, states, cities]) => {\r\n if (countries !== null && states !== null && cities !== null) {\r\n this.countriesResponse = countries;\r\n this.statesResponse = states;\r\n this.citiesResponse = cities;\r\n }\r\n });\r\n }\r\n\r\n private managementInternalContact(): void {\r\n this.spinner.show();\r\n if (!this.idInternalContact) {\r\n this.internalContactService\r\n .createInternalContact(this.internalContactForm.value)\r\n .subscribe(\r\n (response) => {\r\n this.spinner.hide();\r\n if (response[\"statusCode\"] === \"428\") {\r\n this.toastr.warning(\"Contact information record already exist\");\r\n } else {\r\n this.toastr.success(\"Contact created successfully\");\r\n if ( this.data?.action === 'jobs' ) {\r\n this.dialogRef.close(true);\r\n } else if ( this.data?.action === 'account' ) {\r\n this.router.navigate([\"/home/accounts\"]);\r\n } else {\r\n this.router.navigate([\"/home/internal-contacts\"]);\r\n }\r\n }\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error creating user\");\r\n }\r\n );\r\n } else {\r\n this.internalContactService\r\n .updateInternalContact(this.internalContactForm.value)\r\n .subscribe(\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Contact updated successfully\");\r\n this.router.navigate([\"/home/internal-contacts\"]);\r\n },\r\n () => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error updating user\");\r\n }\r\n );\r\n }\r\n }\r\n\r\n private createInternalContactForm() {\r\n this.internalContactForm = this.formBuilder.group({\r\n idContactInformationRecord: [\r\n this.internalContact\r\n ? this.internalContact.idContactInformationRecord\r\n : 0,\r\n ],\r\n status: [this.internalContact ? this.internalContact.status : true],\r\n idContactType: [\r\n this.internalContact ? this.internalContact.idContactType : \"\",\r\n ],\r\n idDocumentType: [\r\n this.internalContact ? this.internalContact.idDocumentType : \"\",\r\n ],\r\n contactDocumentNumber: [\r\n this.internalContact ? this.internalContact.contactDocumentNumber : \"\",\r\n ],\r\n firstName: [\r\n this.internalContact ? this.internalContact.firstName : \"\",\r\n Validators.required,\r\n ],\r\n lastName: [\r\n this.internalContact ? this.internalContact.lastName : \"\",\r\n Validators.required,\r\n ],\r\n title: [this.internalContact ? this.internalContact.title : \"\"],\r\n idCompany: [\r\n this.data?.idCompany\r\n ? this.data.idCompany\r\n : this.internalContact?.idCompany\r\n ],\r\n address1: [this.internalContact ? this.internalContact.address1 : \"\"],\r\n address2: [this.internalContact ? this.internalContact.address2 : \"\"],\r\n idCity: [this.internalContact ? this.internalContact.idCity : \"\"],\r\n zip: [this.internalContact ? this.internalContact.zip : \"\"],\r\n phoneNumber1: [\r\n this.internalContact ? this.internalContact.phoneNumber1 : \"\",\r\n Validators.required,\r\n ],\r\n phoneNumber2: [\r\n this.internalContact ? this.internalContact.phoneNumber2 : \"\",\r\n Validators.required,\r\n ],\r\n faxNumber: [this.internalContact ? this.internalContact.faxNumber : \"\"],\r\n email: [\r\n this.internalContact ? this.internalContact.email : \"\",\r\n Validators.required,\r\n ],\r\n classificationContact: [\r\n this.internalContact ? this.internalContact.classificationContact : \"\",\r\n ],\r\n tableName: [\r\n this.internalContact ? this.internalContact.tableName : \"Contacts\",\r\n ],\r\n dateUpdate: [\r\n this.internalContact ? this.internalContact.dateUpdate : new Date(),\r\n ],\r\n updateUser: [\r\n this.internalContact\r\n ? this.internalContact.updateUser\r\n : sessionStorage.getItem(\"email\"),\r\n ],\r\n updateProgram: [\r\n this.internalContact\r\n ? this.internalContact.updateProgram\r\n : \"Production Web App\",\r\n ],\r\n gidContact: [this.internalContact ? this.internalContact.gidContact : \"\"],\r\n guidCountry: [\r\n this.internalContact ? this.internalContact.guidCountry : \"\",\r\n ],\r\n idCountry: [\r\n this.internalContact ? this.internalContact.idCountry : \"\",\r\n Validators.required,\r\n ],\r\n idDepartment: [\r\n this.internalContact ? this.internalContact.idDepartment : \"\",\r\n Validators.required,\r\n ],\r\n contactClass: [\r\n this.internalContact ? this.internalContact.contactClass : \"\",\r\n Validators.required,\r\n ],\r\n roleName: [this.internalContact ? this.internalContact.roleName : \"\"],\r\n idCityNavigation: [null],\r\n idCompanyNavigation: [null],\r\n idContactTypeNavigation: [null],\r\n idCountryNavigation: [null],\r\n idDepartmentNavigation: [null],\r\n idDocumentTypeNavigation: [null],\r\n companyRelationshipContacts: [],\r\n jobsRelationshipContactInformationRecords: [],\r\n proJectsRelationshipContactInformationRecords: [],\r\n projects: [],\r\n propertiesRelationshipContactInformationRecords: [],\r\n propertyProjectsJobsRelationshipContactsInformationRecords: [],\r\n });\r\n if (this.idInternalContact) {\r\n this.setStates(this.internalContact?.idCountry);\r\n this.setCities(this.internalContact?.idDepartment);\r\n }\r\n this.loadForm = false;\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { Router } from \"@angular/router\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { ProjectResponse } from \"src/app/models/projects/project.response.model\";\r\nimport { ProjectsService } from \"src/app/services/admin-services/projects/projects.service\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { cleanNullAttributes, findByMatchingProperty, loadSideBarConfiguration } from \"../../../../../utils/utils\";\r\nimport { InternalWorksResponse } from \"../../../../../models/works/internal.works.response.model\";\r\nimport { ProjectStatusModel } from \"../../../../../models/projects/project-status.model\";\r\n\r\n@Component({\r\n selector: \"app-internal-projects\",\r\n templateUrl: \"./internal-projects.component.html\",\r\n})\r\nexport class InternalProjectsComponent implements OnInit {\r\n projects: string;\r\n filtersForm: UntypedFormGroup;\r\n projectsResponse: ProjectResponse[] = [];\r\n filterProjectsResponse: ProjectResponse[] = [];\r\n filterInternalJobs: InternalWorksResponse[] = [];\r\n statusProject: string;\r\n client: string;\r\n accountOfficer: string;\r\n minimumFee: number;\r\n maximumFee: number;\r\n statusProjectsSelect: ProjectStatusModel[] = [];\r\n clientSelect = [];\r\n accountOfficerSelect = [];\r\n internalJobs: InternalWorksResponse[];\r\n\r\n constructor(\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly projectService: ProjectsService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService,\r\n private readonly authService: AuthService,\r\n private readonly router: Router\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (\r\n sessionStorage.getItem(\"projectDirty\") === \"true\" ||\r\n sessionStorage.getItem(\"propertyDirty\") === \"true\"\r\n ) {\r\n this.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() => {\r\n this.router.navigate([window.location.pathname]);\r\n });\r\n }\r\n this.getStatusProjects();\r\n this.buildFiltersForms();\r\n this.getUserProjects();\r\n loadSideBarConfiguration(\"btnMenuInternalProjects\");\r\n this.internalJobs = JSON.parse(sessionStorage.getItem(\"internalJobs\"));\r\n this.filterInternalJobs = this.internalJobs;\r\n }\r\n\r\n getUserProjects() {\r\n this.spinner.show();\r\n this.projectService.getProjects().subscribe(\r\n (resp: ProjectResponse[]) => {\r\n this.projectsResponse = resp.sort((a, b) => {\r\n const createdA = new Date(a.created);\r\n const createdB = new Date(b.created);\r\n return createdB.getTime() - createdA.getTime();\r\n });\r\n sessionStorage.setItem(\"internalProjects\", JSON.stringify(resp));\r\n this.getUniqueValuesOnchangeSelect();\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se presento un problema obteniendo los proyectos\",\r\n \"Proyectos\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n buildFiltersForms() {\r\n this.filtersForm = this.formBuilder.group({\r\n id_Status_Project: [null],\r\n client: [null],\r\n id_Account_Officer: [null],\r\n minimum_fee: [null],\r\n maximum_fee: [null],\r\n });\r\n }\r\n\r\n getUniqueValuesOnchangeSelect() {\r\n this.clientSelect = this.projectsResponse\r\n .map((project) => project.client)\r\n .filter((value, index, self) => self.indexOf(value) === index)\r\n .map((client) => ({ client }));\r\n\r\n this.accountOfficerSelect = this.projectsResponse\r\n .map((project) => {\r\n return { idAccountOficcer: project.id_Account_Officer, accountOfficer: project.account_officer }\r\n })\r\n .filter((value, index, self) =>\r\n self.findIndex((t) => t.idAccountOficcer === value.idAccountOficcer) === index);\r\n }\r\n\r\n filterJobs() {\r\n this.filterProjectsResponse = JSON.parse(\r\n sessionStorage.getItem(\"internalProjects\")\r\n ).map((job) => ({\r\n ...job,\r\n created: job.created.split(\"T\")[0],\r\n }));\r\n\r\n const filterForm = {\r\n ...this.filtersForm.value,\r\n id_Status_Project: +this.filtersForm.value.id_Status_Project || undefined,\r\n id_Account_Officer: +this.filtersForm.value.id_Account_Officer || undefined,\r\n };\r\n\r\n let filters = cleanNullAttributes(filterForm);\r\n let resultFilter = findByMatchingProperty(\r\n this.filterProjectsResponse,\r\n filters\r\n );\r\n\r\n this.projectsResponse = resultFilter;\r\n\r\n this.filterInternalJobs = this.internalJobs.filter((job) => {\r\n const project = this.projectsResponse.find(\r\n (project) => project.project_Number === job.project_Number\r\n );\r\n return project;\r\n });\r\n\r\n }\r\n\r\n clearFilters() {\r\n this.filtersForm.patchValue({\r\n id_Status_Project: undefined,\r\n client: undefined,\r\n id_Account_Officer: undefined,\r\n minimum_fee: undefined,\r\n maximum_fee: undefined,\r\n });\r\n this.projectsResponse = JSON.parse(\r\n sessionStorage.getItem(\"internalProjects\")\r\n );\r\n this.filterInternalJobs = this.internalJobs;\r\n }\r\n\r\n updateInternalFilterProjects(event) {\r\n this.projectsResponse = event;\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n\r\n private getStatusProjects() {\r\n this.projectService.getStatusProjects()\r\n .subscribe((statusProject: ProjectStatusModel[]) => (this.statusProjectsSelect = statusProject));\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"app-projects\",\r\n templateUrl: \"./projects.component.html\",\r\n})\r\nexport class ProjectsComponent implements OnInit {\r\n showProjects = true;\r\n type = false;\r\n\r\n constructor(private readonly router: Router) {\r\n router.events.subscribe((val) => {\r\n if (val[\"url\"] === \"/home/projects\") {\r\n this.showProjects = true;\r\n\r\n if (sessionStorage.getItem(\"tipo\") === \"Interno\") {\r\n this.type = true;\r\n } else {\r\n this.type = false;\r\n }\r\n } else {\r\n this.showProjects = false;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { PropertieResponse } from \"../../../../../models/properties/properties.response.model\";\r\nimport { cleanNullAttributes, findByMatchingProperty, loadSideBarConfiguration } from \"../../../../../utils/utils\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"app-internal-properties\",\r\n templateUrl: \"./internal-properties.component.html\",\r\n})\r\nexport class InternalPropertiesComponent implements OnInit {\r\n properties: string;\r\n filtersForm: UntypedFormGroup;\r\n propertiesResponse: PropertieResponse[] = [];\r\n city: string;\r\n type: string;\r\n account: string;\r\n citySelect = [];\r\n propertieTypeSelect = [];\r\n propertieAccountSelect = [];\r\n\r\n constructor(\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly authService: AuthService,\r\n private readonly router: Router\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (sessionStorage.getItem(\"propertyDirty\") === \"true\") {\r\n this.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() => {\r\n this.router.navigate([window.location.pathname]);\r\n });\r\n }\r\n this.buildFiltersForms();\r\n this.getUserProperties();\r\n loadSideBarConfiguration(\"btnMenuInternalProperties\");\r\n }\r\n\r\n buildFiltersForms() {\r\n this.filtersForm = this.formBuilder.group({\r\n city: [null, Validators.required],\r\n property_Type: [null, Validators.required],\r\n property_Account: [null, Validators.required],\r\n });\r\n }\r\n\r\n getUserProperties() {\r\n this.spinner.show();\r\n this.propertiesResponse = JSON.parse(\r\n sessionStorage.getItem(\"internalProperties\")\r\n );\r\n this.getUniqueValuesOnchangeSelect();\r\n this.spinner.hide();\r\n }\r\n\r\n getUniqueValuesOnchangeSelect() {\r\n this.citySelect = this.propertiesResponse\r\n .map((property) => property[\"city\"])\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.propertieTypeSelect = this.propertiesResponse\r\n .map((property) => property[\"property_Type\"])\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.propertieAccountSelect = this.propertiesResponse\r\n .map((property) => property[\"property_Account\"])\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n }\r\n\r\n filterProperties() {\r\n var filters = cleanNullAttributes(this.filtersForm.value);\r\n var resultFilter = findByMatchingProperty(\r\n JSON.parse(sessionStorage.getItem(\"internalProperties\")),\r\n filters\r\n );\r\n\r\n this.propertiesResponse = resultFilter;\r\n }\r\n\r\n clearFilters() {\r\n this.filtersForm.patchValue({\r\n city: undefined,\r\n property_Type: undefined,\r\n property_Account: undefined,\r\n });\r\n this.propertiesResponse = JSON.parse(\r\n sessionStorage.getItem(\"internalProperties\")\r\n );\r\n }\r\n\r\n updateInternalFilterProperties(event) {\r\n this.propertiesResponse = event;\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"app-properties\",\r\n templateUrl: \"./properties.component.html\",\r\n})\r\nexport class PropertiesComponent implements OnInit {\r\n showProperties = true;\r\n type = false;\r\n\r\n constructor(private readonly router: Router) {\r\n router.events.subscribe((val) => {\r\n if (val[\"url\"] === \"/home/properties\") {\r\n this.showProperties = true;\r\n\r\n if (sessionStorage.getItem(\"tipo\") === \"Interno\") {\r\n this.type = true;\r\n } else {\r\n this.type = false;\r\n }\r\n } else {\r\n this.showProperties = false;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { EditTaskDialogComponent } from \"src/app/components/tables/tasks/internal/internal-table-tasks/edit-task-dialog/edit-task-dialog.component\";\r\nimport { InternalTasksService } from \"src/app/services/admin-services/tasks/internal-tasks.service\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { cleanNullAttributes, findByMatchingProperty, loadSideBarConfiguration } from \"src/app/utils/utils\";\r\nimport { TaskModel } from \"../../../../../models/tasks/tasks.model\";\r\nimport * as moment from \"moment\";\r\nimport { forkJoin } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"app-internal-tasks\",\r\n templateUrl: \"./internal-tasks.component.html\",\r\n})\r\nexport class InternalTasksComponent implements OnInit {\r\n tasks: TaskModel[];\r\n filterTasksResponse: TaskModel[];\r\n filtersTasksForm: UntypedFormGroup;\r\n task: string;\r\n taskStatus: string;\r\n taskCategory: string;\r\n taskType: string;\r\n assigned_to_Name: string;\r\n taskStatusSelect = [];\r\n taskTypeSelect = [];\r\n taskCategorySelect = [];\r\n assignedToSelect = [];\r\n taskStatusList: any = [];\r\n taskCategoryList: any = [];\r\n taskTypeList: any = [];\r\n taskCodesList: any = [];\r\n\r\n constructor(\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly internalTasksService: InternalTasksService,\r\n private readonly toastr: ToastrService,\r\n private readonly dialog: MatDialog,\r\n private readonly authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildFiltersTasksForms();\r\n this.manageDependenceTasks();\r\n loadSideBarConfiguration(\"btnMenuInternalTasks\");\r\n }\r\n\r\n manageDependenceTasks() {\r\n\r\n const taskCategories$ = this.internalTasksService.getTaskCategory();\r\n const taskTypes$ = this.internalTasksService.getTaskType();\r\n const taskCodes$ = this.internalTasksService.getTaskCodes();\r\n const taskStatus$ = this.internalTasksService.getTaskStatus();\r\n\r\n forkJoin([taskCategories$, taskTypes$, taskCodes$, taskStatus$]).subscribe((resp) => {\r\n this.taskCategoryList = resp[0];\r\n this.taskTypeList = resp[1];\r\n this.taskCodesList = resp[2];\r\n this.taskStatusList = resp[3];\r\n this.getTasksByUser();\r\n });\r\n\r\n }\r\n\r\n getTaskStatusName(id: number) {\r\n return this.taskStatusList.find((status) => status.id === id)?.name_Status;\r\n }\r\n\r\n getTaskTypeName(id: number) {\r\n return this.taskTypeList.find((type) => type.id === id)?.name_Option;\r\n }\r\n\r\n getTaskCategoryName(id: number) {\r\n return this.taskCategoryList.find((category) => category.id === id)\r\n ?.name_Category;\r\n }\r\n\r\n buildFiltersTasksForms() {\r\n this.filtersTasksForm = this.formBuilder.group({\r\n task_Status: [null, Validators.required],\r\n task_Category: [null, Validators.required],\r\n task_Type: [null, Validators.required],\r\n assigned_to_Name: [null, Validators.required],\r\n });\r\n }\r\n\r\n getTasksByUser() {\r\n this.spinner.show();\r\n this.internalTasksService.getTasksByUser().subscribe(\r\n (response: TaskModel[]) => {\r\n this.tasks = response\r\n .sort(\r\n (a, b) =>\r\n Number(moment(a.startt_Date)) - Number(moment(b.startt_Date))\r\n )\r\n .reverse();\r\n\r\n this.tasks = this.tasks?.map((task) => {\r\n const taskCategory = this.taskCodesList?.find(\r\n (category) => category.id === task.task_Category\r\n )?.name_Code;\r\n const taskStatus = this.taskStatusList?.find(\r\n (status) => status.id === task.task_Status\r\n )?.name_Status;\r\n return {\r\n ...task,\r\n task_Category_Description: taskCategory,\r\n task_Status_Description: taskStatus,\r\n };\r\n });\r\n\r\n sessionStorage.setItem(\"tasks\", JSON.stringify(this.tasks));\r\n this.getUniqueValuesOnchangeSelect();\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se ha presentado un problema cargando las tareas\",\r\n \"Tareas\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n getUniqueValuesOnchangeSelect() {\r\n this.taskTypeSelect = this.tasks\r\n .map((property) => property.task_Type)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.assignedToSelect = this.tasks\r\n .map((account) => account.assigned_to_Name)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.taskStatusSelect = this.tasks\r\n .map((status) => status.task_Status)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n this.taskCategorySelect = this.tasks\r\n .map((category) => category.task_Category)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n }\r\n\r\n updateInternalFilterJobs(event) {\r\n this.tasks = event;\r\n }\r\n\r\n filterTasks() {\r\n this.filterTasksResponse = JSON.parse(sessionStorage.getItem(\"tasks\"));\r\n\r\n const filters = cleanNullAttributes(this.filtersTasksForm.value);\r\n const resultFilter = findByMatchingProperty(\r\n this.filterTasksResponse,\r\n filters\r\n );\r\n\r\n this.tasks = resultFilter;\r\n }\r\n\r\n clearFilters() {\r\n this.filtersTasksForm.patchValue({\r\n task_Status: undefined,\r\n task_Category: undefined,\r\n task_Type: undefined,\r\n assigned_to_Name: undefined,\r\n });\r\n this.tasks = JSON.parse(sessionStorage.getItem(\"tasks\"));\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n openEditTaskDialog(task?: TaskModel) {\r\n const dialogRef = this.dialog.open(EditTaskDialogComponent, {\r\n autoFocus: false,\r\n disableClose: false,\r\n data: {\r\n task,\r\n taskStatus: this.taskStatusList,\r\n taskCategory: this.taskCategoryList,\r\n taskType: this.taskTypeList,\r\n taskCodes: this.taskCodesList,\r\n action: \"create\",\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n window.location.reload();\r\n }\r\n });\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"app-tasks\",\r\n templateUrl: \"./tasks.component.html\",\r\n})\r\nexport class TasksComponent implements OnInit {\r\n showTasks = true;\r\n type = false;\r\n\r\n constructor(private readonly router: Router) {\r\n router.events.subscribe((val) => {\r\n if (val[\"url\"] === \"/home/tasks\") {\r\n this.showTasks = true;\r\n\r\n if (sessionStorage.getItem(\"tipo\") === \"Interno\") {\r\n this.type = true;\r\n } else {\r\n this.type = false;\r\n }\r\n } else {\r\n this.showTasks = false;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup } from \"@angular/forms\";\r\nimport { InternalWorksService } from \"../../../../../services/admin-services/works/internal-works.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { InternalWorksResponse } from \"../../../../../models/works/internal.works.response.model\";\r\nimport {\r\n cleanNullAttributes,\r\n findByMatchingProperties,\r\n loadSideBarConfiguration,\r\n} from \"../../../../../utils/utils\";\r\nimport * as moment from \"moment\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { AuthService } from \"src/app/services/auth/auth.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport {\r\n AdvancedSettingsService\r\n} from \"../../../../../services/admin-services/advanced-settings/advanced-settings.service\";\r\nimport { AdvancedSettingsCityModel } from \"../../../../../models/advanced-settings/city.model\";\r\nimport { AdvancedSettingsCountryModel } from \"../../../../../models/advanced-settings/country.model\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { ProjectResponse } from \"../../../../../models/projects/project.response.model\";\r\nimport { PropertieResponse } from \"../../../../../models/properties/properties.response.model\";\r\nimport { PropertiesService } from \"../../../../../services/admin-services/properties/properties.service\";\r\nimport { ProjectsService } from \"../../../../../services/admin-services/projects/projects.service\";\r\n\r\n@Component({\r\n selector: \"app-internal-works\",\r\n templateUrl: \"./internal-works.component.html\",\r\n})\r\nexport class InternalWorksComponent implements OnInit {\r\n @ViewChild(\"startDate\") resetStartDate: ElementRef;\r\n @ViewChild(\"endDate\") resetEndDate: ElementRef;\r\n\r\n filtersForm: UntypedFormGroup;\r\n internalJobsResponse: InternalWorksResponse[] = [];\r\n filterInternalJobs: InternalWorksResponse[] = [];\r\n internalJobsSpecificStatus: InternalWorksResponse[] = [];\r\n date = new Date();\r\n country: string;\r\n city: string;\r\n countrySelect: AdvancedSettingsCountryModel[] = [];\r\n citySelect: AdvancedSettingsCityModel[] = [];\r\n jobs: string;\r\n startDateValue = null;\r\n endDateValue = null;\r\n jobStatusSelect: any[] = [];\r\n internalProperties = [];\r\n numberProjects: string[] = [];\r\n\r\n constructor(\r\n private readonly internalWorksServices: InternalWorksService,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly toastr: ToastrService,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly authService: AuthService,\r\n private readonly router: Router,\r\n private readonly advancedSettingsService: AdvancedSettingsService,\r\n private readonly properties: PropertiesService,\r\n private readonly projects: ProjectsService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getCountries();\r\n this.getCities();\r\n this.getProjects();\r\n if (sessionStorage.getItem(\"jobDirty\") === \"true\") {\r\n this.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() => {\r\n this.router.navigate([window.location.pathname]);\r\n });\r\n }\r\n this.getStatusJobs();\r\n this.buildFiltersForms();\r\n this.internalProperties = JSON.parse(sessionStorage.getItem(\"internalProperties\"));\r\n loadSideBarConfiguration(\"btnMenuInternalJobs\");\r\n }\r\n\r\n getStatusJobs() {\r\n this.internalWorksServices\r\n .getStatusJobs()\r\n .subscribe((jobStatus: any[]) => (this.jobStatusSelect = jobStatus));\r\n }\r\n\r\n buildFiltersForms() {\r\n this.filtersForm = this.formBuilder.group({\r\n iD_Job_Status: [[]],\r\n country: [null],\r\n city: [null],\r\n });\r\n }\r\n\r\n getJobsRol() {\r\n this.spinner.show();\r\n this.internalWorksServices.getJobsRol()\r\n .pipe(map((resp: InternalWorksResponse[]) => {\r\n return resp.map((job) => ({\r\n ...job,\r\n city: this.internalProperties.find((property) => property.property_Number === job.property_Number)?.city,\r\n country: this.internalProperties.find((property) => property.property_Number === job.property_Number)?.country\r\n }));\r\n }))\r\n .subscribe(\r\n (resp: InternalWorksResponse[]) => {\r\n this.internalJobsResponse = resp\r\n .sort(\r\n (a, b) => Number(moment(a.due_Date)) - Number(moment(b.due_Date))\r\n )\r\n .reverse();\r\n this.internalJobsSpecificStatus = resp.filter((job) =>\r\n job.iD_Job_Status === 1 || job.iD_Job_Status === 3 || job.iD_Job_Status === 4 || job.iD_Job_Status === 7\r\n ).sort(\r\n (a, b) => Number(moment(a.due_Date)) - Number(moment(b.due_Date))\r\n ).reverse();\r\n sessionStorage.setItem(\"internalJobs\", JSON.stringify(resp));\r\n this.spinner.hide();\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"Se han presentando inconvenientes al obtener los datos de los jobs\",\r\n \"Obteniendo datos\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n }\r\n );\r\n }\r\n\r\n filterJobs() {\r\n const startDate = this.startDate;\r\n const endDate = this.endDate;\r\n\r\n this.filterInternalJobs = JSON.parse(\r\n sessionStorage.getItem(\"internalJobs\")\r\n ).map((job) => ({\r\n ...job,\r\n due_Date: job.due_Date.split(\"T\")[0],\r\n }));\r\n\r\n if (this.startDateValue && this.endDateValue) {\r\n this.filterInternalJobs = this.filterInternalJobs.filter(\r\n (job: InternalWorksResponse) =>\r\n job.due_Date >= startDate && job.due_Date <= endDate\r\n );\r\n }\r\n\r\n const filters = cleanNullAttributes(this.filtersForm.value);\r\n this.internalJobsResponse = findByMatchingProperties(\r\n this.filterInternalJobs,\r\n filters\r\n );\r\n\r\n this.internalJobsSpecificStatus = this.internalJobsResponse;\r\n\r\n }\r\n\r\n clearFilters() {\r\n this.startDateValue = undefined;\r\n this.endDateValue = undefined;\r\n this.filtersForm.patchValue({\r\n iD_Job_Status: undefined,\r\n country: undefined,\r\n city: undefined,\r\n });\r\n\r\n this.internalJobsResponse = JSON.parse(\r\n sessionStorage.getItem(\"internalJobs\")\r\n );\r\n\r\n this.internalJobsSpecificStatus = this.internalJobsResponse.filter((job) =>\r\n job.iD_Job_Status === 1 || job.iD_Job_Status === 3 || job.iD_Job_Status === 4 || job.iD_Job_Status === 7\r\n ).sort(\r\n (a, b) => Number(moment(a.due_Date)) - Number(moment(b.due_Date))\r\n ).reverse();\r\n }\r\n\r\n updateInternalFilterJobs(event) {\r\n this.internalJobsResponse = event;\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n get fullName() {\r\n return sessionStorage.getItem(\"nombreCompleto\");\r\n }\r\n\r\n get startDate() {\r\n return moment(this.startDateValue).format(\"YYYY-MM-DD\");\r\n }\r\n\r\n get endDate() {\r\n return moment(this.endDateValue).format(\"YYYY-MM-DD\");\r\n }\r\n\r\n private getProjects() {\r\n this.projects.getProjects().subscribe( (resp: ProjectResponse[]) => {\r\n resp.forEach(project => {\r\n this.numberProjects.push(project.project_Number);\r\n });\r\n sessionStorage.setItem(\"numberProjects\", JSON.stringify(this.numberProjects));\r\n this.projects.setProjects(resp);\r\n this.getInternalProperties();\r\n })\r\n }\r\n\r\n private getInternalProperties() {\r\n this.properties.getAllProperties().subscribe( (resp: PropertieResponse[]) => {\r\n sessionStorage.setItem(\"internalProperties\", JSON.stringify(resp));\r\n this.internalProperties = JSON.parse(sessionStorage.getItem(\"internalProperties\"));\r\n this.getJobsRol();\r\n });\r\n }\r\n\r\n private getCities() {\r\n this.advancedSettingsService.getCities().subscribe((cities) => {\r\n this.citySelect = cities;\r\n });\r\n }\r\n\r\n private getCountries() {\r\n this.advancedSettingsService.getCountries().subscribe((countries) => {\r\n this.countrySelect = countries;\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"app-works\",\r\n templateUrl: \"./works.component.html\",\r\n})\r\nexport class WorksComponent implements OnInit {\r\n showWorks = true;\r\n type = false;\r\n\r\n constructor(private readonly router: Router) {\r\n router.events.subscribe((val) => {\r\n if (val[\"url\"] === \"/home/jobs\") {\r\n this.showWorks = true;\r\n\r\n if (sessionStorage.getItem(\"tipo\") === \"Interno\") {\r\n this.type = true;\r\n } else {\r\n this.type = false;\r\n }\r\n } else {\r\n this.showWorks = false;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { AuthService } from \"../../../services/auth/auth.service\";\r\nimport { AuthUser } from \"../../../models/auth/auth.model\";\r\nimport { AuthUserResponse } from \"src/app/models/auth/auth.response.model\";\r\nimport { Router } from \"@angular/router\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\n\r\n@Component({\r\n selector: \"app-login\",\r\n templateUrl: \"./login.component.html\",\r\n})\r\nexport class LoginComponent implements OnInit {\r\n public loginForm: UntypedFormGroup;\r\n private userAuth: AuthUser;\r\n\r\n constructor(\r\n private readonly auth: AuthService,\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly router: Router,\r\n private readonly spinner: NgxSpinnerService,\r\n private readonly toastr: ToastrService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.valideSSO();\r\n this.buildLoginForm();\r\n }\r\n\r\n private valideSSO() {\r\n if (sessionStorage.getItem(\"email\")) {\r\n this.router.navigate([\"/home/company-name\"]);\r\n }\r\n }\r\n\r\n private buildLoginForm() {\r\n this.loginForm = this.formBuilder.group({\r\n Usuario: [\"\", Validators.required],\r\n Clave: [\"\", Validators.required],\r\n });\r\n }\r\n\r\n public getToken() {\r\n this.spinner.show();\r\n this.userAuth = this.loginForm.value;\r\n this.auth.getToken(this.userAuth).subscribe(\r\n (resp: any) => {\r\n sessionStorage.setItem(\"token\", resp.token);\r\n this.spinner.hide();\r\n this.login();\r\n },\r\n (error) => {\r\n this.spinner.hide();\r\n this.toastr.error(\r\n \"El usuario o la contraseña no son validos\",\r\n \"Inicio de Sesión\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n public login() {\r\n this.spinner.show();\r\n this.userAuth = this.loginForm.value;\r\n this.auth.signIn(this.userAuth).subscribe((resp: AuthUserResponse) => {\r\n if (resp.codigoRespuesta === 1) {\r\n this.toastr.error(\r\n \"El usuario o la contraseña no son validos\",\r\n \"Inicio de Sesión\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n } else {\r\n this.setSessionStorageAuthUser(resp);\r\n this.spinner.hide();\r\n this.router.navigate([\"/home/projects\"]);\r\n }\r\n });\r\n }\r\n\r\n public getTokenLogan() {\r\n this.spinner.show();\r\n this.auth.loginLogan().subscribe({\r\n next: (result) => {\r\n let authUserLogan: AuthUser = {\r\n Usuario: result.account.username,\r\n Clave: null,\r\n };\r\n this.auth.getToken(authUserLogan).subscribe(\r\n (resp: any) => {\r\n sessionStorage.setItem(\"token\", resp.token);\r\n this.loginLogan(authUserLogan);\r\n },\r\n () => {\r\n this.toastr.error(\r\n \"El usuario o la contraseña no son validos\",\r\n \"Inicio de Sesión\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n }\r\n );\r\n this.spinner.hide();\r\n },\r\n error: () => {\r\n this.toastr.error(\r\n \"El usuario o la contraseña no son validos\",\r\n \"Inicio de Sesión\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n },\r\n });\r\n }\r\n\r\n public loginLogan(userAuth: AuthUser) {\r\n this.spinner.show();\r\n this.auth.signIn(userAuth).subscribe((resp: AuthUserResponse) => {\r\n if (resp.codigoRespuesta === 1) {\r\n this.toastr.error(\r\n \"El usuario o la contraseña no son validos\",\r\n \"Inicio de Sesión\",\r\n {\r\n progressBar: true,\r\n progressAnimation: \"increasing\",\r\n }\r\n );\r\n this.spinner.hide();\r\n } else {\r\n this.setSessionStorageAuthUser(resp);\r\n this.spinner.hide();\r\n this.router.navigate([\"/home/jobs\"]);\r\n }\r\n });\r\n }\r\n\r\n private setSessionStorageAuthUser(resp: AuthUserResponse) {\r\n sessionStorage.setItem(\"email\", resp.email);\r\n sessionStorage.setItem(\"guidCompany\", resp.guidCompany);\r\n sessionStorage.setItem(\"guidClient\", resp.guid);\r\n sessionStorage.setItem(\"companyName\", resp.companyName);\r\n sessionStorage.setItem(\"nombreCompleto\", resp.nombreCompleto);\r\n sessionStorage.setItem(\r\n \"tipo\",\r\n resp.type_User === 1 ? \"Interno\" : \"Externo\"\r\n );\r\n sessionStorage.setItem(\"rol\", resp.rol);\r\n sessionStorage.setItem(\"country\", resp.country);\r\n sessionStorage.setItem(\"userID\", resp.id.toString());\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-recovery-password',\r\n templateUrl: './recovery-password.component.html'\r\n})\r\nexport class RecoveryPasswordComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { AuthService } from \"../../../../../services/auth/auth.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\n\r\n@Component({\r\n selector: 'app-code-confirmation',\r\n templateUrl: './code-confirmation.component.html'\r\n})\r\nexport class CodeConfirmationComponent implements OnInit {\r\n\r\n private email: string;\r\n\r\n constructor(\r\n private readonly _activatedRoute: ActivatedRoute,\r\n private readonly _AuthService: AuthService,\r\n private readonly _toastr: ToastrService,\r\n private readonly _spinner: NgxSpinnerService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this._activatedRoute.queryParams.subscribe(params => {\r\n this.email = params['email'];\r\n });\r\n }\r\n\r\n sendEmailResetPassword() {\r\n this._spinner.show();\r\n this._AuthService.sendEmailResetPassword({ Email: this.email }).subscribe({\r\n next: () => {\r\n this._spinner.hide();\r\n this._toastr.success('Se ha enviado un correo con el código de recuperación de contraseña');\r\n },\r\n error: () => {\r\n this._spinner.hide();\r\n this._toastr.error('Ha ocurrido un error al enviar el correo, por favor intente nuevamente.');\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AuthService } from 'src/app/services/auth/auth.service';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: 'app-code',\r\n templateUrl: './code.component.html'\r\n})\r\nexport class CodeComponent implements OnInit {\r\n\r\n private email: string;\r\n\r\n constructor(\r\n private readonly _AuthService: AuthService,\r\n private readonly _toastr: ToastrService,\r\n private readonly _spinner: NgxSpinnerService,\r\n private readonly _activatedRoute: ActivatedRoute,\r\n private readonly _router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this._activatedRoute.queryParams.subscribe(params => {\r\n this.email = params['email'];\r\n });\r\n }\r\n\r\n sendEmailResetPassword() {\r\n this._spinner.show();\r\n this._AuthService.sendEmailResetPassword({ Email: this.email }).subscribe({\r\n next: () => {\r\n this._spinner.hide();\r\n this._toastr.success('Se ha enviado un correo con el código de recuperación de contraseña');\r\n this._router.navigate(['/auth/code-confirmation'], { queryParams: { email: this.email } });\r\n },\r\n error: () => {\r\n this._spinner.hide();\r\n this._toastr.error('Ha ocurrido un error al enviar el correo, por favor intente nuevamente.');\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AuthService } from 'src/app/services/auth/auth.service';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { Router } from \"@angular/router\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Component({\r\n selector: 'app-email',\r\n templateUrl: './email.component.html'\r\n})\r\nexport class EmailComponent implements OnInit {\r\n\r\n public emailForm: UntypedFormGroup;\r\n recaptChaToken: string;\r\n environment = environment;\r\n\r\n constructor(\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly _AuthService: AuthService,\r\n private readonly _toastr: ToastrService,\r\n private readonly _spinner: NgxSpinnerService,\r\n private readonly _router: Router\r\n ) {\r\n this.buildEmailForm();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n private buildEmailForm() {\r\n this.emailForm = this.formBuilder.group({\r\n email: [\"\", Validators.required]\r\n });\r\n }\r\n\r\n resolvedRecaptcha(captchaResponse: string) {\r\n this.recaptChaToken = captchaResponse;\r\n }\r\n\r\n validateEmail() {\r\n if ( this.emailForm.invalid ) {\r\n this._toastr.error( \"El correo es requerido\" );\r\n return;\r\n }\r\n if ( !this.recaptChaToken ) {\r\n this._toastr.error( \"Por favor, valida el captcha\" );\r\n return;\r\n }\r\n this._spinner.show();\r\n this._AuthService.validateEmail( { Email: this.emailForm.get( \"email\" ).value }).subscribe({\r\n next: () => {\r\n this._toastr.success( \"El correo ha sido validado correctamente\" );\r\n this._spinner.hide();\r\n this._router.navigate( [ \"/auth/send-email\" ], { queryParams: { email: this.emailForm.get( \"email\" ).value } } );\r\n },\r\n error: () => {\r\n this._toastr.error( \"Ha ocurrido un error al validar el correo\" );\r\n this._spinner.hide();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AuthService } from 'src/app/services/auth/auth.service';\r\nimport { passwordStrength } from 'check-password-strength'\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\n\r\n@Component({\r\n selector: 'app-new-password',\r\n templateUrl: './new-password.component.html'\r\n})\r\nexport class NewPasswordComponent implements OnInit {\r\n\r\n newPasswordForm: UntypedFormGroup;\r\n passwordStrength: string[] = [];\r\n code: string;\r\n\r\n constructor(\r\n private readonly formBuilder: UntypedFormBuilder,\r\n private readonly _AuthService: AuthService,\r\n private readonly _activatedRoute: ActivatedRoute,\r\n private readonly _toastr: ToastrService,\r\n private readonly router: Router,\r\n private readonly _spinner: NgxSpinnerService\r\n ) {\r\n this.buildNewPasswodForm();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildNewPasswodForm();\r\n this.validateToken();\r\n\r\n this.newPasswordForm.get('newPassword').valueChanges.subscribe((value: string) => {\r\n this.passwordStrength = passwordStrength(value).contains;\r\n });\r\n\r\n this._activatedRoute.queryParams.subscribe(params => {\r\n this.code = params['token'];\r\n });\r\n\r\n }\r\n\r\n private buildNewPasswodForm() {\r\n this.newPasswordForm = this.formBuilder.group({\r\n newPassword: [\"\", Validators.required],\r\n confirmPassword: [\"\", Validators.required]\r\n });\r\n }\r\n\r\n validateCode() {\r\n const data = {\r\n Codigo: decodeURIComponent(this.code),\r\n Email: '',\r\n ClaveNueva: this.newPasswordForm?.get('newPassword').value\r\n }\r\n\r\n if(this.newPasswordForm?.get('newPassword').value !== this.newPasswordForm?.get('confirmPassword').value) {\r\n this._toastr.error('Las contraseñas no coinciden');\r\n return;\r\n }\r\n\r\n if ( !(this.passwordStrength.includes('lowercase') && this.passwordStrength.includes('uppercase') && this.passwordStrength.includes('number')) ) {\r\n this._toastr.error('Debe cumplir con los requerimientos para crear una nueva contraseña');\r\n return;\r\n }\r\n\r\n this._spinner.show();\r\n this._AuthService.createNewPassword(data).subscribe({\r\n next: () => {\r\n this._spinner.hide();\r\n this._toastr.success('Contraseña actualizada correctamente', 'Éxito');\r\n this.router.navigate(['/auth/login']);\r\n },\r\n error: () => {\r\n this._spinner.hide();\r\n this._toastr.error('Error al actualizar la contraseña', 'Error');\r\n }\r\n });\r\n }\r\n\r\n private validateToken() {\r\n this._spinner.show();\r\n const data = {\r\n Codigo: decodeURIComponent(this.code),\r\n Email: '',\r\n ClaveNueva: ''\r\n }\r\n this._AuthService.validateCode(data).subscribe({\r\n next: () => {\r\n this._spinner.hide();\r\n this._toastr.success('Código validado correctamente');\r\n },\r\n error: () => {\r\n this._spinner.hide();\r\n this._toastr.error('Error al validar el código');\r\n this.router.navigate(['/auth/token-expired']);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-token-expired',\r\n templateUrl: './token-expired.component.html'\r\n})\r\nexport class TokenExpiredComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"app-register\",\n templateUrl: \"./register.component.html\",\n})\nexport class RegisterComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, OnInit } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n selector: \"app-landing\",\n templateUrl: \"./landing.component.html\",\n})\nexport class LandingComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: true,\r\n clientID: \"b1af6507-e385-4cdf-8460-aa55fe28743a\",\r\n authToken:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Seguridad\",\r\n auth: \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Contacts/validarusuario\",\r\n historicPassword: \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/PasswordHistory/getpasswordhistory\",\r\n generateToken:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Contacts/generartoken\",\r\n testCode:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Contacts/comprobarcodigo\",\r\n changePassword:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Contacts/cambioclave\",\r\n countries:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenercountry\",\r\n states:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenerdepartment\",\r\n cities:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenercity\",\r\n saveContact:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Contacts/GuardarContacto\",\r\n contacts:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Contacts/ObtenerContactos\",\r\n saveCompanyName:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/RazonSocial/GuardarRazonSocial\",\r\n companyNames:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/RazonSocial/ObtenerRazonSocial\",\r\n jobs: \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Jobs/ObtenerJobsProyecto\",\r\n allJobs:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Jobs/ObtenerJobsProyectoCompletos\",\r\n properties:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Propiedades/ObtenerPropiedades\",\r\n allProperties:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Propiedades/ObtenerPropiedadesCompletas\",\r\n allTasks:\r\n \"https://loganportalcliente20210622195724.azurewebsites.net/api/Tareas/ObtenerTareasProyectoCompleto\",\r\n tasks:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Tareas/ObtenerTareasProyecto\",\r\n tasksByUser:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Tareas/obtenertareasusuario\",\r\n createTask:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Tareas/guardartarea\",\r\n updateTask:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Tareas/actualizartarea\",\r\n projects:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Projects/ObtenerProyectosCliente\",\r\n updateProject:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Projects/actualizarproyectos\",\r\n updateProperty:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Propiedades/actualizarpropiedades\",\r\n relationDocuments:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/CargaDocumento/obtenerrelaciondocumentos\",\r\n deleteRelationDocuments:\r\n \"https://loganportalcliente20210622195724.azurewebsites.net/api/CargaDocumento/EliminarDocumento\",\r\n updateRelationDocumetns:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/CargaDocumento/actualizardocumentorelacionado\",\r\n uploadDocument:\r\n \"https://loganportalcliente20210622195724.azurewebsites.net/api/CargaDocumento/CargaDocumentoRelacionado\",\r\n viewDocument:\r\n \"https://loganportalcliente20210622195724.azurewebsites.net/api/CargaDocumento/VerDocumento\",\r\n advances:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Anticipos/ObtenerAnticipos\",\r\n internalServices: {\r\n getJobsRol:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Jobs/obtenerjobsporrol\",\r\n updateJobs:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Jobs/actualizarjobs\",\r\n getExpenses:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Expenses/obtenerexpenses\",\r\n notificationDetails:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Propiedades/notificaciondetails\",\r\n saveDocuments:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/CargaDocumento/guardardocumentorelacionado\",\r\n tasksProjects:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Tareas/obtenertareasproyectnumber\",\r\n collabotarions: \"https://prd-logan-administracion.azurewebsites.net/api/Collaboration/getcollaboration\",\r\n collaborationByJob: \"https://prd-logan-administracion.azurewebsites.net/api/Collaboration/getcollaborationxjob\",\r\n createCollaboration: \"https://prd-logan-administracion.azurewebsites.net/api/Collaboration/createcollaboration\",\r\n updateCollaboration: \"https://prd-logan-administracion.azurewebsites.net/api/Collaboration/updatecollaboration\",\r\n },\r\n masters: {\r\n documentsType:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenerdocumentstype\",\r\n documentsCategory:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenerdocumentscategory\",\r\n taskStatus:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenerstatustask\",\r\n taskType:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenertypetask\",\r\n taskSubType:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenertasksubtype\",\r\n taskCode:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenertaskcode\",\r\n taskCategory:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenercategorytask\",\r\n sector:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenersector\",\r\n internalContacts:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Contacts/obtenercontactosinternos\",\r\n statusJobs:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenerstatusjobs\",\r\n statusProjects:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenerstatusprojects\",\r\n propertiesType:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenerpropertytype\",\r\n externalContacts:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Contacts/obtenercontactosexternos\",\r\n territory:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/Maestros/obtenerterritory\",\r\n userInfoGraph:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/transversal/getinfouserinternal\",\r\n businessUnit:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/businessUnit/getbusinessunit\",\r\n sectors:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/sector/getsector\",\r\n contactClasses:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/contactclass/getcontactclass\",\r\n userTenant:\r\n \"https://loganautenticacionportal.azurewebsites.net/api/maestros/obteneruserstenant\",\r\n inspectionStatus: \"https://prd-logan-administracion.azurewebsites.net/api/StatusInspections/getstatusinspections\"\r\n },\r\n advancedSettings: {\r\n contacts: {\r\n get: \"https://prd-logan-administracion.azurewebsites.net/api/contacts/getcontacts\",\r\n create:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/contacts/createcontacts\",\r\n update:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/contacts/updatecontacts\",\r\n sendEmail:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/Transversal/enviaremail\",\r\n },\r\n dropdowns: {\r\n city: \"https://prd-logan-administracion.azurewebsites.net/api/city/getcity\",\r\n countries:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/country/getcountry\",\r\n subtypes:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/subtype/getsubtypeuser\",\r\n types:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/typeuser/gettypeuser\",\r\n },\r\n roles: {\r\n get: \"https://prd-logan-administracion.azurewebsites.net/api/roles/getroles\",\r\n getAll:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/roles/getrolesfeatures\",\r\n create:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/roles/createrol\",\r\n update:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/roles/updateroles\",\r\n },\r\n features: {\r\n get: \"https://prd-logan-administracion.azurewebsites.net/api/features/getfeatures\",\r\n getAll:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/features/getallfeatures\",\r\n create:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/features/createfeature\",\r\n update:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/features/updatefeature\",\r\n },\r\n rules: {\r\n get: \"https://prd-logan-administracion.azurewebsites.net/api/rulejobs/getrulejobs\",\r\n create:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/rulejobs/createrulejobs\",\r\n update:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/rulejobs/updaterulejobs\",\r\n },\r\n },\r\n accounts: {\r\n get: \"https://prd-logan-administracion.azurewebsites.net/api/company/getcompany\",\r\n create:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/company/createcompany\",\r\n update:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/company/updatecompany\",\r\n projectsXcompany:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/company/getcompanyxproject\",\r\n projectsCompany:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/projects/obtenerproyectos\",\r\n },\r\n internalContacts: {\r\n get: \"https://prd-logan-administracion.azurewebsites.net/api/contactinformationrecord/getcontactinformationrecord\",\r\n create:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/contactinformationrecord/createcontactinformationrecord\",\r\n update:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/contactinformationrecord/updatecontactinformationrecord\",\r\n recordsXProperties:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/contactinformationrecord/getcontactinformationrecordsxproperties\",\r\n recordsIds:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/contactinformationrecord/getContactinformationrecordxids\",\r\n recordsXJobs:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/contactinformationrecord/getcontactinformationrecordxjobs\",\r\n recordsXProjects:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/contactinformationrecord/getcontactinformationrecordxproject\",\r\n recordsJobs:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/Jobs/obtenerjobscontactsrecord\",\r\n contactCompanies:\r\n \"https://prd-logan-administracion.azurewebsites.net/api/company/getcompanyxcontacts\",\r\n jobsContact:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/jobs/obtenerjobscontactsrecord\",\r\n propertiesContact:\r\n \"https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/propiedades/obtenerpropertiescontactsrecord\",\r\n },\r\n documents: {\r\n upload: \"https://prd-logan-administracion.azurewebsites.net/api/UpLoadDocument\",\r\n typeBlob: \"https://prd-logan-administracion.azurewebsites.net/api/DocumentBlob/getdocumenttypeblob\",\r\n documentLocationByItem: \"https://prd-logan-administracion.azurewebsites.net/api/DocumentLocation/getdocumentlocationbyitem\",\r\n manageDocument: \"https://prd-logan-administracion.azurewebsites.net/api/DocumentLocation/updatedocumentlocation\",\r\n download: \"https://prd-logan-administracion.azurewebsites.net/api/UploadDocument/getdownload\",\r\n rename: \"https://prd-logan-administracion.azurewebsites.net/api/UploadDocument/RenameAsync\",\r\n },\r\n forgotPassword: {\r\n validateEmail: 'https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/ForgotPassword/forgotpassword',\r\n sendEmailResetPassword: 'https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/ForgotPassword/sendEmailForgot',\r\n validateCode: 'https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/ForgotPassword/comprobarcodigo',\r\n changePassword: 'https://prd-general-logan-autenticacion-portal.azurewebsites.net/api/ForgotPassword/cambioclave'\r\n },\r\n agmConfiguration: {\r\n apiKey: \"AIzaSyDZCXg3yAaca37D9ZqaPLiosC76TOomL4A\",\r\n },\r\n googleRecaptcha: {\r\n siteKey: \"6LceAGopAAAAAAZ4OiZMVipr_4m68vsi31wrywvz\",\r\n },\r\n inspection: {\r\n get: \"https://prd-logan-administracion.azurewebsites.net/api/Inspections/getinspections\",\r\n getByJob: \"https://prd-logan-administracion.azurewebsites.net/api/Inspections/getinspectionsxjob\",\r\n create: \"https://prd-logan-administracion.azurewebsites.net/api/Inspections/createinspections\",\r\n update: \"https://prd-logan-administracion.azurewebsites.net/api/Inspections/updateinspections\"\r\n }\r\n};\r\n","import { enableProdMode } from \"@angular/core\";\nimport { platformBrowserDynamic } from \"@angular/platform-browser-dynamic\";\n\nimport { AppModule } from \"./app/app.module\";\nimport { environment } from \"./environments/environment\";\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\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 = 46700;"],"names":["Component","Inject","FormArray","UntypedFormControl","UntypedFormGroup","Validators","FileUploadValidators","MAT_DIALOG_DATA","MatDialog","MatDialogRef","ProjectsService","ToastrService","NgxSpinnerService","moment","ReplaceKeepFileComponent","UploadFilesComponent","constructor","dialogRef","data","_ProjectsService","toastr","spinner","dialog","filesLimit","files","filesControl","documentFiles","required","ngOnInit","documentFilesValueChanges","valueChanges","subscribe","documentsData","fileForm","get","fileName","keepOrReplaceFile","clear","forEach","file","extension","name","substring","lastIndexOf","replace","openReplaceKeepFileDialog","value","splice","indexOf","setValue","Date","format","documentData","documento","id","idItem","regarding","url","item","documentName","documentType","createdOn","createdBy","sessionStorage","getItem","modifiedOn","modifiedBy","status","push","uploadDocuments","filesToUpload","length","filesFormArray","formData","FormData","append","idFolder","next","success","setFilesUploaded","error","close","open","autoFocus","disableClose","width","Promise","resolve","reject","afterClosed","result","documents","some","document","args","selector","template","Swal","CompanynameComponent","validateForm","companyNameForm","dirty","confirm","fire","title","text","icon","showCancelButton","confirmButtonColor","cancelButtonColor","cancelButtonText","confirmButtonText","then","isConfirmed","companyForm","event","ContactsComponent","formContact","contactForm"],"sourceRoot":"webpack:///","x_google_ignoreList":[107]}