public CjCRSummary ConsultaCapacidad(String noEmpleado, CjCRCredential credential)
        {
            CjCREmpleadoPool empleado = PoolDao.GetPoolByEmpleado(noEmpleado, credential);
            int status = CjCRTurnadorStatus.UNIDAD_NEGOCIO_INACTIVA;
                CjCREmpleadoPool empleadoPool = new CjCREmpleadoPool();
                CjCRCualidadList cualidad = new CjCRCualidadList();
                CjCRSummary estado = new CjCRSummary();
                empleadoPool.NoEmpleado = noEmpleado;
                int unidadNegocioEmpleado = PoolDao.UnidadEmpleado(noEmpleado, credential);
                if (unidadNegocioEmpleado == CjCRTurnadorStatus.OPERATION_FAIL) {
                    status =  CjCRTurnadorStatus.OPERATION_FAIL;
                    return TurnadorSummaryFactory.Get(status);
                }
                CjCRDictionary<Int32, CjCRUnidadNegocio> unidadesNegocio = NegocioDao.GetUnidadesNegocio(credential);
                List<CjCRUnidadNegocio> unidadesNegocioList = unidadesNegocio.Values.ToList();

                foreach (CjCRUnidadNegocio i in unidadesNegocioList)
                {
                    if (i.IdUnidadNegocio == unidadNegocioEmpleado)
                    {
                        if (i.Estatus == 1)
                        {
                            status = CjCRTurnadorStatus.OPERATION_COMPLETE;
                        }
                        else
                        {
                            status = CjCRTurnadorStatus.UNIDAD_NEGOCIO_INACTIVA;
                        }
                    }

                }
                return TurnadorSummaryFactory.Get(status);
        }
        public CjCRSummary FinalizarTurno(String noEmpleado, CjCRTurno turno, CjCRCredential credential)
        {
            String origen = "Finaliza Turno";
            CjCREmpleadoPool empPool = PoolDao.GetPoolByEmpleado(noEmpleado, credential);
                CjCREmpleadoPool empleadoPool = new CjCREmpleadoPool();
                empleadoPool = PoolDao.GetPoolByEmpleado(noEmpleado, credential);
                CjCRCualidadList cualidad = new CjCRCualidadList();
                int unidadNegocio = PoolDao.UnidadEmpleado(noEmpleado, credential);
                cualidad.SetIdUnidadNegocio(unidadNegocio);
                empleadoPool.Cualidades = cualidad;
                CjCRTurno turnoAtendido = TurnosDao.GetTurno(turno, credential);

                return SetEstado(noEmpleado, turnoAtendido,
                CjCRTurnadorStatus.ATENCION_NO_DISPONIBLE,
                CjCRTurnadorStatus.TURNO_ATENDIDO,origen, credential);
        }
        public CjCRSummary FinalizarTurno(String noEmpleado, CjCRTurno turno, CjCRCredential credential)
        {
            CjCREmpleadoPool empPool = PoolDao.GetPoolByEmpleado(noEmpleado, credential);
            if (empPool != default(CjCREmpleadoPool))
            {
                CjCRCualidadList cualidad = new CjCRCualidadList();
                int unidadNegocio = PoolDao.UnidadEmpleado(noEmpleado, credential);
                turno.IdUnidadNegocio = unidadNegocio;
                CjCRSummary summary = TurnoValidator.Validate(
                   turno, CjCRTurnoValidator.ESTADO_VALIDATION);

                if (summary.Complete)
                {
                    summary = TurnosLogic.FinalizarTurno(noEmpleado, turno, credential);
                }

                return summary;
            }
            else
            {
                return TurnadorSummaryFactory.Get(CjCRTurnadorStatus.EMPLEADO_INEXISTENTE);
            }
        }
 public CjCREmpleadoPool()
 {
     Cualidades = new CjCRCualidadList();
 }
        public CjCRSummary SetNoDisponible(String noEmpleado,
            CjCRCredential credential)
        {
            String origen = "SetNoDisponible";
            CjCREmpleadoPool empleadoPool = new CjCREmpleadoPool();
            empleadoPool = PoolDao.GetPoolByEmpleado(noEmpleado, credential); ;
            CjCRCualidadList cualidad = new CjCRCualidadList();
            int statusResult;
            int unidadNegocio = PoolDao.UnidadEmpleado(noEmpleado, credential);
            //empleadoPool.Estado = 0;
            if (empleadoPool != null)
            {
                cualidad.SetIdUnidadNegocio(unidadNegocio);
                empleadoPool.Cualidades = cualidad;

                if (empleadoPool.Estado == CjCRTurnadorStatus.ATENCION_ASIGNADO || empleadoPool.Estado == CjCRTurnadorStatus.ATENCION_OCUPADO)
                {
                    statusResult = CjCRTurnadorStatus.EMPLEADO_ESTADO_INCORRECTO;
                }
                else
                {
                    empleadoPool.Estado = CjCRTurnadorStatus.ATENCION_NO_DISPONIBLE;
                    statusResult = PoolDao.SetEstado(empleadoPool,origen, credential);
                }

            }
            else
            {
                CjCREmpleadoPool empleadoPool1 = new CjCREmpleadoPool();
                empleadoPool1.Estado = CjCRTurnadorStatus.ATENCION_NO_DISPONIBLE;
                empleadoPool1.NoEmpleado = noEmpleado;
                cualidad.SetIdUnidadNegocio(unidadNegocio);
                empleadoPool1.Cualidades = cualidad;
                statusResult = PoolDao.SetEstado(empleadoPool1, origen, credential);
            }
            return TurnadorSummaryFactory.Get(statusResult);
        }
        public CjCRSummary SetDisponible(String noEmpleado, 
            CjCRCredential credential)
        {
            String origen = "SetDisponible";
            CjCREmpleadoPool empleadoPool = PoolDao.GetPoolByEmpleado(noEmpleado, credential);
            CjCRCualidadList cualidad = new CjCRCualidadList();
            int statusResult = CjCRTurnadorStatus.OPERATION_FAIL;
            int unidadNegocio = PoolDao.UnidadEmpleado(noEmpleado, credential);
            empleadoPool.NoEmpleado = noEmpleado;
            CjCRSummary summary;
            cualidad.SetIdUnidadNegocio(unidadNegocio);
            empleadoPool.Cualidades = cualidad;

            if (empleadoPool != default(CjCREmpleadoPool))
            {
                //empleadoPool.Cualidades.SetIdUnidadNegocio(idUnidadNegocio);

                if (EstadosAtencionPool.IsNext(empleadoPool.Estado,
                    CjCRTurnadorStatus.ATENCION_DISPONIBLE))
                {
                    empleadoPool.Estado = CjCRTurnadorStatus.ATENCION_DISPONIBLE;

                    statusResult = PoolDao.SetEstado(empleadoPool, origen, credential);
                }
            }

            summary = TurnadorSummaryFactory.Get(statusResult);

            if (summary.Complete)
            {
                TurnosTask.CompletarTurnosProcess(credential);
            }

            return summary;
        }