registroAd.component.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. <div class="containerPagina">
  2. <div style="display: flex; justify-content: center; width: 100%; align-items: center;">
  3. <mat-spinner [diameter]="60" *ngIf="isLoading"></mat-spinner>
  4. </div>
  5. <div class="centrar1" style="margin-top: 0%; margin-bottom: 24px;" *ngIf="!isLoading">
  6. <div class="fondo" [style.background-color]="color">
  7. <p class="content" [style.color]="textColor">Registro Administrativo - {{nombreAlumno}}</p>
  8. </div>
  9. </div>
  10. <div style="background-color: white;" class="divRes">
  11. <mat-tab-group mat-stretch-tabs="false" *ngIf="!isLoading" class="mat-elevation-z4" animationDuration="0ms"
  12. (selectedIndexChange)="selected.setValue($event)" [selectedIndex]="selected.value">
  13. <mat-tab label="Generales">
  14. <div style="display: flex; justify-content: center; align-items: center; flex-direction: column;">
  15. <div style="width: 90%; margin-top: 20px;">
  16. <form [formGroup]="form">
  17. <div class="input-label">
  18. <mat-form-field class="FormularioFicha1">
  19. <mat-label class="label f-z">Grado a Cursar</mat-label>
  20. <mat-select name="gradoCursar" formControlName="gradoCursar">
  21. <mat-option [value]="grado.idGrado+grado.idNivel"
  22. *ngFor="let grado of GradoCursar">{{grado.nombreGrado}}</mat-option>
  23. </mat-select>
  24. <mat-hint *ngIf="isValidField('gradoCursar','required')" style="color: red;">El
  25. campo es obligatorio</mat-hint>
  26. </mat-form-field>
  27. <mat-form-field class="FormularioFicha1">
  28. <mat-label class="label f-z">Mes de Inscripción</mat-label>
  29. <mat-select name="mesInscripcion" formControlName="mesInscripcion">
  30. <mat-option [value]="mes.id" *ngFor="let mes of Mes">{{mes.nombre}}</mat-option>
  31. </mat-select>
  32. <mat-hint *ngIf="isValidField('mesInscripcion','required')" style="color: red;">El
  33. campo es obligatorio</mat-hint>
  34. </mat-form-field>
  35. <mat-form-field class="FormularioFicha1">
  36. <mat-label class="label f-z">Plan de Pagos de Colegiatura</mat-label>
  37. <mat-select name="planPago" formControlName="planPago">
  38. <mat-option [value]="pago.idPlanPago"
  39. *ngFor="let pago of planPago">{{pago.nombrePlanPago}}</mat-option>
  40. </mat-select>
  41. <mat-hint *ngIf="isValidField('planPago','required')" style="color: red;">El campo
  42. es obligatorio</mat-hint>
  43. </mat-form-field>
  44. </div>
  45. <mat-form-field class="FormularioFicha1 M-L" style="margin-left: 7%;">
  46. <mat-label class="label f-z">¿Cuenta con Beca para este curso?</mat-label>
  47. <mat-select name="becaCurso" formControlName="becaCurso">
  48. <mat-option value="Si">Si</mat-option>
  49. <mat-option value="No">No</mat-option>
  50. </mat-select>
  51. <mat-hint *ngIf="isValidField('becaCurso','required')" style="color: red;">El campo es
  52. obligatorio</mat-hint>
  53. </mat-form-field>
  54. <mat-form-field class="FormularioFicha1 M-L" style="margin-left: 7%;">
  55. <mat-label class="label f-z">Porcentaje de Beca:</mat-label>
  56. <mat-select name="becaPorcentaje" formControlName="becaPorcentaje">
  57. <mat-option [value]="por.idPorcentajeBeca"
  58. *ngFor=" let por of porcentaje">{{por.nombrePorcentajeBeca}}</mat-option>
  59. </mat-select>
  60. <mat-hint *ngIf="isValidField('becaPorcentaje','required')" style="color: red;">El campo
  61. es obligatorio</mat-hint>
  62. </mat-form-field>
  63. </form>
  64. <div class="botones" style="margin-top: 5px; margin-bottom: 10px;">
  65. <div style="display: flex; justify-content: space-evenly; width: 15%;" class="btn-res">
  66. <button class="btn1 borderNone" (click)="siguienteTap(1)">Siguiente
  67. <mat-icon>chevron_right</mat-icon></button>
  68. <button class="btn1 borderNone" style="background-color: red;" (click)="Salir()">Salir
  69. <mat-icon>cancel</mat-icon></button>
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. </mat-tab>
  75. <mat-tab label="Facturación" [disabled]="this.form.invalid">
  76. <div style="display: flex; justify-content: center; align-items: center; flex-direction: column;">
  77. <div class="textAdvertencia1">
  78. <p> <mat-icon style="color: #f19696;">info</mat-icon> A los Padres de Familia que requieran
  79. Factura,
  80. se les informa que el costo para el uso de Sistema de Facturación para el Ciclo Escolar
  81. es de $ 100.00 por alumno mismos que deberán ser pagados en el Colegio.</p>
  82. </div>
  83. <div style="width: 90%; margin-top: 20px;">
  84. <form [formGroup]="form2">
  85. <div class="input-label">
  86. <section class="radio-Button" style="width: 24%;">
  87. <label class="label-check">¿Requiere Factura Electrónica?</label>
  88. <mat-radio-group [(ngModel)]="radioButton" formControlName="factura" color="primary"
  89. (change)="factura($event)">
  90. <mat-radio-button value="Si">Si</mat-radio-button>
  91. <mat-radio-button value="No">No</mat-radio-button>
  92. </mat-radio-group>
  93. <div class="mensajeError">
  94. <mat-hint *ngIf="isValidField1('factura','required')" class="error">El campo es
  95. obligatorio</mat-hint>
  96. </div>
  97. </section>
  98. <mat-form-field class="FormularioFicha1">
  99. <mat-label class="label f-z">Método de Pago de Colegiatura:</mat-label>
  100. <mat-select formControlName="metedoPago">
  101. <mat-option [value]="pago.idMetodoPago"
  102. *ngFor="let pago of MetodoPago">{{pago.nombreMetodoPago}}</mat-option>
  103. </mat-select>
  104. <mat-hint *ngIf="isValidField1('metedoPago','required')" style="color: red;">El
  105. campo es obligatorio</mat-hint>
  106. </mat-form-field>
  107. <mat-form-field class="FormularioFicha1">
  108. <mat-label class="label f-z">R.F.C. al que se emitirán las Facturas:</mat-label>
  109. <input type="text" matInput class="input-Form" formControlName="RFCFactura">
  110. <mat-hint *ngIf="isValidField1('RFCFactura','required')" style="color: red;">El
  111. campo es obligatorio</mat-hint>
  112. </mat-form-field>
  113. </div>
  114. <mat-form-field class="FormularioFicha1 M-L" style="margin-left: 5%; width: 29%;">
  115. <mat-label class="label f-z">Nombre o Razón Social al que se emitirán las
  116. Facturas:</mat-label>
  117. <input type="text" matInput class="input-Form" formControlName="razonSocial">
  118. <mat-hint *ngIf="isValidField1('razonSocial','required')" style="color: red;">El campo
  119. es obligatorio</mat-hint>
  120. </mat-form-field>
  121. <mat-form-field class="FormularioFicha1 M-L" style="margin-left: 4%;">
  122. <mat-label class="label f-z">Domicilio para Facturación:</mat-label>
  123. <input type="text" maxlength="0" matInput class="input-Form"
  124. formControlName="domicilioFactura" readonly>
  125. <mat-hint
  126. *ngIf="this.form2.value.factura === 'Si'"
  127. style="color: blue; cursor: pointer;"
  128. (click)="Asistente()">
  129. Haga click aquí para abrir el Asistente de Captura
  130. </mat-hint>
  131. <mat-hint *ngIf="isValidField1('domicilioFactura','required')" style="color: red;">El
  132. campo es obligatorio</mat-hint>
  133. </mat-form-field>
  134. <mat-form-field class="FormularioFicha1 M-L" style="margin-left: 7%;">
  135. <mat-label class="label f-z">Correo donde se enviarán las Facturas:</mat-label>
  136. <input type="email" matInput class="input-Form" formControlName="correoFactura">
  137. <mat-hint *ngIf="isValidField1('correoFactura','required')" style="color: red;">El campo
  138. esobligatorio</mat-hint>
  139. <mat-hint *ngIf="isValidField1('correoFactura','pattern')" style="color: red;">Ingrese
  140. un correo valido</mat-hint>
  141. </mat-form-field>
  142. <!-- Reemplazar el input de archivo existente con este código mejorado -->
  143. <div class="file-upload-container" style="margin-top: 20px; width: 100%;">
  144. <mat-form-field
  145. class="FormularioFicha1"
  146. style="width: 100%;"
  147. *ngIf="form2.get('constanciaFiscal')?.enabled"
  148. >
  149. <mat-label class="label f-z">Constancia Fiscal</mat-label>
  150. <input
  151. matInput
  152. readonly
  153. [value]="form2.get('constanciaFiscal')?.value || 'Ningún archivo seleccionado'"
  154. class="input-Form"
  155. >
  156. <mat-hint style="color: gray;">
  157. Adjuntar Constancia Fiscal (Solo archivos PDF, máximo 5MB)
  158. </mat-hint>
  159. </mat-form-field>
  160. <div style="display: flex; gap: 10px; margin-top: 10px; align-items: center;">
  161. <input
  162. type="file"
  163. #fileInput
  164. accept=".pdf"
  165. (change)="onFileSelected($event)"
  166. style="display: none;">
  167. <button
  168. *ngIf="form2.get('constanciaFiscal')?.enabled"
  169. type="button"
  170. class="btn1 borderNone"
  171. style="background-color: #2196F3; color: white; padding: 8px 16px;"
  172. (click)="fileInput.click()"
  173. >
  174. <mat-icon>upload_file</mat-icon>
  175. Seleccionar Archivo
  176. </button>
  177. <button
  178. type="button"
  179. class="btn1 borderNone"
  180. style="background-color: #e53935; color: white; margin-top: 10px;"
  181. (click)="eliminarArchivo()"
  182. *ngIf="rutaArchivo"
  183. >
  184. <mat-icon>delete</mat-icon>
  185. Eliminar archivo
  186. </button>
  187. </div>
  188. <!-- Mostrar información del archivo seleccionado -->
  189. <div *ngIf="selectedFile" style="margin-top: 10px; padding: 10px; background-color: #f0f0f0; border-radius: 4px;">
  190. <p style="margin: 0; color: #333;">
  191. <mat-icon style="vertical-align: middle; margin-right: 5px;">description</mat-icon>
  192. {{ selectedFile.name }} ({{ (selectedFile.size / 1024 / 1024).toFixed(2) }} MB)
  193. </p>
  194. </div>
  195. </div>
  196. </form>
  197. <div class="botones" style="margin-bottom: 20px; margin-top: 20px;">
  198. <div style="display: flex; justify-content: space-evenly; width: 24%;" class="btn-res1">
  199. <button class="btn1 borderNone w-btn" style="width: 225px;"
  200. (click)="guardarFormulario()">Guardar Registro
  201. Administrativo<mat-icon>description</mat-icon></button>
  202. <button class="btn1 borderNone" style="background-color: red;" (click)="Salir()">Salir
  203. <mat-icon>cancel</mat-icon></button>
  204. </div>
  205. </div>
  206. </div>
  207. </div>
  208. </mat-tab>
  209. </mat-tab-group>
  210. </div>
  211. </div>