package com.rjconsultores.ventaboletos.ws.rs;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import org.apache.commons.lang.StringUtils;

import com.rjconsultores.ventaboletos.dao.CajaDAO;
import com.rjconsultores.ventaboletos.vo.caja.CajaDetalleVO;
import com.rjconsultores.ventaboletos.vo.caja.CajaVO;
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;

@Path("/")
public class CajaRS {
	@Path("/cajas")
	@GET
	@Produces({ MediaType.APPLICATION_XML })
	public List<CajaVO> buscarCaja(@QueryParam("yaCerrado") boolean yaCerrado, @QueryParam("fecDesde") String fecDesde, @QueryParam("fecHasta") String fecHasta) {

		SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");

		Date fecDesdeD = new Date();
		Date fecHastaD = new Date();

		try {
			fecDesdeD = StringUtils.isBlank(fecDesde) ? new Date() : sdf.parse(fecDesde);
		} catch (Exception e) {

		}
		try {
			fecHastaD = StringUtils.isBlank(fecHasta) ? new Date() : sdf.parse(fecHasta);
		} catch (Exception e) {

		}

		CajaDAO cajaDAO = (CajaDAO) AppContext.getApplicationContext().getBean("cajaDAO");
		List<CajaVO> list = cajaDAO.buscarCajaFecha(yaCerrado, fecDesdeD, fecHastaD);

		return list;
	}
	@Path("/detalleCajas")
	@GET
	@Produces({ MediaType.APPLICATION_XML })
	public List<CajaDetalleVO> buscarDetalleCaja(@QueryParam("fecDesde") String fecDesde, @QueryParam("fecHasta") String fecHasta, @QueryParam("sembilhetesPacote") String sembilhetesPacote) {
		
		SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
		
		Date fecDesdeD = new Date();
		Date fecHastaD = new Date();
		Boolean bSembilhetesPacote = Boolean.FALSE;
		
		try {
			fecDesdeD = StringUtils.isBlank(fecDesde) ? new Date() : sdf.parse(fecDesde);
		} catch (Exception e) {
			
		}
		try {
			fecHastaD = StringUtils.isBlank(fecHasta) ? new Date() : sdf.parse(fecHasta);
		} catch (Exception e) {
			
		}
		try {
			bSembilhetesPacote = StringUtils.isBlank(sembilhetesPacote) ? Boolean.FALSE : Boolean.valueOf(sembilhetesPacote);
		} catch (Exception e) {
			
		}
		
		CajaDAO cajaDAO = (CajaDAO) AppContext.getApplicationContext().getBean("cajaDAO");
		List<CajaDetalleVO> list = cajaDAO.buscarDetalleCaja(fecDesdeD, fecHastaD, bSembilhetesPacote);
		
		return list;
	}
	
}
