package com.ejie.m62fb.service;

import com.ejie.x38.dto.Pagination;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.ejie.m62fb.model.M62fbr45s0s00;

/**
 * M62fbr45s0s00Service generated by UDA, 17-oct-2012 15:03:38.
 * 
XXXX
 */

public interface M62fbr45s0s00Service {

	/**
	 * Inserts a single row in the M62fbr45s0s00 table.
	 * 
	 * @param m62fbr45s0s00
	 *            M62fbr45s0s00
	 * @return M62fbr45s0s00
	 */
	M62fbr45s0s00 add(M62fbr45s0s00 m62fbr45s0s00);

	/**
	 * Updates a single row in the M62fbr45s0s00 table.
	 * 
	 * @param m62fbr45s0s00
	 *            M62fbr45s0s00
	 * @return M62fbr45s0s00
	 */
	M62fbr45s0s00 update(M62fbr45s0s00 m62fbr45s0s00);

	/**
	 * Finds a single row in the M62fbr45s0s00 table.
	 * 
	 * @param m62fbr45s0s00
	 *            M62fbr45s0s00
	 * @return M62fbr45s0s00
	 */
	M62fbr45s0s00 find(M62fbr45s0s00 m62fbr45s0s00);

	/**
	 * Finds a List of rows in the M62fbr45s0s00 table.
	 * 
	 * @param m62fbr45s0s00
	 *            M62fbr45s0s00
	 * @param pagination
	 *            Pagination
	 * @return List
	 */
	List<M62fbr45s0s00> findAll(M62fbr45s0s00 m62fbr45s0s00,
			Pagination pagination);

	/**
	 * Counts rows in the M62fbr45s0s00 table.
	 * 
	 * @param m62fbr45s0s00
	 *            M62fbr45s0s00
	 * @return Long
	 */
	Long findAllCount(M62fbr45s0s00 m62fbr45s0s00);

	/**
	 * Finds rows in the M62fbr45s0s00 table using like.
	 * 
	 * @param m62fbr45s0s00
	 *            M62fbr45s0s00
	 * @param pagination
	 *            Pagination
	 * @param startsWith
	 *            Boolean
	 * @return List
	 */
	List<M62fbr45s0s00> findAllLike(M62fbr45s0s00 m62fbr45s0s00,
			Pagination pagination, Boolean startsWith);

	/**
	 * Counts rows in the M62fbr45s0s00 table using like.
	 * 
	 * @param m62fbr45s0s00
	 *            M62fbr45s0s00
	 * @param startsWith
	 *            Boolean
	 * @return Long
	 */
	Long findAllLikeCount(M62fbr45s0s00 m62fbr45s0s00, Boolean startsWith);

	/**
	 * Deletes a single row in the M62fbr45s0s00 table.
	 * 
	 * @param m62fbr45s0s00
	 *            M62fbr45s0s00
	 * @return
	 */
	void remove(M62fbr45s0s00 m62fbr45s0s00);

	/**
	 * Deletes multiple rows in the M62fbr45s0s00 table.
	 * 
	 * @param m62fbr45s0s00List
	 *            List
	 * @return
	 */
	void removeMultiple(List<M62fbr45s0s00> m62fbr45s0s00List);

	/**
	 * Finds rows in the r45t0 table using like.
	 * 
	 * @param idM62r45t0_search
	 *            BigDecimal
	 * @param idPersona_search
	 *            BigDecimal
	 * @param codSitOferta_search
	 *            String
	 * @param fecOfertaDesde_search
	 *            Date
	 * @param fecOfertaHasta_search
	 *            Date
	 * @param fecFinalizacionDesde_search
	 *            Date
	 * @param fecFinalizacionHasta_search
	 *            Date
	 * @param fecDeclinacionDesde_search
	 *            Date
	 * @param fecDeclinacionHasta_search
	 *            Date
	 * @param fecAceptacionDesde_search
	 *            Date
	 * @param fecAceptacionHasta_search
	 *            Date
	 * @param pagination
	 *            Pagination
	 * @return List
	 */
	List<M62fbr45s0s00> findAllPersonalizado(BigDecimal idR45,
			BigDecimal idPersona, String codSitOferta, Date fecOfertaDesde,
			Date fecOfertaHasta, Date fecFinalizacionDesde,
			Date fecFinalizacionHasta, Date fecDeclinacionDesde,
			Date fecDeclinacionHasta, Date fecAceptacionDesde,
			Date fecAceptacionHasta, Pagination pagination);

	/**
	 * Counts rows in the catalogo .
	 * 
	 * @param idM62r45t0_search
	 *            BigDecimal
	 * @param idPersona_search
	 *            BigDecimal
	 * @param codSitOferta_search
	 *            String
	 * @param fecOfertaDesde_search
	 *            Date
	 * @param fecOfertaHasta_search
	 *            Date
	 * @param fecFinalizacionDesde_search
	 *            Date
	 * @param fecFinalizacionHasta_search
	 *            Date
	 * @param fecDeclinacionDesde_search
	 *            Date
	 * @param fecDeclinacionHasta_search
	 *            Date
	 * @param fecAceptacionDesde_search
	 *            Date
	 * @param fecAceptacionHasta_search
	 *            Date
	 * @return Long
	 */
	Long findAllPersonalizadoCount(BigDecimal idR45, BigDecimal idPersona,
			String codSitOferta, Date fecOfertaDesde, Date fecOfertaHasta,
			Date fecFinalizacionDesde, Date fecFinalizacionHasta,
			Date fecDeclinacionDesde, Date fecDeclinacionHasta,
			Date fecAceptacionDesde, Date fecAceptacionHasta);

	/**
	 * Devuelve la descripción del adjudicatario.
	 * 
	 * @param idPersona
	 *            String
	 * @return
	 */
	String getDescAdjudicatario(BigDecimal idPersona);

}
