public ABMSucursales(Sucursal sucursal, bool elimina)
 {
     InitializeComponent();
     suc = sucursal;
     suc.Habilitado = !elimina;
     Utils.habilitar(!elimina, gbSuc);
 }
        public IList<Empleado> buscar(bool mostrarTodos, string nombre, string apellido, string nroDocumento, TipoDocumento tipoDocumento, Sucursal suc)
        {
            IList<Empleado> empleados = null;
            nroDocumento = nroDocumento.Replace(".", "").Trim();

            ICriteria criteria = ConexionBD.getSession().CreateCriteria(typeof(Empleado));

            if (apellido != "")
            {
                criteria.Add(Expression.Like("Apellidos", "%" + apellido + "%"));
            }
            if (nombre != "")
            {
                criteria.Add(Expression.Like("Nombres", "%" + nombre + "%"));
            }
            if (nroDocumento != "")
            {
                criteria.Add(Expression.Eq("NumeroDocumento", int.Parse(nroDocumento)));
            }
            if (tipoDocumento != null)
            {
                criteria.Add(Expression.Eq("TipoDocumento", tipoDocumento));
            }

            if (!mostrarTodos)
                criteria.Add(Expression.Eq("Habilitado", true));

            empleados = ConexionBD.GetPorFiltros<Empleado>(criteria);
            return empleados;
        }
        public bool guardar(Sucursal sucursal)
        {
            ConexionBD.getSession().Save(sucursal);
            ConexionBD.getSession().Flush();

            return existe(sucursal);
        }
 public ElegirAgenda(Sucursal suc, bool todos)
 {
     InitializeComponent();
     idEntidad = 0;
     descripcion = "";
     sucursal = new Sucursal();
     sucursal = suc;
     bTodos = todos;
 }
 public Horario buscar(DateTime fecha,Sucursal suc)
 {
     Horario horario = null;
     ICriteria criteria = ConexionBD.getSession().CreateCriteria(typeof(Horario)).Add(Expression.Le("Desde", fecha)).Add(Expression.Ge("Hasta", fecha));
     if (ConexionBD.getSession().CreateCriteria(typeof(Horario)).Add(Expression.Le("Desde", fecha)).Add(Expression.Ge("Hasta",fecha)).Add(Expression.Eq("Sucursal",suc)).List<Horario>().Count > 0)
     {
         horario = ConexionBD.getSession().CreateCriteria(typeof(Horario)).Add(Expression.Le("Desde", fecha)).Add(Expression.Ge("Hasta", fecha)).Add(Expression.Eq("Sucursal", suc)).List<Horario>().ElementAt<Horario>(0);
     }
     return horario;
 }
        private void dgsucursales_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dgsucursales.SelectedRows.Count > 0)
            {

                sucursal = sucursales.ElementAt<Sucursal>(dgsucursales.CurrentRow.Index);
                this.Dispose();

            }
        }
 public bool existe(Sucursal suc)
 {
     if (ConexionBD.getSession().CreateCriteria(typeof(Sucursal)).Add(Expression.Eq("Codigo", suc.Codigo)).List<Sucursal>().Count > 0)
     {
         return true;
     }
     else
     {
         return false;
     }
 }
        public IList<Profesional> buscar(bool mostrarTodos, string nombre, string apellido, string nroDocumento, TipoDocumento tipoDocumento,Sucursal suc)
        {
            IList<Profesional> profesionales = null;
            nroDocumento = nroDocumento.Replace(".", "").Trim();

            ICriteria criteria = ConexionBD.getSession().CreateCriteria(typeof(Profesional));

            if (apellido != "")
            {
                criteria.Add(Expression.Like("Apellidos", "%"+apellido+"%"));
            }
            if (nombre != "")
            {
                criteria.Add(Expression.Like("Nombres", "%"+nombre+"%"));
            }
            if (nroDocumento != "")
            {
                criteria.Add(Expression.Eq("NumeroDocumento", int.Parse(nroDocumento)));
            }
            if (tipoDocumento != null)
            {
                criteria.Add(Expression.Eq("TipoDocumento", tipoDocumento));
            }

            if (!mostrarTodos)
                criteria.Add(Expression.Eq("Habilitado", true));

            profesionales = ConexionBD.GetPorFiltros<Profesional>(criteria);
            if (suc != null)
            {
                for (int i = 0; i < profesionales.Count; i++)
                {
                    if (profesionales[i].Matriculas.Count > 0)
                    {
                        IList<Matricula> listaMat = profesionales[i].Matriculas;
                        for (int h = 0; h<listaMat.Count; h++)
                        {
                            IList<Horario> lista = listaMat[h].Horarios;
                            for (int j = 0;j<lista.Count; j++)
                            {
                                Horario horario = lista.ElementAt<Horario>(j);
                                if (horario.Sucursal != suc)
                                {
                                    profesionales.RemoveAt(i);
                                }
                            }
                        }
                    }
                }
            }
            return profesionales;
        }
        public IList<AreaServicio> buscar(bool mostrarTodos, string descripcion, string codigo,Sucursal suc)
        {
            IList<AreaServicio> areas = null;

            ICriteria criteria = ConexionBD.getSession().CreateCriteria(typeof(AreaServicio));

            if (descripcion != "")
            {
                criteria.Add(Expression.Like("Descripcion", "%"+descripcion+"%"));
            }
            if (codigo != "")
            {
                criteria.Add(Expression.Like("Codigo", "%"+codigo+"%"));
            }
            if (!mostrarTodos)
                criteria.Add(Expression.Eq("Habilitado", true));

            areas = ConexionBD.GetPorFiltros<AreaServicio>(criteria);
            if (suc != null)
            {
                for (int i = 0; i < areas.Count; i++)
                {
                    if (areas[i].Horarios.Count > 0)
                    {
                        IList<Horario> lista = areas[i].Horarios;
                        for (int j = 0; j < lista.Count; j++)
                        {
                            Horario horario = lista.ElementAt<Horario>(j);
                            if (horario.Sucursal != suc)
                            {
                                areas.RemoveAt(i);
                            }
                        }
                    }
                    else { areas.RemoveAt(i); }
                }
            }
            return areas;
        }
        public bool EsTurnoLiquidado(Profesional prof, Sucursal suc,Turno turno)
        {
            LiquidacionAgenda liquidacion = null;
            bool v_ok = false;

            if (ConexionBD.getSession().CreateCriteria(typeof(LiquidacionAgenda)).Add(Expression.Eq("Profesional", prof)).Add(Expression.Eq("Sucursal",suc)).List<LiquidacionAgenda>().Count > 0)
            {
                liquidacion = ConexionBD.getSession().CreateCriteria(typeof(LiquidacionAgenda)).Add(Expression.Eq("Profesional", prof)).Add(Expression.Eq("Sucursal",suc)).List<LiquidacionAgenda>().ElementAt<LiquidacionAgenda>(0);
                for (int i = 0; i < liquidacion.LiquidacionDetalle.Count; i++)
                {
                    if (liquidacion.LiquidacionDetalle[i].Turno == turno)
                    {
                        v_ok = true;
                        break;
                    }
                }
            }

            return v_ok;
        }
 private void cargarSucursal(Sucursal suc)
 {
     txtDesc.Text = suc.Descripcion;
     txtCodigo.Text = suc.Codigo;
     telefonos = suc.Telefonos;
     domicilios = suc.Domicilios;
     emails = suc.Emails;
 }
        private void buscarSucursal()
        {
            suc = null;
                suc = gestor.buscar(txtCodigo.Text);

                if (suc != null)
                {
                    cargarSucursal(suc);

                    if (evento == "modificar")
                    {
                        Utils.habilitar(true, txtDesc, txtCodigo,tcSuc, btnElimDom);
                        //Utils.habilitar(false, txtCodigo);
                    }
                }
                else { MessageBox.Show("No existe Sucursal", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information); }
        }
 private void btnCancelar_Click(object sender, EventArgs e)
 {
     suc = null;
     Dispose();
 }
 private void ABMSucursales_FormClosed(object sender, FormClosedEventArgs e)
 {
     if(cancela)
         suc = null;
 }