package com.dacrt.SBIABackend.service;

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

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;

import com.dacrt.SBIABackend.dto.BcpstrategiesDto;
import com.dacrt.SBIABackend.dto.Channelresume2Dto;
import com.dacrt.SBIABackend.dto.ChannelresumeDto;
import com.dacrt.SBIABackend.dto.ContinuitySection2Dto;
import com.dacrt.SBIABackend.dto.LabeStringlValueIntDto;
import com.dacrt.SBIABackend.dto.LabelDto;
import com.dacrt.SBIABackend.dto.LabelItemDtoReport;
import com.dacrt.SBIABackend.dto.LabelValueDtoReport;
import com.dacrt.SBIABackend.dto.LabelValueStringDto;
import com.dacrt.SBIABackend.dto.ResumenBiaContentSection1;
import com.dacrt.SBIABackend.dto.ResumenBiaContentSection2;
import com.dacrt.SBIABackend.dto.ResumenBiaContentSection5;
import com.dacrt.SBIABackend.dto.ResumenBiaContentSection6;
import com.dacrt.SBIABackend.dto.ResumenBiaContentSection7;
import com.dacrt.SBIABackend.dto.ResumenBiaSection1;
import com.dacrt.SBIABackend.dto.ResumenBiaSection2;
import com.dacrt.SBIABackend.dto.ResumenBiaSection5;
import com.dacrt.SBIABackend.dto.ResumenBiaSection6;
import com.dacrt.SBIABackend.dto.ResumenBiaSection7;
import com.dacrt.SBIABackend.dto.ResumenBiaTimeTableDto;
import com.dacrt.SBIABackend.dto.StatusDto2;
import com.dacrt.SBIABackend.security.dto.RespuestaDto;

@Service
public class BiaresumeproSection7Service {
	Logger logger = LoggerFactory.getLogger(BiaresumeproSection7Service.class);
	@PersistenceContext
	private EntityManager entityManager;

	public ResumenBiaSection7 getResumeBiaApp(int idcampana, int idunidad, int idprocesos) {
		Query query;
		long cantidad;
		ResumenBiaContentSection7 detalleResumenBiaContentSection7 = new ResumenBiaContentSection7();
		LabelDto detalleLabelDto = new LabelDto();
		ResumenBiaSection7 detalleResumenBiaSection7 = new ResumenBiaSection7();
		List<LabelDto> listadoLabelDto = new ArrayList();
		// StatusDto2 detalleRTO = new StatusDto2();
		RespuestaDto respuesta = new RespuestaDto("", false);
		HttpStatus estatus = HttpStatus.FORBIDDEN;
		try {

			String SentenciaBase = "SELECT  	 1 as n,a.name " + "FROM         main.applications a     "
					+ "INNER JOIN   main.evalprocapps ea ON ea.applicationid = a.id     "
					+ "INNER JOIN   main.evalprocimpacts ei ON ea.evalprocessid = ei.evalprocessid    \r\n"
					+ "INNER JOIN   main.evalprocesses ep ON ea.evalprocessid = ep.id "
					+ "INNER JOIN   main.campaignunits CU ON EP.campaignunitid = CU.id  "
					+ "       AND   CU.campaingid= " + idcampana + "	      AND   CU.unitid= " + idunidad
					+ "INNER JOIN   main.unitprocesses up ON ep.unitprocessid = up.id  " + "       AND   up.unitid= "
					+ idunidad + "	      AND   up.processid= " + idprocesos
					+ "     WHERE   a.status = 1 AND ep.impactst = 1 and ep.appst=1 " + "  GROUP BY   a.name";

			query = entityManager.createNativeQuery(SentenciaBase);
			List<Object[]> listacompleta = query.getResultList();
			cantidad = (long) query.getResultList().size();

			if (cantidad > 0) {
				for (Object[] reg : listacompleta) {
					detalleLabelDto.setLabel((String) reg[1]);
					listadoLabelDto.add(detalleLabelDto);
					detalleLabelDto = new LabelDto();

				}
			}

			detalleResumenBiaContentSection7.setApps(listadoLabelDto);

			detalleResumenBiaSection7.setTitle("Aplicaciones Tecnológicas");
			detalleResumenBiaSection7.setContent(detalleResumenBiaContentSection7);

			respuesta = new RespuestaDto("", false);
			estatus = HttpStatus.FORBIDDEN;

			return detalleResumenBiaSection7;

		} catch (Exception e) {
			// Manejo de excepciones
			respuesta = new RespuestaDto("Error interno del servidor", false);
			estatus = HttpStatus.INTERNAL_SERVER_ERROR;
			return detalleResumenBiaSection7;
		} finally {
			if (entityManager != null && entityManager.isOpen()) {
				entityManager.close();
			}
		}
	}

}
