mesmpr.component.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <div class="centre text-card">
  2. <h1 class="display-1">Bienvenido(a)</h1>
  3. <span class="display-text">{{ usuario }}</span>
  4. </div>
  5. <mat-grid-list cols="12" rowHeight="600px" class="card-title" *ngIf="loading">
  6. <mat-grid-tile colspan="12">
  7. <mat-spinner class="text-secondary"></mat-spinner>
  8. </mat-grid-tile>
  9. </mat-grid-list>
  10. <!-- Periodo Anterior -->
  11. <mat-card class="card-normal-text mat-card-text mat-elevation-z8 animated fadeIn fast" *ngIf="!loading && casoAnterior">
  12. <mat-grid-list cols="12">
  13. <!-- Fila 1 | Periodo | Días disponibles (título) -->
  14. <mat-grid-tile colspan="12">
  15. <div class="ml-5" style="position: absolute; left: 0">
  16. <mat-card-title style="margin-left: auto">
  17. <b>{{ periodoAnterior }}</b>
  18. </mat-card-title>
  19. <span class="display-text">Periodo anterior</span><br>
  20. <span style="margin-top: 5px;"><b>Vencimiento:</b> {{ fechaVencimientoAnterior }}</span>
  21. </div>
  22. <div>
  23. <span class="display-0">Días disponibles</span>
  24. </div>
  25. <div class="mr-5" class="position-right" style="bottom: 10px !important; width: 210px">
  26. <mat-card-title class="display-text">Días por periodo</mat-card-title>
  27. <span class="display-text-small text-secondary"><b>{{ diasPeriodoAnterior }}</b></span>
  28. </div>
  29. </mat-grid-tile>
  30. <!-- Fila 2 | Días Tomados | Días disponibles (Dato) -->
  31. <mat-grid-tile colspan="12">
  32. <h1 class="display-4 text-secondary">
  33. {{ diasDisponiblesAnterior }}
  34. </h1>
  35. <div class="mr-5" class="position-right" style="margin-right: 1%; width: 180px; ">
  36. <mat-card-title class="display-text">Días tomados</mat-card-title>
  37. <span class="display-text-small text-secondary"><b>{{ diasTomadosAnterior }}</b></span>
  38. </div>
  39. </mat-grid-tile>
  40. </mat-grid-list>
  41. <div align="right" style="right: 0; display: flex; align-items: center">
  42. <div style="width: 100%; margin-left: 150px;">
  43. <mat-accordion class="headers-align" style="width: 100%; margin-top: 1%;">
  44. <mat-expansion-panel class="expansion-panel" style="margin-top: 20px;" [disabled]="diasTomadosValid.length === 0">
  45. <mat-expansion-panel-header>
  46. <mat-panel-title>
  47. <mat-icon>calendar_month</mat-icon>
  48. </mat-panel-title>
  49. <mat-panel-description><b>Vacaciones tomadas</b></mat-panel-description>
  50. </mat-expansion-panel-header>
  51. <div class="vacaciones-panel" *ngFor="let periodos of periodos">
  52. <div class="periodo-flex">
  53. <span>Periodo {{ formatoPeriodo(periodos.PERIODO) }}</span>
  54. </div>
  55. <div>
  56. <div *ngFor="let detallePeriodo of formatoDetalles(periodos.DETALLES)">
  57. <mat-divider></mat-divider>
  58. <div class="panel-flex">
  59. <span><b> Fecha inicio: </b>{{ formatoFecha(detallePeriodo.fecha_inicio) }}</span>
  60. <span><b> Fecha fin: </b>{{ formatoFecha(detallePeriodo.fecha_fin) }}</span>
  61. <span><b> Días tomados: </b>{{ detallePeriodo.dias_tomados }}</span>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. </mat-expansion-panel>
  67. </mat-accordion>
  68. </div>
  69. <div style="width: 180px; text-align: center; margin-right: 30px; top: 10px !important;">
  70. <mat-card-title class="display-text">Días solicitados</mat-card-title>
  71. <span class="display-text-small text-secondary"><b> {{ diasSolicitadosAnterior }} </b></span>
  72. </div>
  73. </div>
  74. </mat-card>
  75. <!-- Periodo Actual -->
  76. <mat-card class="card-normal-text mat-card-text mat-elevation-z8 animated fadeIn fast" style="padding-bottom: 15px;"
  77. [style.margin-bottom]="!casoAnterior && !casoEAYG ? '100px' : ''" *ngIf="!loading && casoActual">
  78. <mat-grid-list cols="12" rowHeight="100px">
  79. <!-- Fila 1 | Periodo | Días disponibles (título) -->
  80. <mat-grid-tile colspan="12">
  81. <!-- Periodo Actual -->
  82. <div class="ml-5" style="position: absolute; left: 0">
  83. <mat-card-title style="margin-left: auto">
  84. <b>{{ periodoActual }}</b>
  85. </mat-card-title>
  86. <span class="display-text">Periodo actual</span><br>
  87. <span style="margin-top: 5px;"><b>Vencimiento:</b> {{ fechaVencimientoActual }}</span>
  88. </div>
  89. <div>
  90. <span class="display-0">Días disponibles</span>
  91. </div>
  92. <div class="mr-5" class="position-right" style="bottom: 10px !important; width: 210px;">
  93. <mat-card-title class="display-text">Días por periodo</mat-card-title>
  94. <span class="display-text-small text-secondary"><b>{{ diasPeriodoActual }}</b></span>
  95. </div>
  96. </mat-grid-tile>
  97. <!-- Fila 2 | Días Tomados | Días disponibles (Dato) -->
  98. <mat-grid-tile colspan="12">
  99. <h1 class="display-4 text-secondary">
  100. {{ diasDisponiblesActual }}
  101. </h1>
  102. <div class="mr-5" class="position-right" style="top: 10px !important; margin-right: 1%; width: 180px">
  103. <mat-card-title class="display-text">Días tomados</mat-card-title>
  104. <span class="display-text-small text-secondary"><b> {{ diasTomadosActual }} </b></span>
  105. </div>
  106. </mat-grid-tile>
  107. </mat-grid-list>
  108. <div align="right" style="right: 0; display: flex; align-items: center">
  109. <div style="width: 100%; margin-left: 150px;">
  110. <mat-accordion class="headers-align" style="width: 100%; margin-top: 1%;" *ngIf="!casoAnterior">
  111. <mat-expansion-panel class="expansion-panel" style="margin-top: 20px;" [disabled]="diasTomadosValid.length === 0">
  112. <mat-expansion-panel-header>
  113. <mat-panel-title>
  114. <mat-icon>calendar_month</mat-icon>
  115. </mat-panel-title>
  116. <mat-panel-description><b>Vacaciones tomadas</b></mat-panel-description>
  117. </mat-expansion-panel-header>
  118. <div class="vacaciones-panel" *ngFor="let periodos of periodos">
  119. <div class="periodo-flex">
  120. <span>Periodo {{ formatoPeriodo(periodos.PERIODO) }}</span>
  121. </div>
  122. <div>
  123. <div *ngFor="let detallePeriodo of formatoDetalles(periodos.DETALLES)">
  124. <mat-divider></mat-divider>
  125. <div class="panel-flex">
  126. <span><b> Fecha inicio: </b>{{ formatoFecha(detallePeriodo.fecha_inicio) }}</span>
  127. <span><b> Fecha fin: </b>{{ formatoFecha(detallePeriodo.fecha_fin) }}</span>
  128. <span><b> Días tomados: </b>{{ detallePeriodo.dias_tomados }}</span>
  129. </div>
  130. </div>
  131. </div>
  132. </div>
  133. </mat-expansion-panel>
  134. </mat-accordion>
  135. </div>
  136. <div style="width: 180px; text-align: center; margin-right: 30px;">
  137. <mat-card-title class="display-text">Días solicitados</mat-card-title>
  138. <span class="display-text-small text-secondary"><b> {{ diasSolicitadosActual }} </b></span>
  139. </div>
  140. </div>
  141. </mat-card>
  142. <!-- EASYG -->
  143. <mat-card class="card-normal-text mat-card-text mat-elevation-z8 animated fadeIn fast"
  144. style="padding-bottom: 20px; margin-bottom: 100px;" *ngIf="!loading && casoEAYG">
  145. <mat-grid-list cols="12" rowHeight="100px">
  146. <!-- Fila 1 | Periodo | Días disponibles (título) -->
  147. <mat-grid-tile colspan="12">
  148. <!-- Periodo Actual -->
  149. <div class="ml-5" style="position: absolute; left: 0">
  150. <mat-card-title style="margin-left: auto">
  151. <b>{{ periodoEAYG }}</b>
  152. </mat-card-title>
  153. <span class="display-text">Periodo EAYG</span><br>
  154. <span style="margin-top: 5px;"><b>Vencimiento:</b> {{ fechaVencimientoEAYG }}</span>
  155. </div>
  156. <div>
  157. <span class="display-0">Días disponibles</span>
  158. </div>
  159. <div class="mr-5" class="position-right" style="bottom: 10px !important; width: 210px">
  160. <mat-card-title class="display-text">Días por periodo</mat-card-title>
  161. <span class="display-text-small text-secondary"><b>{{ diasPeriodoEAYG }}</b></span>
  162. </div>
  163. </mat-grid-tile>
  164. <!-- Fila 2 | Días Tomados | Días disponibles (Dato) -->
  165. <mat-grid-tile colspan="12">
  166. <h1 class="display-4 text-secondary">
  167. {{ diasDisponiblesEAYG }}
  168. </h1>
  169. <div class="mr-5" class="position-right" style="top: 10px !important; margin-right: 1%; width: 180px">
  170. <mat-card-title class="display-text">Días tomados</mat-card-title>
  171. <span class="display-text-small text-secondary"><b> {{ diasTomadosEAYG }} </b></span>
  172. </div>
  173. </mat-grid-tile>
  174. </mat-grid-list>
  175. <div align="right" style="right: 0; display: flex; align-items: center">
  176. <div style="width: 100%; margin-left: 150px;">
  177. <mat-accordion class="headers-align" style="width: 100%; margin-top: 1%;" *ngIf="!casoActual && !casoAnterior">
  178. <mat-expansion-panel style="margin-top: 20px;" class="expansion-panel" [disabled]="diasTomadosValid.length === 0">
  179. <mat-expansion-panel-header style="margin: auto;">
  180. <mat-panel-title>
  181. <mat-icon>calendar_month</mat-icon>
  182. </mat-panel-title>
  183. <mat-panel-description><b>Vacaciones tomadas</b></mat-panel-description>
  184. </mat-expansion-panel-header>
  185. <div class="vacaciones-panel" *ngFor="let periodos of periodos">
  186. <div class="periodo-flex">
  187. <span>Periodo {{ formatoPeriodo(periodos.PERIODO) }}</span>
  188. </div>
  189. <div>
  190. <div *ngFor="let detallePeriodo of formatoDetalles(periodos.DETALLES)">
  191. <mat-divider></mat-divider>
  192. <div class="panel-flex">
  193. <span><b> Fecha inicio: </b>{{ formatoFecha(detallePeriodo.fecha_inicio) }}</span>
  194. <span><b> Fecha fin: </b>{{ formatoFecha(detallePeriodo.fecha_fin) }}</span>
  195. <span><b> Días tomados: </b>{{ detallePeriodo.dias_tomados }}</span>
  196. </div>
  197. </div>
  198. </div>
  199. </div>
  200. </mat-expansion-panel>
  201. </mat-accordion>
  202. </div>
  203. <div style="width: 180px; text-align: center; margin-right: 30px;">
  204. <mat-card-title class="display-text">Días solicitados</mat-card-title>
  205. <span class="display-text-small text-secondary"><b> {{ diasSolicitadosEAYG }} </b></span>
  206. </div>
  207. </div>
  208. </mat-card>
  209. <div *ngIf="caso0 && !loading" class="centre">
  210. <h2>Aún no existen periodos vacaciones para este usuario</h2>
  211. </div>