package com.ejie.ab04b.service;

import java.util.List;

import com.ejie.ab04b.exception.AB04BException;
import com.ejie.ab04b.model.VestadisticaFormaPre;
import com.ejie.x38.dto.JQGridRequestDto;
import com.ejie.x38.dto.JQGridResponseDto;
import com.ejie.x38.dto.TableRowDto;

/**
 * VestadisticaFormaPreService generated by UDA, 18-sep-2017 9:23:56.
 * 
 * @author UDA
 */

public interface VestadisticaFormaPreService {

	/**
	 * Inserts a single row in the VestadisticaFormaPre table.
	 * 
	 *  vestadisticaFormaPre
	 *            VestadisticaFormaPre
	 *  VestadisticaFormaPre
	 *
	 * @param vestadisticaFormaPre the vestadistica forma pre
	 * @return the vestadistica forma pre
	 */
	VestadisticaFormaPre add(VestadisticaFormaPre vestadisticaFormaPre);

	/**
	 * Updates a single row in the VestadisticaFormaPre table.
	 * 
	 *  vestadisticaFormaPre
	 *            VestadisticaFormaPre
	 *  VestadisticaFormaPre
	 *
	 * @param vestadisticaFormaPre the vestadistica forma pre
	 * @return the vestadistica forma pre
	 */
	VestadisticaFormaPre update(VestadisticaFormaPre vestadisticaFormaPre);

	/**
	 * Finds a single row in the VestadisticaFormaPre table.
	 * 
	 *  vestadisticaFormaPre
	 *            VestadisticaFormaPre
	 *  VestadisticaFormaPre
	 *
	 * @param vestadisticaFormaPre the vestadistica forma pre
	 * @return the vestadistica forma pre
	 */
	VestadisticaFormaPre find(VestadisticaFormaPre vestadisticaFormaPre);

	/**
	 * Deletes a single row in the VestadisticaFormaPre table.
	 * 
	 *  vestadisticaFormaPre
	 *            VestadisticaFormaPre
	 *
	 * @param vestadisticaFormaPre the vestadistica forma pre
	 */
	void remove(VestadisticaFormaPre vestadisticaFormaPre);

	/**
	 * Finds a list of rows in the VestadisticaFormaPre table.
	 * 
	 *  vestadisticaFormaPre
	 *            VestadisticaFormaPre
	 *  jqGridRequestDto
	 *            JQGridRequestDto
	 *  List<VestadisticaFormaPre>
	 *
	 * @param vestadisticaFormaPre the vestadistica forma pre
	 * @param jqGridRequestDto the jq grid request dto
	 * @return the list
	 */
	List<VestadisticaFormaPre> findAll(
			VestadisticaFormaPre vestadisticaFormaPre,
			JQGridRequestDto jqGridRequestDto);

	/**
	 * Finds rows in the VestadisticaFormaPre table using like.
	 * 
	 *  vestadisticaFormaPre
	 *            VestadisticaFormaPre
	 *  jqGridRequestDto
	 *            JQGridRequestDto
	 *  startsWith
	 *            Boolean
	 *  List<VestadisticaFormaPre>
	 *
	 * @param vestadisticaFormaPre the vestadistica forma pre
	 * @param jqGridRequestDto the jq grid request dto
	 * @param startsWith the starts with
	 * @return the list
	 */
	List<VestadisticaFormaPre> findAllLike(
			VestadisticaFormaPre vestadisticaFormaPre,
			JQGridRequestDto jqGridRequestDto, Boolean startsWith);

	/*
	 * OPERACIONES RUP_TABLE
	 */

	/**
	 * Removes rows from the VestadisticaFormaPre table.
	 * 
	 *  filterVestadisticaFormaPre
	 *            VestadisticaFormaPre
	 *  jqGridRequestDto
	 *            JQGridRequestDto
	 *  startsWith
	 *            Boolean
	 *
	 * @param filterVestadisticaFormaPre the filter vestadistica forma pre
	 * @param jqGridRequestDto the jq grid request dto
	 * @param startsWith the starts with
	 */
	void removeMultiple(VestadisticaFormaPre filterVestadisticaFormaPre,
			JQGridRequestDto jqGridRequestDto, Boolean startsWith);

	/**
	 * Filter method in the VestadisticaFormaPre table.
	 * 
	 *  filterVestadisticaFormaPre
	 *            VestadisticaFormaPre
	 *  jqGridRequestDto
	 *            JQGridRequestDto
	 *  startsWith
	 *            Boolean
	 *  JQGridResponseDto<VestadisticaFormaPre>
	 *
	 * @param filterVestadisticaFormaPre the filter vestadistica forma pre
	 * @param jqGridRequestDto the jq grid request dto
	 * @param startsWith the starts with
	 * @return the JQ grid response dto
	 */
	JQGridResponseDto<VestadisticaFormaPre> filter(
			VestadisticaFormaPre filterVestadisticaFormaPre,
			JQGridRequestDto jqGridRequestDto, Boolean startsWith);

	/**
	 * Searches rows in the VestadisticaFormaPre table.
	 * 
	 *  filterVestadisticaFormaPre
	 *            VestadisticaFormaPre
	 *  searchVestadisticaFormaPre
	 *            VestadisticaFormaPre
	 *  jqGridRequestDto
	 *            JQGridRequestDto
	 *  startsWith
	 *            Boolean
	 *  List<TableRowDto<VestadisticaFormaPre>>
	 *
	 * @param filterVestadisticaFormaPre the filter vestadistica forma pre
	 * @param searchVestadisticaFormaPre the search vestadistica forma pre
	 * @param jqGridRequestDto the jq grid request dto
	 * @param startsWith the starts with
	 * @return the list
	 */
	List<TableRowDto<VestadisticaFormaPre>> search(
			VestadisticaFormaPre filterVestadisticaFormaPre,
			VestadisticaFormaPre searchVestadisticaFormaPre,
			JQGridRequestDto jqGridRequestDto, Boolean startsWith);

	/**
	 * Reorder the selection made in VestadisticaFormaPre table.
	 * 
	 *  filterVestadisticaFormaPre
	 *            VestadisticaFormaPre
	 *  jqGridRequestDto
	 *            JQGridRequestDto
	 *  startsWith
	 *            Boolean
	 *  Object
	 *
	 * @param filterVestadisticaFormaPre the filter vestadistica forma pre
	 * @param jqGridRequestDto the jq grid request dto
	 * @param startsWith the starts with
	 * @return the object
	 */
	Object reorderSelection(VestadisticaFormaPre filterVestadisticaFormaPre,
			JQGridRequestDto jqGridRequestDto, Boolean startsWith);

	/**
	 * Devuelve la ruta del pdf creado.
	 * 
	 *  filtro
	 *            VestadisticaFormaPre
	 *  jqGridRequestDto
	 *            JQGridRequestDto
	 *  String * @throws Exception
	 *
	 * @param filtro the filtro
	 * @param jqGridRequestDto the jq grid request dto
	 * @return the string
	 * @throws AB04BException the AB 04 B exception
	 */
	String filterVestadisticaFormaPrePDF(VestadisticaFormaPre filtro,
			JQGridRequestDto jqGridRequestDto) throws AB04BException;

}
