private void cambiarHora(bool cambiarEntrada, string texto)
        {
            ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Iniciando...");
            long idhge = int.Parse(dgvHoras.SelectedRows[0].Cells["IDHorasGeneradasEscalafon"].Value.ToString());
            int idFuncSeleccionado = (int)listaFuncsCargados[idhge].NroEmpleado;
            string nombreFunc = dgvHoras.SelectedRows[0].Cells["Funcionario"].Value.ToString();
            DateTime horaini = listaFuncsCargados[idhge].HoraEntrada;
            DateTime horafin = listaFuncsCargados[idhge].HoraSalida;
            CambiarHoraFuncionario changeHourForm = new CambiarHoraFuncionario(idFuncSeleccionado, nombreFunc, texto, horaini, horafin, cambiarEntrada);
            DialogResult dg = changeHourForm.ShowDialog(this);

            if (dg == DialogResult.OK)
            {
                ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "DialogResult.OK");
                // Chequeamos que no existan los horarios solapados.
                HoRaSGeneraDaSEScalaFOn hstemp = new HoRaSGeneraDaSEScalaFOn();
                hstemp.NroEmpleado = listaFuncsCargados[idhge].NroEmpleado;
                if (cambiarEntrada)
                {
                    hstemp.HoraEntrada = changeHourForm.getFechaHoraNueva();
                    hstemp.HoraSalida = listaFuncsCargados[idhge].HoraSalida;
                }
                else
                {
                    hstemp.HoraEntrada = listaFuncsCargados[idhge].HoraEntrada;
                    hstemp.HoraSalida = changeHourForm.getFechaHoraNueva();
                }
                try
                {
                    ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Antes sistema.aplicarControlesAltaHoraGeneradaEscalafon");
                    sistema.aplicarControlesAltaHoraGeneradaEscalafon(listaFuncsCargados[idhge].FechaCorrespondiente, idhge, hstemp);
                    ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Despues de sistema.aplicarControlesAltaHoraGeneradaEscalafon");
                    MotivoCambioDiarioForm mcdf = new MotivoCambioDiarioForm(DateTime.Parse(mtFecha.Text));
                    dg = mcdf.ShowDialog(this);
                    ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Despues de showDialog");
                    if (dg == DialogResult.OK)
                    {
                        int numFila = dgvHoras.SelectedRows[0].Index;

                        //long idhge = (long)dgvHoras.Rows[numFila].Cells["IdHorasGeneradasEscalafon"].Value;
                        //int nroEmp = (int)listaFuncsCargados[idhge].NroEmpleado;
                        ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Antes de changeHourForm.getFechaHoraNueva()");
                        DateTime FechaHoraNueva = changeHourForm.getFechaHoraNueva();
                        mcdf.motivoCambio.NroEmpleado = listaFuncsCargados[idhge].NroEmpleado;
                        mcdf.motivoCambio.NumeroCliente = uint.Parse(ucCliente.ClienteNRO);
                        mcdf.motivoCambio.NumeroServicio = servicio.NumeroServicio;
                        ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Despues de mcdf.motivoCambio.NumeroServicio = servicio.NumeroServicio;");
                        //DateTime DateNueva = DateTime.Parse(mtFecha.Text + " " + HoraNueva);
                        ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Antes datos.cambiarHoraFuncionarioControlDiario");
                        datos.cambiarHoraFuncionarioControlDiario(idhge, (int)listaFuncsCargados[idhge].NroEmpleado, FechaHoraNueva, cambiarEntrada, mcdf.motivoCambio);
                        ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Despues datos.cambiarHoraFuncionarioControlDiario");
                        if (cambiarEntrada)
                        {
                            listaFuncsCargados[idhge].HoraEntrada = FechaHoraNueva;
                            dgvHoras.Rows[numFila].Cells["HoraEntrada"].Value = FechaHoraNueva.ToString("HH:mm");
                        }
                        else
                        {
                            listaFuncsCargados[idhge].HoraSalida = FechaHoraNueva;
                            dgvHoras.Rows[numFila].Cells["HoraSalida"].Value = FechaHoraNueva.ToString("HH:mm");
                        }
                        TimeSpan ts = new TimeSpan(listaFuncsCargados[idhge].HoraSalida.Ticks - listaFuncsCargados[idhge].HoraEntrada.Ticks);
                        dgvHoras.Rows[numFila].Cells["TotalHs"].Value = impHora(ts);
                        aplicarFormatoCeldaHora(numFila, listaFuncsCargados[idhge].HoraEntrada, listaFuncsCargados[idhge].HoraSalida);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Fin.");
            }
        }
        private void cambiarHoraFin_Click(object sender, EventArgs e)
        {
            if (dgvHoras.SelectedRows[0].Cells["Salida"].Value.ToString() != "")
                MessageBox.Show(this, "No se puede cambiar el funcionario si tiene marcada la salida.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            else
            {
                try
                {
                    int idFuncSeleccionado = int.Parse(dgvHoras.SelectedRows[0].Cells["Numero"].Value.ToString());
                    string nombreFunc = dgvHoras.SelectedRows[0].Cells["Funcionario"].Value.ToString();
                    string horafin = dgvHoras.SelectedRows[0].Cells["HoraFin"].Value.ToString();
                    CambiarHoraFuncionario changeHourForm = new CambiarHoraFuncionario(idFuncSeleccionado, nombreFunc, "Cambio de Hora de Salida", horafin);
                    DialogResult dg = changeHourForm.ShowDialog(this);

                    if (dg == DialogResult.OK)
                    {
                        cambiarHoraSalidaFuncionario(dgvHoras.SelectedRows[0].Index, changeHourForm.getHoraNueva());

                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }