Kaynağa Gözat

Corrección de navegación de submódulos

JoseBrito 1 yıl önce
ebeveyn
işleme
26e5affb8d

Dosya farkı çok büyük olduğundan ihmal edildi
+ 235 - 285
sistema-mantenimiento-front/package-lock.json


+ 1 - 1
sistema-mantenimiento-front/src/app/components/acquisition-management/acquisition-management.component.html

@@ -6,7 +6,7 @@
 
 <div class="menu-card">
 
-  @for (submodule of arrSubmodules; track submodule) {
+  @for (submodule of submodules; track submodule) {
     <mat-card class="animated fadeIn fast centre menu-card-item" (click)="openMenu(submodule)">
       @if (submodule.IMAGENSUBMODULO !== null) {
         <img mat-card-md-image [src]="'assets/img/' + submodule.IMAGENSUBMODULO + '.svg'">

+ 73 - 22
sistema-mantenimiento-front/src/app/components/acquisition-management/acquisition-management.component.ts

@@ -10,6 +10,7 @@ import { MatDialog } from '@angular/material/dialog';
 import { Router } from '@angular/router';
 import { ResponseData } from 'src/app/interfaces/response-data';
 import { PurchasePurpose } from 'src/app/interfaces/acquisition-management/purchase-purpose.interface';
+import { Permissions, PermissionsInterface } from 'src/app/interfaces/permissions.interface';
 
 @Component({
   selector: 'app-acquisition-management',
@@ -17,39 +18,89 @@ import { PurchasePurpose } from 'src/app/interfaces/acquisition-management/purch
   styleUrls: ['./acquisition-management.component.css']
 })
 export class AcquisitionManagementComponent implements OnInit {
+  isLoading: boolean;
+  hasError: boolean;
+  errorStr: string;
+  submodules: Submodules[];
+  submodulesAux: Submodules[];
 
-  public arrSubmodules: Array<Submodules>;
-  public isLoading: boolean;
-  public hasError: boolean;
-  public errorStr: string;
   constructor( 
-    private _encService: EncService, 
-    public resourcesService: ResourcesService, 
+    private _encService: EncService,
     private _modulesService: ModulesService,
     private _dialog: MatDialog,
     private _router: Router,
   ) {
-    this.arrSubmodules = [];
-    this.isLoading = false;
+    this.isLoading = true;
     this.hasError = false;
     this.errorStr = '';
+    this.submodules = [];
+    this.submodulesAux = [];
   }
 
-  async ngOnInit() {
-    this.isLoading = true;
-    const moduleEnc = await this._encService.encrypt('S002V01M05GEAD');
-    const user: string = this.resourcesService.getUser();
-    const line: number = this.resourcesService.getLineNumber();
-    await lastValueFrom(this._modulesService.getSubmodules(moduleEnc, user, line)).then(
-      (responseData: SubmodulesResponse) => {
-        if (!responseData.error) {
-          this.arrSubmodules = responseData.response;          
-        } else {
-          this.errorStr = `${responseData.msg}`;
+  ngOnInit(): void {
+    this.getSubmodules();
+  }
+
+  async getSubmodules(){
+    try{
+      let permissionsEnc = localStorage.getItem('permisos');
+      let permissionsDec = '';
+      if(permissionsEnc == '' || permissionsEnc == undefined || permissionsEnc == null){
+        permissionsDec = '[]';
+      }else{
+        permissionsDec = await this._encService.decrypt(permissionsEnc!);
+      }
+
+      let permissionsArr: Permissions = JSON.parse(permissionsDec);
+      let permFun: PermissionsInterface[] = [];
+      if(permissionsArr.permissions == undefined){
+        permFun = [];
+      }else{
+        permFun = permissionsArr.permissions.filter(item => item.id == 'S002V01M05GEAD');
+      }
+      
+      let moduleEnc = await this._encService.encrypt('S002V01M05GEAD');
+      let idEnc = localStorage.getItem('idusuario')!;
+      let submodules: SubmodulesResponse = await lastValueFrom(this._modulesService.getSubmodules(
+        moduleEnc,
+        idEnc, 
+        1
+      ));
+
+      this.hasError = submodules.error;
+      this.errorStr = submodules.msg;
+
+      if(!this.hasError){
+        for(const submodule of submodules.response){
+          let idSub = await this._encService.decrypt(submodule.IDSUBMODULO);
+          submodule.IDSUBMODULO = idSub;
+
+          if(permFun.length > 0){
+            let subm = permFun[0].children.filter(item2 => idSub == item2.id);
+            if(subm.length > 0){
+              if(subm[0].access > 0){
+                this.submodules.push(submodule);
+              }
+            }
+          }
         }
-      }, (httpErrorResponse:HttpErrorResponse) => this.errorStr = this.resourcesService.checkErrorsStr(httpErrorResponse)
-    );
-    this.isLoading = false;
+
+        this.submodulesAux = submodules.response;
+      }
+
+      this.isLoading = false;
+    }catch(error: any){
+      if(error.error == undefined){
+        this.errorStr = "Ocurrió un error inesperado.";
+      }else if(error.error.msg == undefined){
+        this.errorStr = "Ocurrió un error inesperado.";
+      }else{
+        this.errorStr = error.error.msg;
+      }
+
+      this.hasError = true;
+      this.isLoading = false;
+    }
   }
 
   public async openMenu(submodule: Submodules){

+ 37 - 2
sistema-mantenimiento-front/src/app/components/corrective-maintenance/corrective-maintenance.component.ts

@@ -7,6 +7,7 @@ import { Submodules, SubmodulesResponse } from 'src/app/interfaces/submodules.in
 import { EncService } from 'src/app/services/enc/enc.service';
 import { ModulesService } from 'src/app/services/modules.service';
 import { SubmoduleFunctionsComponent } from '../template/menu-item/submodule-functions/submodule-functions.component';
+import { Permissions, PermissionsInterface } from 'src/app/interfaces/permissions.interface';
 
 @Component({
   selector: 'app-corrective-maintenance',
@@ -18,6 +19,7 @@ export class CorrectiveMaintenanceComponent implements OnInit {
   hasError: boolean;
   errorStr: string;
   submodules: Submodules[];
+  submodulesAux: Submodules[];
 
   constructor(
     private _encService: EncService,
@@ -29,6 +31,7 @@ export class CorrectiveMaintenanceComponent implements OnInit {
     this.hasError = false;
     this.errorStr = '';
     this.submodules = [];
+    this.submodulesAux = [];
   }
 
   ngOnInit(): void {
@@ -37,21 +40,53 @@ export class CorrectiveMaintenanceComponent implements OnInit {
 
   async getSubmodules(){
     try{
+      let permissionsEnc = localStorage.getItem('permisos');
+      let permissionsDec = '';
+      if(permissionsEnc == '' || permissionsEnc == undefined || permissionsEnc == null){
+        permissionsDec = '[]';
+      }else{
+        permissionsDec = await this._encService.decrypt(permissionsEnc!);
+      }
+
+      let permissionsArr: Permissions = JSON.parse(permissionsDec);
+      let permFun: PermissionsInterface[] = [];
+      if(permissionsArr.permissions == undefined){
+        permFun = [];
+      }else{
+        permFun = permissionsArr.permissions.filter(item => item.id == 'S002V01M09GMCO');
+      }
+
       let moduleEnc = await this._encService.encrypt('S002V01M09GMCO');
       let idEnc = localStorage.getItem('idusuario')!;
+
       let submodules: SubmodulesResponse = await lastValueFrom(this._modulesService.getSubmodules(
         moduleEnc,
         idEnc, 
         1
       ));
 
-      this.isLoading = false;
       this.hasError = submodules.error;
       this.errorStr = submodules.msg;
 
       if(!this.hasError){
-        this.submodules = submodules.response;
+        for(const submodule of submodules.response){
+          let idSub = await this._encService.decrypt(submodule.IDSUBMODULO);
+          submodule.IDSUBMODULO = idSub;
+
+          if(permFun.length > 0){
+            let subm = permFun[0].children.filter(item2 => idSub == item2.id);
+            if(subm.length > 0){
+              if(subm[0].access > 0){
+                this.submodules.push(submodule);
+              }
+            }
+          }
+        }
+
+        this.submodulesAux = submodules.response;
       }
+
+      this.isLoading = false;
     }catch(error: any){
       if(error.error == undefined){
         this.errorStr = "Ocurrió un error inesperado.";

+ 36 - 2
sistema-mantenimiento-front/src/app/components/counters-activators/counters-activators.component.ts

@@ -6,6 +6,7 @@ import { ModulesService } from 'src/app/services/modules.service';
 import { SubmoduleFunctionsComponent } from '../template/menu-item/submodule-functions/submodule-functions.component';
 import { MatDialog } from '@angular/material/dialog';
 import { Router } from '@angular/router';
+import { Permissions, PermissionsInterface } from 'src/app/interfaces/permissions.interface';
 
 @Component({
   selector: 'app-counters-activators',
@@ -17,6 +18,7 @@ export class CountersActivatorsComponent implements OnInit {
   hasError: boolean;
   errorStr: string;
   submodules: Submodules[];
+  submodulesAux: Submodules[];
 
   constructor(
     private _encService: EncService,
@@ -28,6 +30,7 @@ export class CountersActivatorsComponent implements OnInit {
     this.hasError = false;
     this.errorStr = '';
     this.submodules = [];
+    this.submodulesAux = [];
   }
 
   ngOnInit(): void {
@@ -36,6 +39,22 @@ export class CountersActivatorsComponent implements OnInit {
 
   async getSubmodules(){
     try{
+      let permissionsEnc = localStorage.getItem('permisos');
+      let permissionsDec = '';
+      if(permissionsEnc == '' || permissionsEnc == undefined || permissionsEnc == null){
+        permissionsDec = '[]';
+      }else{
+        permissionsDec = await this._encService.decrypt(permissionsEnc!);
+      }
+
+      let permissionsArr: Permissions = JSON.parse(permissionsDec);
+      let permFun: PermissionsInterface[] = [];
+      if(permissionsArr.permissions == undefined){
+        permFun = [];
+      }else{
+        permFun = permissionsArr.permissions.filter(item => item.id == 'S002V01M06COAC');
+      }
+      
       let moduleEnc = await this._encService.encrypt('S002V01M06COAC');
       let idEnc = localStorage.getItem('idusuario')!;
       let submodules: SubmodulesResponse = await lastValueFrom(this._modulesService.getSubmodules(
@@ -44,13 +63,28 @@ export class CountersActivatorsComponent implements OnInit {
         1
       ));
 
-      this.isLoading = false;
       this.hasError = submodules.error;
       this.errorStr = submodules.msg;
 
       if(!this.hasError){
-        this.submodules = submodules.response;
+        for(const submodule of submodules.response){
+          let idSub = await this._encService.decrypt(submodule.IDSUBMODULO);
+          submodule.IDSUBMODULO = idSub;
+
+          if(permFun.length > 0){
+            let subm = permFun[0].children.filter(item2 => idSub == item2.id);
+            if(subm.length > 0){
+              if(subm[0].access > 0){
+                this.submodules.push(submodule);
+              }
+            }
+          }
+        }
+
+        this.submodulesAux = submodules.response;
       }
+
+      this.isLoading = false;
     }catch(error: any){
       if(error.error == undefined){
         this.errorStr = "Ocurrió un error inesperado.";

+ 36 - 3
sistema-mantenimiento-front/src/app/components/personal-management/personal-management.component.ts

@@ -7,6 +7,7 @@ import { Submodules, SubmodulesResponse } from 'src/app/interfaces/submodules.in
 import { EncService } from 'src/app/services/enc/enc.service';
 import { ModulesService } from 'src/app/services/modules.service';
 import { SubmoduleFunctionsComponent } from '../template/menu-item/submodule-functions/submodule-functions.component';
+import { Permissions, PermissionsInterface } from 'src/app/interfaces/permissions.interface';
 
 @Component({
   selector: 'app-personal-management',
@@ -18,7 +19,7 @@ export class PersonalManagementComponent implements OnInit {
   hasError: boolean;
   errorStr: string;
   submodules: Submodules[];
-
+  submodulesAux: Submodules[];
 
   constructor(
     private _encService: EncService,
@@ -31,6 +32,7 @@ export class PersonalManagementComponent implements OnInit {
     this.hasError = false;
     this.errorStr = "";
     this.submodules = [];
+    this.submodulesAux = [];
   }
 
   ngOnInit(): void {
@@ -39,6 +41,22 @@ export class PersonalManagementComponent implements OnInit {
 
   async getSubmodules(){
     try{
+      let permissionsEnc = localStorage.getItem('permisos');
+      let permissionsDec = '';
+      if(permissionsEnc == '' || permissionsEnc == undefined || permissionsEnc == null){
+        permissionsDec = '[]';
+      }else{
+        permissionsDec = await this._encService.decrypt(permissionsEnc!);
+      }
+
+      let permissionsArr: Permissions = JSON.parse(permissionsDec);
+      let permFun: PermissionsInterface[] = [];
+      if(permissionsArr.permissions == undefined){
+        permFun = [];
+      }else{
+        permFun = permissionsArr.permissions.filter(item => item.id == 'S002V01M11GPRS');
+      }
+      
       let moduleEnc = await this._encService.encrypt('S002V01M11GPRS');
       let idEnc = localStorage.getItem('idusuario')!;
       let submodules: SubmodulesResponse = await lastValueFrom(this._modulesService.getSubmodules(
@@ -47,13 +65,28 @@ export class PersonalManagementComponent implements OnInit {
         1
       ));
 
-      this.isLoading = false;
       this.hasError = submodules.error;
       this.errorStr = submodules.msg;
 
       if(!this.hasError){
-        this.submodules = submodules.response;
+        for(const submodule of submodules.response){
+          let idSub = await this._encService.decrypt(submodule.IDSUBMODULO);
+          submodule.IDSUBMODULO = idSub;
+
+          if(permFun.length > 0){
+            let subm = permFun[0].children.filter(item2 => idSub == item2.id);
+            if(subm.length > 0){
+              if(subm[0].access > 0){
+                this.submodules.push(submodule);
+              }
+            }
+          }
+        }
+
+        this.submodulesAux = submodules.response;
       }
+
+      this.isLoading = false;
     }catch(error: any){
       if(error.error == undefined){
         this.errorStr = "Ocurrió un error inesperado.";

+ 37 - 3
sistema-mantenimiento-front/src/app/components/preventive-maintenance/preventive-maintenance.component.ts

@@ -8,6 +8,7 @@ import { ModulesService } from 'src/app/services/modules.service';
 import { SubmoduleFunctionsResponse } from 'src/app/interfaces/submodule-functions.interface';
 import { SubmoduleFunctionsComponent } from '../template/menu-item/submodule-functions/submodule-functions.component';
 import { Router } from '@angular/router';
+import { Permissions, PermissionsInterface } from 'src/app/interfaces/permissions.interface';
 
 @Component({
   selector: 'app-preventive-maintenance',
@@ -19,6 +20,7 @@ export class PreventiveMaintenanceComponent implements OnInit {
   hasError: boolean;
   errorStr: string;
   submodules: Submodules[];
+  submodulesAux: Submodules[];
 
   constructor(
     private _encService: EncService,
@@ -31,6 +33,7 @@ export class PreventiveMaintenanceComponent implements OnInit {
     this.hasError = false;
     this.errorStr = "";
     this.submodules = [];
+    this.submodulesAux = [];
   }
 
   ngOnInit(): void {
@@ -39,6 +42,22 @@ export class PreventiveMaintenanceComponent implements OnInit {
 
   async getSubmodules(){
     try{
+      let permissionsEnc = localStorage.getItem('permisos');
+      let permissionsDec = '';
+      if(permissionsEnc == '' || permissionsEnc == undefined || permissionsEnc == null){
+        permissionsDec = '[]';
+      }else{
+        permissionsDec = await this._encService.decrypt(permissionsEnc!);
+      }
+
+      let permissionsArr: Permissions = JSON.parse(permissionsDec);
+      let permFun: PermissionsInterface[] = [];
+      if(permissionsArr.permissions == undefined){
+        permFun = [];
+      }else{
+        permFun = permissionsArr.permissions.filter(item => item.id == 'S002V01M10GMPR');
+      }
+
       let moduleEnc = await this._encService.encrypt('S002V01M10GMPR');
       let idEnc = localStorage.getItem('idusuario')!;
       let submodules: SubmodulesResponse = await lastValueFrom(this._modulesService.getSubmodules(
@@ -47,13 +66,28 @@ export class PreventiveMaintenanceComponent implements OnInit {
         1
       ));
 
-      this.isLoading = false;
       this.hasError = submodules.error;
       this.errorStr = submodules.msg;
 
       if(!this.hasError){
-        this.submodules = submodules.response;
+        for(const submodule of submodules.response){
+          let idSub = await this._encService.decrypt(submodule.IDSUBMODULO);
+          submodule.IDSUBMODULO = idSub;
+
+          if(permFun.length > 0){
+            let subm = permFun[0].children.filter(item2 => idSub == item2.id);
+            if(subm.length > 0){
+              if(subm[0].access > 0){
+                this.submodules.push(submodule);
+              }
+            }
+          }
+        }
+
+        this.submodulesAux = submodules.response;
       }
+
+      this.isLoading = false;
     }catch(error: any){
       if(error.error == undefined){
         this.errorStr = "Ocurrió un error inesperado.";
@@ -95,4 +129,4 @@ export class PreventiveMaintenanceComponent implements OnInit {
       duration: 2500, 
     })
   }
-}
+}

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor