private void cargarVentana(int numCli, int numSer)
        {
            try
            {
                //Servicio serv = sistema.obtenerServicioCliente(numCli, numerosSer[ind]);
                Servicio serv = sistema.obtenerServicioCliente(numCli, numSer);

                nroServicioCargado = serv.getNumero();
                mtServicio.Text = serv.getNumero().ToString();
                txtServicio.Text = serv.getNombre();                

                int nroCon = CalcNroContrato(numCli, numSer);
                if (!datos.existeContrato(nroCon))
                {
                    GraficosPL.Visible = false;
                    //ConLBL.Visible = false;
                    //cubiertoTB.Visible = false;
                    //CubiertoLBL.Visible = false;
                    LimpiarHporCubrir();
                    GuardarBTN.Enabled = false;
                    splitContainer1.Panel2.Enabled = false;
                    VerContratoBTN.Enabled = false;
                    MessageBox.Show("Este servicio no tiene contrato.\nNo se puede generar escalafón.", "Servicio sin Contrato", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    GraficosPL.Visible = true;                                        
                    GuardarBTN.Enabled = true;
                    splitContainer1.Panel2.Enabled = true;
                    VerContratoBTN.Enabled = true;

                    Escalafon esc = null;
                    int nroEsc = CalcNroContrato(numCli, numSer);
                    if (datos.existeEscalafon(nroEsc))
                    {
                        esc = sistema.getEscalafon(nroEsc);

                        int i = 0;
                        DataGridViewRow insr = null;
                        foreach (EscalafonEmpleado l in esc.ListaEscalafonEmpleados)
                        {
                            insr = new DataGridViewRow();

                            object[] param = { l.NroEmpleado.ToString(), datos.getNombreEmpleado(l.NroEmpleado), l.CodigoPuesto, l.CantidadHsLlamadaAntesHoraInicio.ToString() + " Hs" };

                            insr.CreateCells(dgEscalafon, param);

                            dgEscalafon.Rows.Add(insr);

                            foreach (HorarioEscalafon h in l.Horario)
                            {
                                if (h.EsLaborable())
                                {
                                    dgEscalafon.Rows[i].Cells[h.getDia()].Value = h.getHoraIni() + " a " + h.getHoraFin();
                                    if (h.Solapea())
                                        dgEscalafon.Rows[i].Cells[h.getDia()].Style.BackColor = Color.Red;
                                }
                                else
                                {
                                    switch (h.getTipoDia())
                                    {
                                        case 1:
                                            dgEscalafon.Rows[i].Cells[h.getDia()].Value = "EnOtroServ";
                                            break;
                                        case 2:
                                            dgEscalafon.Rows[i].Cells[h.getDia()].Value = "Descanso";
                                            break;
                                        case 3:
                                            dgEscalafon.Rows[i].Cells[h.getDia()].Value = "Licencia";
                                            break;
                                        default:
                                            dgEscalafon.Rows[i].Cells[h.getDia()].Value = "Error";
                                            break;
                                    }

                                }

                            }

                            dgEscalafon.Rows[i].Cells[11].Value = l.AcargoDe;
                            i++;
                        }
                    }

                    // Cargar las hs por dia del contrato en el dvg            
                    contrato = sistema.getContrato(CalcNroContrato(numCli, numSer));
                    //try
                    //{
                        hporCubrir = contrato.getTotalesHoras();
                        CargarHporCubrir();
                        ActualizarHporCubrir();
                    //}
                    //catch { }
                    VerContratoBTN.Enabled = true;
                }            
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void ActualizarHporCubrir()
        {
            int numCli = int.Parse(mtCliente.Text);
            int numSer = int.Parse(mtServicio.Text);
            
            int nroCon = CalcNroContrato(numCli, numSer);
            try
            {
                if (datos.existeContrato(nroCon))
                {
                    contrato = sistema.getContrato(nroCon);
                    hporCubrir = contrato.getTotalesHoras();
                    CargarHporCubrir();

                    int totLineas = dgEscalafon.RowCount;
                    if (totLineas > 0)
                    {
                        if (ValidarEscalafon())
                        {
                            for (int i = 0; i < totLineas; i++)
                            {
                                hporCubrir = restar(hporCubrir, ObtenerHorasFila(i));
                            }

                            CargarHporCubrir();
                        }
                        else
                            MessageBox.Show(this, "Error en la celda seleccionada", "Línea no valida", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }