package trismegistoplanilla.sqlserverdao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.json.JSONObject;
import trismegistoplanilla.beans.AreaBean;
import trismegistoplanilla.beans.CargoBean;
import trismegistoplanilla.dao.AreaCargoDAO;
import trismegistoplanilla.utilities.ResponseHelper;
import trismegistoplanilla.utilities.Variables;

public class AreaCargoSqlserverDAO implements AreaCargoDAO {

	@Override
	public JSONObject obtenerAreaCargo(AreaBean a, CargoBean c) {
		System.out.println("AreaCargoSqlserverDAO: obtenerAreaCargo");
		JSONObject JOObtenerAreaCargo = null;
		ResponseHelper response = new ResponseHelper();
		String sql = ""
			+ "select "
			+ "codigo_area_cargo codigoAreaCargo "
			+ "from area_cargo "
			+ "where codigo_area = ? and codigo_cargo = ? and estado_registro = 1";
		Connection conexion = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			conexion = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME);
			ps = conexion.prepareStatement(sql);
			ps.setInt(1, a.getCodigoArea());
			ps.setInt(2, c.getCodigoCargo());
			rs = ps.executeQuery();
			rs.next();
			int codigoAreaCargo = rs.getInt("codigoAreaCargo");
			if (codigoAreaCargo > 0) {
				JSONObject objAreaCargo = new JSONObject();
				objAreaCargo.put("getResultedKey", codigoAreaCargo);
				response.setStatus(true);
				response.setMessage("Se encontró el código");
				response.setData(objAreaCargo);
			} else {
				response.setStatus(false);
				response.setMessage("Error! no se ha podido encontrar el código area cargo");
			}
		} catch (SQLException e) {
			e.printStackTrace();
			response.setStatus(false);
			response.setMessage("Error: " + e.getMessage() + " \n Error Code: [" + e.getErrorCode() + "]");
		} finally {
			try {
				if (rs != null) {
					rs.close();
				}
				if (ps != null) {
					ps.close();
				}
				if (conexion != null) {
					conexion.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		JOObtenerAreaCargo = new JSONObject(response);
		return JOObtenerAreaCargo;

	}

	@Override
	public JSONObject asignarAreaCargo(JSONObject datos) {
		System.out.println("AreaCargoSqlserverDAO: asignarAreaCargo");
		JSONObject jObject = null;
		ResponseHelper response = new ResponseHelper();
		Connection cnx = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		String sql = "";
		int resultado = 0;
		try {
			cnx = SqlserverDAOFactory.obtenerConexion(Variables.BD_NAME);
			ps = cnx.prepareStatement(sql);
		} catch (SQLException e) {
			e.printStackTrace();
			response.setStatus(false);
			response.setMessage("Error: " + e.getMessage() + " \n Error Code: [" + e.getErrorCode() + "]");
		} finally {
			try {
				if (rs != null) {
					rs.close();
				}
				if (ps != null) {
					ps.close();
				}
				if (cnx != null) {
					cnx.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		jObject = new JSONObject(response);
		return jObject;
	}

}