Advertisement
Cristian-Paolini

validar Consulta

Sep 13th, 2022
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. validarFormConsultaCreate: function () {
  2.           let valido = true;
  3.  
  4.           let descripcionRegex = /^[a-zA-ZÀ-ÿ\u00f1\u00d1]+(\s*[a-zA-ZÀ-ÿ\u00f1\u00d1]*)*[a-zA-ZÀ-ÿ\u00f1\u00d1]+$/; // Permite letra Ñ, tildes e incluso diéresis
  5.           let fechaRegex = /^\d{2}\/\d{2}\/\d{4}$/;
  6.  
  7.           let keyMedico = this.getView().byId("selectMedico").getSelectedKey();
  8.           let keySalaMedica = this.getView()
  9.             .byId("selectSalaMedica")
  10.             .getSelectedKey();
  11.  
  12.           if (this.getView().byId("selectTurno").getSelectedKey() !== "") {
  13.             let fechaTurnoUnformatted = this.getView()
  14.               .byId("selectTurno")
  15.               .getSelectedItem()
  16.               .getText();
  17.  
  18.             let fechaConsultaUnformatted = this.getView()
  19.               .byId("dpFechaConsulta")
  20.               .getValue();
  21.  
  22.             fechaTurnoUnformatted = new Date(
  23.               formatter.fechaBack(fechaTurnoUnformatted.toString())
  24.             );
  25.             fechaConsultaUnformatted = new Date(
  26.               formatter.fechaBack(fechaConsultaUnformatted.toString())
  27.             );
  28.  
  29.             let fechaTurno = new Date(fechaTurnoUnformatted);
  30.  
  31.             let fechaConsulta = new Date(fechaConsultaUnformatted);
  32.  
  33.             if (fechaTurno >= fechaConsulta) {
  34.               this.getView()
  35.                 .byId("dpFechaConsulta")
  36.                 .setValueState(ValueState.Error);
  37.               this.getView()
  38.                 .byId("dpFechaConsulta")
  39.                 .setValueStateText(
  40.                   "La fecha de consulta debe ser posterior a la del turno."
  41.                 );
  42.  
  43.               this.getView()
  44.                 .byId("selectTurno")
  45.                 .setValueState(ValueState.Error);
  46.               this.getView()
  47.                 .byId("selectTurno")
  48.                 .setValueStateText(
  49.                   "La fecha del turno debe ser anterior a la de la consulta."
  50.                 );
  51.               valido = false;
  52.             }
  53.           }
  54.           let fechaString = this.getView().byId("dpFechaConsulta").getValue();
  55.           let descripcion = this.getView()
  56.             .byId("inputDescripcionConsulta")
  57.             .getValue();
  58.  
  59.           if (keyMedico === "" || Number.isNaN(keyMedico)) {
  60.             this.getView().byId("selectMedico").setValueState(ValueState.Error);
  61.             this.getView()
  62.               .byId("selectMedico")
  63.               .setValueStateText("Debe seleccionar un médico.");
  64.             valido = false;
  65.           } else {
  66.             this.getView().byId("selectMedico").setValueState(ValueState.None);
  67.           }
  68.  
  69.           if (keySalaMedica === "" || Number.isNaN(keySalaMedica)) {
  70.             this.getView()
  71.               .byId("selectSalaMedica")
  72.               .setValueState(ValueState.Error);
  73.             this.getView()
  74.               .byId("selectSalaMedica")
  75.               .setValueStateText("Debe seleccionar una sala médica.");
  76.             valido = false;
  77.           } else {
  78.             this.getView()
  79.               .byId("selectSalaMedica")
  80.               .setValueState(ValueState.None);
  81.           }
  82.  
  83.           if (fechaString === "") {
  84.             this.getView()
  85.               .byId("dpFechaConsulta")
  86.               .setValueState(ValueState.Error);
  87.             this.getView()
  88.               .byId("dpFechaConsulta")
  89.               .setValueStateText("Debe seleccionar una fecha."); // revisar por qué no tira este msj
  90.             valido = false;
  91.           } else if (fechaString.match(fechaRegex) === null) {
  92.             this.getView()
  93.               .byId("dpFechaConsulta")
  94.               .setValueState(ValueState.Error);
  95.             this.getView()
  96.               .byId("dpFechaConsulta")
  97.               .setValueStateText("El formato de fecha no es válido.");
  98.             valido = false;
  99.           } else {
  100.             this.getView()
  101.               .byId("dpFechaConsulta")
  102.               .setValueState(ValueState.None);
  103.           }
  104.  
  105.           const [dia, mes, anio] = fechaString.split("/");
  106.  
  107.           const isoFormattedStr = `${anio}-${mes}-${dia}`;
  108.  
  109.           const date = new Date(isoFormattedStr);
  110.  
  111.           const timestamp = date.getTime();
  112.  
  113.           if (typeof timestamp !== "number" || Number.isNaN(timestamp)) {
  114.             this.getView()
  115.               .byId("dpFechaConsulta")
  116.               .setValueState(ValueState.Error);
  117.             this.getView()
  118.               .byId("dpFechaConsulta")
  119.               .setValueStateText("El formato de fecha no es válido.");
  120.             valido = false;
  121.           } else {
  122.             this.getView()
  123.               .byId("dpFechaConsulta")
  124.               .setValueState(ValueState.None);
  125.           }
  126.  
  127.           if (descripcion === "") {
  128.             this.getView()
  129.               .byId("inputDescripcionConsulta")
  130.               .setValueState(ValueState.Error);
  131.             this.getView()
  132.               .byId("inputDescripcionConsulta")
  133.               .setValueStateText("Debe ingresar un motivo de consulta.");
  134.             valido = false;
  135.           } else if (!descripcionRegex.test(descripcion)) {
  136.             this.getView()
  137.               .byId("inputDescripcionConsulta")
  138.               .setValueState(ValueState.Error);
  139.             this.getView()
  140.               .byId("inputDescripcionConsulta")
  141.               .setValueStateText(
  142.                 "El formato del motivo de consulta no es válido."
  143.               );
  144.             valido = false;
  145.           } else {
  146.             this.getView()
  147.               .byId("inputDescripcionConsulta")
  148.               .setValueState(ValueState.None);
  149.           }
  150.           return valido;
  151.         },
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement