import metodosFetch from "../../../../assets/js/app/metodosFetch.js?v=2.0.0";
import { obtenerNombreModulo } from "../../../../assets/js/app/funcionesGenerales.js?v=2.0.0";

class HoraExtra {
  static async verificarArchivo({ archivo }) {
    try {
      const data = new FormData();
      data.append("archivo", archivo);
      data.append("accion", "verificarArchivo");

      const respuesta = await metodosFetch.postWithFiles({
        archivo: `controllers/horaExtraController`,
        modulo: obtenerNombreModulo(),
        data,
      });

      return respuesta;
    } catch (err) {
      throw err;
    }
  }

  static async guardarMasivo({ id, mesPago, quincenaPago, horasExtras }) {
    try {
      const respuesta = await metodosFetch.post({
        modulo: obtenerNombreModulo(),
        archivo: `controllers/horaExtraController`,
        data: {
          accion: "guardarMasivo",
          id,
          mesPago,
          quincenaPago,
          horasExtras,
        },
      });

      return respuesta;
    } catch (err) {
      throw err;
    }
  }

  static async obtenerProcesosPorTipoPlanillaAnio({
    codtipoplanilla,
    anio = moment().format("YYYY"),
  }) {
    try {
      const respuesta = await metodosFetch.get({
        modulo: obtenerNombreModulo(),
        archivo: `controllers/horaExtraController`,
        parametros: {
          accion: "obtenerProcesosPorTipoPlanillaAnio",
          codtipoplanilla,
          anio,
        },
      });

      return respuesta;
    } catch (err) {
      throw err;
    }
  }

  static async eliminarProcesoCarga({ id }) {
    try {
      const respuesta = await metodosFetch.post({
        modulo: obtenerNombreModulo(),
        archivo: `controllers/horaExtraController`,
        data: {
          accion: "eliminarProcesoCarga",
          id,
        },
      });

      return respuesta;
    } catch (err) {
      throw err;
    }
  }

  static async obtenerPorProcesoMasivo({ id }) {
    try {
      const respuesta = await metodosFetch.get({
        modulo: obtenerNombreModulo(),
        archivo: `controllers/horaExtraController`,
        parametros: {
          accion: "obtenerPorProcesoMasivo",
          id,
        },
      });

      return respuesta;
    } catch (err) {
      throw err;
    }
  }
}

export default HoraExtra;
