package com.ejie.ab63.dao;

import javax.annotation.Resource;
import javax.sql.DataSource;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.ejie.ab63.model.ExpedientesRelacionados;
import com.ejie.ab63.util.PermisosXLNETS;

/**
 * Ab6343s00DaoImpl  
 * 
 *  
 */

@Repository
@Transactional
public class ExpedientesRelacionadosDaoImpl implements ExpedientesRelacionadosDao {

	public static final String[] ORDER_BY_WHITE_LIST = new String[] { "IDRELESTEXPNB29", "IDESTABLECIMIENTO",
			"NUMEXPEDIENTE", "TITULOEXP", "ESTADO", "FECHAAPERTURA", "FOLDERID", "NOMBREPROC", "FECHAREGISTRO",
			"USUARIOREGISTRO", "FECHAULTMODIFICACION", "USUARIOULTMODIFICACION" };

	private JdbcTemplate jdbcTemplate;

	/**
	 * Method use to set the datasource.
	 *
	 * @param dataSource
	 *            DataSource
	 * @return
	 */
	@Resource
	public void setDataSource(DataSource dataSource) {
		this.jdbcTemplate = new JdbcTemplate(dataSource);
	}

	/*
	 * OPERACIONES CRUD
	 */

	/**
	 * Inserts a single row in the Ab6343s00 table.
	 *
	 * @param ab6343s00
	 *            Ab6343s00
	 * @return Ab6343s00
	 */
	public ExpedientesRelacionados add(ExpedientesRelacionados expedienteRelacionado) {
		String query = "INSERT INTO AB61.AB6124T00 (ID_EXP_HISTORICO, FOLDER_NUMBER, FOLDER_ID, TITULO, FECHA_APERTURA, NOM_PROCEDIMIENTO, ID_ESTABLECIMIENTO, ESTADO, FECHA_REGISTRO, USUARIO_REGISTRO, ORIGEN) VALUES (AB61.S_AB6124T00.NEXTVAL,?,?,?,?,?,?,?,SYSDATE,?,?)";

		int ORIGEN_CENSO = 2;

		this.jdbcTemplate.update(query, expedienteRelacionado.getFolderNumber(), expedienteRelacionado.getFolderId(),
				expedienteRelacionado.getTituloExpediente(), expedienteRelacionado.getFechaApertura(),
				expedienteRelacionado.getNombreProc(), expedienteRelacionado.getIdEstablecimiento(),
				expedienteRelacionado.getEstado(), PermisosXLNETS.getUserConnected(), ORIGEN_CENSO);
		return expedienteRelacionado;
	}
}
