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

class PlanillaUnica {
  constructor({
    id,
    tipoPlanilla,
    periodo,
    fechaRegistro,
    usuario,
    empleados = [],
  }) {
    this.id = id;
    this.tipoPlanilla = tipoPlanilla;
    this.periodo = periodo;
    this.fechaRegistro = fechaRegistro;
    this.usuario = usuario;
    this.empleados = empleados;
  }

  static async buscar({ tipoPlanilla, periodo, datosNuevos = 0 }) {
    try {
      const respuesta = await metodosFetch.get({
        archivo: "controllers/planillaUnicaController",
        modulo: obtenerNombreModulo(),
        parametros: {
          accion: "buscar",
          tipoPlanilla,
          periodo,
          datosNuevos,
        },
      });

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

  async generar({ tipoArchivo }) {
    try {
      const respuesta = await metodosFetch.post({
        archivo: "controllers/planillaUnicaController",
        modulo: obtenerNombreModulo(),
        data: { accion: "generar", ...this, tipoArchivo },
      });

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

  static async buscarEmpleado({ codempleado }) {
    try {
      const respuesta = await metodosFetch.get({
        archivo: "controllers/planillaUnicaController",
        modulo: obtenerNombreModulo(),
        data: { accion: "buscarEmpleado", codempleado },
      });

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

export default PlanillaUnica;
