private void InsertarPerfiles(int indxPerfil, int param_idPersona)
 {
     switch (indxPerfil)
     {
         case 1:
             Odontologo odo = new Odontologo();
             odo.IdPersona = param_idPersona;
             odo.Especialidad = "Ingrese Especialidad";
             cliente_odontologo.InsertarOdontologo(odo);
             break;
         case 2:
           Odontologo odonto = new Odontologo();
             odonto.IdPersona = param_idPersona;
             odonto.Especialidad = "Ingrese Especialidad";
             cliente_odontologo.InsertarOdontologo(odonto);
             break;
         case 3:
             Funcionario funcionario = new Funcionario(); 
             funcionario.IdPersona = param_idPersona;
             funcionario.PuestoTrabajo = "Ingrese puesto de trabajo";
             client_fun.InsertarFuncionario(funcionario);
             break;
         case 4:
             Paciente paciente = new Paciente();
             paciente.IdPersona = param_idPersona;
             paciente.FechaIngreso = DateTime.Now;
             cliente_paciente.InsertarPaciente(paciente);
             break;
     }
 }
 public string ModificarFuncionario(Funcionario funcionario)
 {
     string funcionarioModifcar = string.Empty;
     //{"indice":8,"idFuncionario":2,"idPersona":1,"puestoTrabajo":"Administrador"}
     this.JsonParam = "{\"indice\":8,\"idFuncionario\":" + funcionario.IdFuncionario + ",\"idPersona\":" + funcionario.IdPersona + ",\"puestoTrabajo\":\"" + funcionario.PuestoTrabajo + "\",\"habilitado\":1}";
     try
     {
         String result = netclient.NetPost("ws-admin-usuario.php", this.JsonParam);
         var jobject = JObject.Parse(result);
         //{"code":1,"idGastoInsertado":5}
         funcionarioModifcar = jobject.SelectToken("resultado").ToString();
     }
     catch (Exception e)
     {
         throw new Exception(e + "| Error al Modificar Funcionario");
     }
     return funcionarioModifcar;
 }
        private void btnNuevo_Click(object sender, EventArgs e)
        {

            if (btnNuevo.Text.ToString().Trim() == "Ingresar Funcionario")
            {
                if (cmbxUsuario.SelectedValue.ToString() != "")
                {
                    List<Funcionario> list = this.client_fun.ListarFuncionario();
                    int patron = Convert.ToInt32(cmbxUsuario.SelectedValue.ToString());
                    Funcionario result = list.Find(delegate(Funcionario fun) { return fun.IdPersona == patron; });
                    if (result != null)
                    {
                        if (MessageBox.Show("El Funcionario " + result.Nombre + " " + result.ApellidoPaterno + " ya se encuentra registrado dentro del sistema, ¿Desea modificar su información con la recién ingresada?", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                        {
                            try
                            {
                                if (validaciones.EsSoloTexto(txtPuesto)) {
                                    Funcionario funcionario = new Funcionario();
                                    funcionario.IdFuncionario = result.IdFuncionario;
                                    funcionario.IdPersona = Convert.ToInt32(cmbxUsuario.SelectedValue.ToString());
                                    funcionario.PuestoTrabajo = txtPuesto.Text.ToString();
                                    if (this.client_fun.ModificarFuncionario(funcionario) != "")
                                    {
                                        String deshab = string.Empty;
                                        switch (cmbxestado.SelectedIndex)
                                        {
                                            case 0:
                                                deshab = this.client_fun.DesabilitarHabilitarFuncionario(this.Id_funcionario, 0);
                                                break;

                                            case 1:
                                                deshab = this.client_fun.DesabilitarHabilitarFuncionario(this.Id_funcionario, 1);
                                                break;
                                        }
                                        this.LimpiarControles();
                                        datagriPersona.DataSource = this.client_fun.ListarFuncionario();
                                        MessageBox.Show("Funcionario modificado correctamente.", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.OK, MessageBoxIcon.Information);

                                        if (deshab == string.Empty)
                                        {
                                            MessageBox.Show("Estado del funcionario NO fue modificado.", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        }
                                    }
                                    else
                                    {
                                        MessageBox.Show("Se produjo un error, vuelva a intentarlo.", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                }
                            }
                            catch
                            {
                                MessageBox.Show("Se produjo un error, vuelva a intentarlo.", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                    }
                    else
                    {
                        try
                        {
                            if (validaciones.EsSoloTexto(txtPuesto))
                            {
                                Funcionario funcionario = new Funcionario();
                                funcionario.IdPersona = Convert.ToInt32(cmbxUsuario.SelectedValue);
                                funcionario.PuestoTrabajo = txtPuesto.Text;
                                String id_func = this.client_fun.InsertarFuncionario(funcionario);
                                if (id_func != string.Empty)
                                {
                                    this.LimpiarControles();
                                    datagriPersona.DataSource = this.client_fun.ListarFuncionario();
                                    MessageBox.Show("Funcionario ingresado correctamente.", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                                else
                                {
                                    MessageBox.Show("Se produjo un error, vuelva a intentarlo.", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                            }
                        }
                        catch
                        {
                            MessageBox.Show("Se produjo un error, vuelva a intentarlo.", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
            else if (btnNuevo.Text.ToString().Trim() == "Guardar Cambios")
            {
                try
                {
                    if (validaciones.EsSoloTexto(txtPuesto))
                    {
                        Funcionario funcionario = new Funcionario();
                        funcionario.IdFuncionario = this.Id_funcionario;
                        funcionario.IdPersona = Convert.ToInt32(cmbxUsuario.SelectedValue);
                        funcionario.PuestoTrabajo = txtPuesto.Text;
                        String resultadoM = this.client_fun.ModificarFuncionario(funcionario);
                        if (resultadoM != "")
                        {
                            String deshab = string.Empty;
                            switch (cmbxestado.SelectedIndex)
                            {
                                case 0:
                                    deshab = this.client_fun.DesabilitarHabilitarFuncionario(this.Id_funcionario, 0);
                                    break;

                                case 1:
                                    deshab = this.client_fun.DesabilitarHabilitarFuncionario(this.Id_funcionario, 1);
                                    break;
                            }
                            this.LimpiarControles();
                            datagriPersona.DataSource = this.client_fun.ListarFuncionario();
                            MessageBox.Show("Funcionario modificado correctamente.", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.OK, MessageBoxIcon.Information);

                            if (deshab == string.Empty)
                            {
                                MessageBox.Show("Estado del funcionario NO fue modificado.", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else
                        {
                            MessageBox.Show("Se produjo un error, vuelva a intentarlo.", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
                catch
                {
                    MessageBox.Show("Se produjo un error, vuelva a intentarlo.", "SFH Administración de Usuarios del Sistema - Administración de Funcionarios", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
       public List<Funcionario> BuscarFuncionarioPorNombreApellido(string nombre, string apellido)
       {
           List<Funcionario> list = new List<Funcionario>();
           try
           {
               this.JsonParam = "{\"indice\":4,\"nombre\":\"" + nombre + "\",\"apellido\":\"" + apellido + "\"}";
               String result = netclient.NetPost("ws-admin-usuario-sig.php", this.JsonParam);
               var jobject = JObject.Parse(result);
               var token = jobject.SelectToken("buscarFuncionarioNombre").ToList();
               foreach (var item in token)
               {

                   Funcionario funcionario = new Funcionario();
                   //{"idFuncionario":2,"idPersona":3,"puestoTrabajo":"Asistente Dental",
                   //"funcionarioHabilitado":null,"idPerfil":3,"rut":"9878987","dv":"4","nombre":"Nicolas","apellidoPaterno":"Palma",
                   //"apellidoMaterno":"Silva","fechaNacimiento":"1987-05-27"}
                   funcionario.IdFuncionario = Convert.ToInt32(item.SelectToken("idPaciente").ToString());
                   funcionario.IdPersona = Convert.ToInt32(item.SelectToken("idPersona").ToString());
                   funcionario.PuestoTrabajo = item.SelectToken("fechaIngreso").ToString();
                   int estado = Convert.ToInt32(item.SelectToken("habilitadoPaciente").ToString());
                   funcionario.IdPerfil = Convert.ToInt32(item.SelectToken("idPerfil").ToString());
                   int num_perfil = funcionario.IdPerfil;
                   switch (num_perfil)
                   {
                       case 1:
                           funcionario.Nomperfil = "Administrador";
                           break;
                       case 2:
                           funcionario.Nomperfil = "Doctor";
                           break;
                       case 3:
                           funcionario.Nomperfil = "Asistente";
                           break;
                       case 4:
                           funcionario.Nomperfil = "Paciente";
                           break;

                   }
                   funcionario.Rut = Convert.ToInt32(item.SelectToken("rut").ToString());
                   funcionario.Dv = item.SelectToken("dv").ToString();
                   funcionario.Nombre = item.SelectToken("nombre").ToString();
                   funcionario.ApellidoPaterno = item.SelectToken("apellidoPaterno").ToString();
                   funcionario.ApellidoMaterno = item.SelectToken("apellidoMaterno").ToString();
                   funcionario.FechaNacimiento = Convert.ToDateTime(item.SelectToken("fechaNacimiento").ToString());

                   if (estado.Equals(0))
                   {
                       funcionario.Estado_funcionario = EstadoPersona.DESHABILITADO;
                   }
                   else if (estado.Equals(1))
                   {
                       funcionario.Estado_funcionario = EstadoPersona.HABILITADO;
                   }
                   list.Add(funcionario);
               }

           }
           catch (Exception e)
           {
               throw new Exception(e + "| Error al Listar Funcionario");
           }
           return list;
       }
       public List<Funcionario> ListarFuncionario()
       {
           List<Funcionario> list = new List<Funcionario>();
           try
           {
               this.JsonParam = "{\"indice\":18}";
               String result = netclient.NetPost("ws-admin-usuario.php", this.JsonParam);
               var jobject = JObject.Parse(result);
               var token = jobject.SelectToken("listaFuncionarioHerencia").ToList();
               foreach (var item in token)
               {

                   Funcionario funcionario = new Funcionario();
                   //{"idFuncionario":2,"idPersona":3,"puestoTrabajo":"Asistente Dental",
                   //"funcionarioHabilitado":null,"idPerfil":3,"rut":"9878987","dv":"4","nombre":"Nicolas","apellidoPaterno":"Palma",
                   //"apellidoMaterno":"Silva","fechaNacimiento":"1987-05-27"}
                   funcionario.IdFuncionario = Convert.ToInt32(item.SelectToken("idFuncionario").ToString());
                   funcionario.IdPersona = Convert.ToInt32(item.SelectToken("idPersona").ToString());
                   funcionario.PuestoTrabajo = item.SelectToken("puestoTrabajo").ToString();
                   int estado = Convert.ToInt32(item.SelectToken("funcionarioHabilitado").ToString());
                   funcionario.IdPerfil = Convert.ToInt32(item.SelectToken("idPerfil").ToString());
                   funcionario.Rut = Convert.ToInt32(item.SelectToken("rut").ToString());
                   funcionario.Dv = item.SelectToken("dv").ToString();
                   funcionario.Nombre = item.SelectToken("nombre").ToString();
                   funcionario.ApellidoPaterno = item.SelectToken("apellidoPaterno").ToString();
                   funcionario.ApellidoMaterno = item.SelectToken("apellidoMaterno").ToString();
                   funcionario.FechaNacimiento = Convert.ToDateTime(item.SelectToken("fechaNacimiento").ToString());

                   if (estado.Equals(0))
                   {
                       funcionario.Estado_funcionario = EstadoPersona.DESHABILITADO;
                   }
                   else if (estado.Equals(1))
                   {
                       funcionario.Estado_funcionario = EstadoPersona.HABILITADO;
                   }
                   list.Add(funcionario);
               }

           }
           catch (Exception e)
           {
               throw new Exception(e + "| Error al Listar Funcionario");
           }
           return list;
       }
        private void btnNuevo_Click(object sender, EventArgs e)
        {
            if (btnNuevo.Text.ToString().Trim() == "Ingresar Funcionario")
            {
                if (cmbxUsuario.SelectedValue.ToString() != "")
                {
                    //datagriPersona.DataSource = 
                    List<Funcionario> list = this.client_fun.ListarFuncionario();
                    int patron = Convert.ToInt32(cmbxUsuario.SelectedValue.ToString());
                    Funcionario result = list.Find(delegate(Funcionario fun) { return fun.IdPersona == patron; });
                    if (result != null)
                    {
                        if (MessageBox.Show("El Funcionario " + result.Nombre + " " + result.ApellidoPaterno + " ya se encuentra registrado dentro del sistema, ¿Desea Modificar su información con la recién ingresada?", "SFH Administración de Clínica - Administración de Usuarios", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                        {
                            Funcionario funcionario = new Funcionario();
                            funcionario.IdFuncionario = result.IdFuncionario;
                            funcionario.IdPersona = Convert.ToInt32(cmbxUsuario.SelectedValue.ToString());
                            funcionario.PuestoTrabajo = txtPuesto.Text.ToString();
                            if (this.client_fun.ModificarFuncionario(funcionario) != "")
                            {
                                switch (cmbxestado.SelectedIndex)
                                {
                                    case 0:
                                        this.client_fun.DesabilitarHabilitarFuncionario(this.Id_funcionario, 0);
                                        break;

                                    case 1:
                                        this.client_fun.DesabilitarHabilitarFuncionario(this.Id_funcionario, 1);
                                        break;
                                }

                            }

                            this.LimpiarControles();
                            datagriPersona.DataSource = this.client_fun.ListarFuncionario();
                            MessageBox.Show("Paciente modificado satisfactoriamente", "SFH Administración de Clínica - Administración de Usuarios", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        }
                    }
                    else
                    {
                        Funcionario funcionario = new Funcionario();
                        funcionario.IdPersona = Convert.ToInt32(cmbxUsuario.SelectedValue);
                        funcionario.PuestoTrabajo = txtPuesto.Text;
                        this.client_fun.InsertarFuncionario(funcionario);
                        this.LimpiarControles();
                        datagriPersona.DataSource = this.client_fun.ListarFuncionario();
                        MessageBox.Show("Paciente registrado satisfactoriamente", "SFH Administración de Clínica - Administración de Usuarios", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }


            }
            else if (btnNuevo.Text.ToString().Trim() == "Guardar Cambios")
            {

                Funcionario funcionario = new Funcionario();
                funcionario.IdFuncionario = this.Id_funcionario;
                funcionario.IdPersona = Convert.ToInt32(cmbxUsuario.SelectedValue);
                funcionario.PuestoTrabajo = txtPuesto.Text;
                if (this.client_fun.ModificarFuncionario(funcionario) != "")
                {
                    switch (cmbxestado.SelectedIndex)
                    {
                        case 0:
                            this.client_fun.DesabilitarHabilitarFuncionario(this.Id_funcionario, 0);
                            break;

                        case 1:
                            this.client_fun.DesabilitarHabilitarFuncionario(this.Id_funcionario, 1);
                            break;
                    }

                }

                this.LimpiarControles();
                datagriPersona.DataSource = this.client_fun.ListarFuncionario();
                MessageBox.Show("Paciente modificado satisfactoriamente", "SFH Administración de Clínica - Administración de Usuarios", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
        }
        private void btnNuevo_Click(object sender, EventArgs e)
        {
            if (btnNuevo.Text.ToString().Trim() == "Ingresar Funcionario")
            {
                Funcionario funcionario = new Funcionario();
                funcionario.IdPersona = Convert.ToInt32(cmbxUsuario.SelectedValue);
                funcionario.PuestoTrabajo = txtPuesto.Text;
                this.client_fun.InsertarFuncionario(funcionario);
                this.LimpiarControles();
                datagriPersona.DataSource = this.client_fun.ListarFuncionario();
                MessageBox.Show("Paciente registrado satisfactoriamente", "SFH Administración de Clínica - Administración de Usuarios", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
            else if (btnNuevo.Text.ToString().Trim() == "Guardar Cambios")
            {

                Funcionario funcionario = new Funcionario();
                funcionario.IdFuncionario = this.Id_funcionario;
                funcionario.IdPersona = Convert.ToInt32(cmbxUsuario.SelectedValue);
                funcionario.PuestoTrabajo = txtPuesto.Text;
                if (this.client_fun.ModificarFuncionario(funcionario) != "")
                {
                    switch (cmbxestado.SelectedIndex)
                    {
                        case 0:
                            this.client_fun.DesabilitarHabilitarFuncionario(this.Id_funcionario, 0);
                            break;

                        case 1:
                            this.client_fun.DesabilitarHabilitarFuncionario(this.Id_funcionario, 1);
                            break;
                    }

                }

                this.LimpiarControles();
                datagriPersona.DataSource = this.client_fun.ListarFuncionario();
                MessageBox.Show("Paciente modificado satisfactoriamente", "SFH Administración de Clínica - Administración de Usuarios", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
        }