import { Component, Inject, OnInit } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { MESMHSService } from '../../../../services/mes/mesmhs/mesmhs.service';

import {
  MatDialog,
  MatDialogRef,
  MAT_DIALOG_DATA,
} from '@angular/material/dialog';
import * as moment from 'moment';
import { MatSnackBar } from '@angular/material/snack-bar';

@Component({
  selector: 'app-mesmhs-form',
  templateUrl: './mesmhs-form.component.html',
  styleUrls: ['./mesmhs-form.component.css'],
})
export class MESMHSFORMComponent implements OnInit {
  formGroup: FormGroup;
  hide: boolean = false;

  constructor(
    public dialogRef: MatDialogRef<any>,
    private _snackBar: MatSnackBar,
    @Inject(MAT_DIALOG_DATA) public data: any,
    private _mesmhsService: MESMHSService
  ) {
    this.formGroup = this.createFormGroup();
  }

  private createFormGroup() {
    return new FormGroup({
      id_solicitud: new FormControl({
        value: this.data.item.IDSOLICITUD,
        disabled: true,
      }),
      fecha_inicial: new FormControl({
        value: this.formato(this.data.item.FECHAINICIAL),
        disabled: true,
      }),
      fecha_final: new FormControl({
        value: this.formato(this.data.item.FECHAFINAL),
        disabled: true,
      }),
      estatus: new FormControl({
        value: this.data.item.ESTATUS,
        disabled: true,
      }),
      periodo_vacacional: new FormControl({
        value: this.formatoFechaPeriodo(this.data.item.PERIODOVACACIONAL)[0],
        disabled: true,
      }),
      diasdispantes: new FormControl({
        value: this.data.item.DIASDISPANTES > 1 ? `${this.data.item.DIASDISPANTES} días` : `${this.data.item.DIASDISPANTES} dia`,
        disabled: true,
      }),
      diasdispdesp: new FormControl({
        value: this.data.item.DIASDISPDESP > 1 ? `${this.data.item.DIASDISPDESP} días` : `${this.data.item.DIASDISPDESP} dia`,
        disabled: true,
      }),
      motivo: new FormControl({ value: this.data.item.MOTIVO, disabled: true }),
    });
  }

  private formatoFechaPeriodo(item: any) {
    let arrPeriodoVacacional = [];

    let fechaPeriodo = item.split('|');

    arrPeriodoVacacional.push(
      'De ' +
        this.formato(fechaPeriodo[0]) +
        ' a ' +
        this.formato(fechaPeriodo[1])
    );
    return arrPeriodoVacacional;
  }

  private formato(fecha: string) {
    let fechaAux = fecha.split('-');

    return `${fechaAux[2]}-${fechaAux[1]}-${fechaAux[0]}`;
  }
  ngOnInit(): void {}

  get id_uid_solicitudsuario() {
    return this.formGroup.get('id_solicitud');
  }
  get fecha_inicial() {
    return this.formGroup.get('fecha_inicial');
  }
  get fecha_final() {
    return this.formGroup.get('fecha_final');
  }
  get estatus() {
    return this.formGroup.get('estatus');
  }
  get periodo_vacacional() {
    return this.formGroup.get('periodo_vacacional');
  }
  get diasdispantes() {
    return this.formGroup.get('diasdispantes');
  }
  get diasdispdesp() {
    return this.formGroup.get('diasdispdesp');
  }
  get motivo() {
    return this.formGroup.get('motivo');
  }

  private snackAlert(mensaje: string) {
    this._snackBar.open(mensaje, 'Cerrar', {
      duration: 4000,
    });
  }
}
