/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cosmodas.FacadeCosmos;

import com.cosmodas.EntCosmos.Actualimperia;
import com.cosmodas.EntCosmos.proPremios;

import java.util.Date;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 * @author obper
 */
@Stateless
public class ActualimperiaFacade extends AbstractFacade<Actualimperia> implements ActualimperiaFacadeLocal {

    @PersistenceContext(unitName = "wcosmodasPersistent")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public ActualimperiaFacade() {
        super(Actualimperia.class);
    }

    @Override
    public void executaProcedimiento(String consultorCodigo, Date fechaInicio, Date fechaFin) {
        em.createNativeQuery("{CALL pro_imperias_online(?,?,?,?)}",
                proPremios.class)
                .setParameter(1, "p1254")
                .setParameter(2, "")
                .setParameter(3, "2015-01-01")
                .setParameter(4, "2015-06-16").executeUpdate();
    }

    @Override
    public Actualimperia puntosAnuales(String consultorCodigo, String programa, String fechaInicio, String fechaFin) {
        if (consultorCodigo.length() > 1 && fechaInicio.length() > 1 && fechaFin.length() > 1) {
            Query query = em.createNativeQuery("{CALL pro_imperias_online(?,?,?,?)}",
                    Actualimperia.class)
                    .setParameter(1, consultorCodigo)
                    .setParameter(2, "")
                    .setParameter(3, fechaInicio)
                    .setParameter(4, fechaFin);
            List<Actualimperia> result = query.getResultList();

            return result.get(0);
        } else {
            return new Actualimperia();
        }

    }

    @Override
    public Actualimperia Puntos(String consultorCodigo, String programa, String fechaInicio, String fechaFin) {
        if (consultorCodigo.length() > 1 && fechaInicio.length() > 1 && fechaFin.length() > 1) {
            Query query = em.createNativeQuery("{CALL pro_imperias_online(?,?,?,?)}",
                    Actualimperia.class)
                    .setParameter(1, consultorCodigo)
                    .setParameter(2, "")
                    .setParameter(3, fechaInicio)
                    .setParameter(4, fechaFin);
            List<Actualimperia> result = query.getResultList();

            return result.get(0);
        } else {
            return new Actualimperia();
        }
    }

}
