private void GuardarBTN_Click(object sender, EventArgs e) { bool solapa; bool hubosolapa = false; dgEscalafon.EndEdit(); try { if (ValidarEscalafon()) { int numCli = nroClienteCargado.Value; //int numSer = int.Parse(mtServicio.Text); int numSer = nroServicioCargado.Value; int nroCon = CalcNroContrato(numCli, numSer); Escalafon es = new Escalafon(); es.Cubierto = ContCubierto; es.ListaEscalafonEmpleados = new List<EscalafonEmpleado>(); // ACA GUARDO TODOS LOS DATOS DEL DATAGRIDVIEW EscalafonEmpleado linea; HorarioEscalafon hor = null; DataGridViewCell cel = null; foreach (DataGridViewRow fila in dgEscalafon.Rows) { linea = new EscalafonEmpleado(); linea.NroEmpleado = int.Parse(fila.Cells[0].Value.ToString()); linea.CodigoPuesto = fila.Cells[2].Value.ToString(); linea.CantidadHsLlamadaAntesHoraInicio = int.Parse(fila.Cells[3].Value.ToString().Substring(0, 1)); linea.AcargoDe = fila.Cells[11].Value.ToString(); linea.Horario = new List<HorarioEscalafon>(); solapa = false; for (int i = 0; i < 7; i++) { cel = fila.Cells[dias[i]]; if (cel.Value.ToString().IndexOfAny(new Char[] { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' }) == -1) //cel.Value.ToString() == "Descanso" || cel.Value.ToString() == "Licencia") { hor = new HorarioEscalafon(dias[i], cel.Value.ToString()); cel.Style.BackColor = Color.FromArgb(255, 255, 192);//Amarillito } else { solapa = sistema.EsHorarioSolapado(nroCon, linea.NroEmpleado, dias[i], obtHIni(cel.Value.ToString()), obtHFin(cel.Value.ToString())); hor = new HorarioEscalafon(dias[i], obtHIni(cel.Value.ToString()), obtHFin(cel.Value.ToString()), solapa); if (solapa) { hubosolapa = true; cel.Style.BackColor = Color.Red;//Rojo } else { cel.Style.BackColor = Color.FromArgb(255, 255, 192);//Amarillito } } linea.Horario.Add(hor); } es.ListaEscalafonEmpleados.Add(linea); } if (datos.existeEscalafon(nroCon)) sistema.modificarEscalafon(nroCon, es); else sistema.altaEscalafon(numCli, numSer, nroCon, es); sistema.marcarSolapados(nroCon, es); if (hubosolapa) { MessageBox.Show("Datos guardados correctamente.\nEn los horarios en rojo el empleado ya trabaja.", "Guardado de Datos", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else MessageBox.Show("Datos guardados correctamente.", "Guardado de Datos", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Utilidades.ControladorUtilidades.writeToLog(new Exception("ValidacionEscalafon ERROR")); MessageBox.Show(this, "Error en la celda seleccionada", "Línea no valida", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { Utilidades.ControladorUtilidades.writeToLog(ex); MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void marcarSolapados(int IdEscalafon, Escalafon EscSolapados) { int NroEmp; List<HoRaRioEScalaFOn> HorsSolap = new List<HoRaRioEScalaFOn>(); List<HoRaRioEScalaFOn> HorsNOSolap = new List<HoRaRioEScalaFOn>(); List<HoRaRioEScalaFOn> aux; try { foreach (EscalafonEmpleado ee in EscSolapados.ListaEscalafonEmpleados) { NroEmp = ee.NroEmpleado; foreach (HorarioEscalafon he in ee.Horario) { aux = datos.getHorariosEmpleadoDia(NroEmp, he.getDia(), IdEscalafon); if (he.Solapea()) { foreach (HoRaRioEScalaFOn h in aux) { if (h.TipoDia == 0) { if (HorariosSolapados(he.getHoraIni(), he.getHoraFin(), h.HoRaInI, h.HoRaFIn)) { HorsSolap.Add(h); } } } } else { foreach (HoRaRioEScalaFOn h in aux) { if (h.Solapa == 1) { if (!EsHorarioSolapado((int)h.IDEscalafon, (int)h.NroEmpleado, h.DiA, h.HoRaInI, h.HoRaFIn)) HorsNOSolap.Add(h); } } } } } datos.MarcarNoSolapados(HorsNOSolap); datos.MarcarSolapados(HorsSolap); } catch (Exception ex) { throw ex; } }
public void modificarEscalafon(int nroEsc, Escalafon es) { try { datos.SetearCubierto(nroEsc, es.Cubierto); datos.eliminarLineasEscalafon(nroEsc); List<EScalaFOneMpLeadO> lhs = new List<EScalaFOneMpLeadO>(); EScalaFOneMpLeadO lh = null; int i = 0; foreach (EscalafonEmpleado ldh in es.ListaEscalafonEmpleados) { lh = new EScalaFOneMpLeadO(); lh.IDEscalafon = (uint)nroEsc; lh.IDEscalafonEmpleado = (uint)i; lh.NroEmpleado = (uint)ldh.NroEmpleado; lh.CodigoPuesto = ldh.CodigoPuesto; lh.HsLlamadaAntesHoraInicio = (sbyte)ldh.CantidadHsLlamadaAntesHoraInicio; lh.AcArgoDe = ldh.AcargoDe; //pasar los horarios por dia HoRaRioEScalaFOn hd = null; foreach (HorarioEscalafon hpd in ldh.Horario) { hd = new HoRaRioEScalaFOn(); hd.IDEscalafon = (uint)nroEsc; hd.IDEscalafonEmpleado = (uint)i; hd.NroEmpleado = (uint)ldh.NroEmpleado; if (hpd.EsLaborable()) { hd.DiA = hpd.getDia(); hd.HoRaInI = hpd.getHoraIni(); hd.HoRaFIn = hpd.getHoraFin(); hd.TipoDia = 0; hd.Solapa = (hpd.Solapea()) ? (sbyte)1 : (sbyte)0; } else { hd.DiA = hpd.getDia(); hd.TipoDia = (byte)hpd.getTipoDia(); hd.Solapa = 0; } lh.HoRaRioEScalaFOn.Add(hd); //HORARIOS EMPLEADOS //he = new HoRaRioSEmPleadOs(); //he.NroEmpleado = (uint)ldh.NroEmpleado; //he.IDEscalafon = (uint)nroEsc; //he.IDEscalafonEmpleado = (uint)i; //he.Dia = hpd.getDia(); //he.TipoDia = (byte)hpd.getTipoDia(); //he.Solapa = (hpd.Solapea()) ? (sbyte)1 : (sbyte)0; //datos.altaHorEmpleado(he); } lhs.Add(lh); //con.LineAshOrAs.Add(lh); i++; } datos.guardarLineasEscalafon(lhs); } catch (Exception e) { throw e; } }
public Escalafon getEscalafon(int nroEsc) { EScalaFOn esc = datos.obtenerEscalafon(nroEsc); Escalafon aux = new Escalafon(); aux.Cubierto = esc.Cubierto == 1; aux.ListaEscalafonEmpleados = new List<EscalafonEmpleado>(); EscalafonEmpleado lhs = null; HorarioEscalafon hor = null; foreach (EScalaFOneMpLeadO lh in esc.EScalaFOneMpLeadO) { lhs = new EscalafonEmpleado(); lhs.NroEmpleado = (int)lh.NroEmpleado; lhs.CodigoPuesto = lh.CodigoPuesto; lhs.CantidadHsLlamadaAntesHoraInicio = lh.HsLlamadaAntesHoraInicio; lhs.AcargoDe = lh.AcArgoDe; lhs.Horario = new List<HorarioEscalafon>(); foreach (HoRaRioEScalaFOn h in lh.HoRaRioEScalaFOn) { if (h.IDEscalafon == lh.IDEscalafon && h.IDEscalafonEmpleado == lh.IDEscalafonEmpleado) { if (h.TipoDia == 0) hor = new HorarioEscalafon(h.DiA, h.HoRaInI, h.HoRaFIn, (h.Solapa == 1)? true:false); else hor = new HorarioEscalafon(h.DiA, (int)h.TipoDia); lhs.Horario.Add(hor); } } aux.ListaEscalafonEmpleados.Add(lhs); } return aux; }
public void altaEscalafon(int numCli, int numSer, int nroCon, Escalafon es) { try { EScalaFOn esc = null; esc = new EScalaFOn(); esc.NumeroCliente = (uint)numCli; esc.NumeroServicio = (uint)numSer; esc.IDContrato = (uint)nroCon; esc.IDEscalafon = (uint)nroCon; if (es.Cubierto) esc.Cubierto = 1; else esc.Cubierto = 0; List<EScalaFOneMpLeadO> lhs = new List<EScalaFOneMpLeadO>(); EScalaFOneMpLeadO lh = null; int i = 0; foreach (EscalafonEmpleado ldh in es.ListaEscalafonEmpleados) { lh = new EScalaFOneMpLeadO(); lh.IDEscalafon = (uint)nroCon; lh.IDEscalafonEmpleado = (uint)i; lh.NroEmpleado = (uint)ldh.NroEmpleado; lh.CodigoPuesto = ldh.CodigoPuesto; lh.HsLlamadaAntesHoraInicio = (sbyte)ldh.CantidadHsLlamadaAntesHoraInicio; lh.AcArgoDe = ldh.AcargoDe; //pasar los horarios por dia HoRaRioEScalaFOn hd = null; //HoRaRioSEmPleadOs he = null; foreach (HorarioEscalafon hpd in ldh.Horario) { hd = new HoRaRioEScalaFOn(); hd.IDEscalafon = (uint)nroCon; hd.IDEscalafonEmpleado = (uint)i; hd.NroEmpleado = (uint)ldh.NroEmpleado; if (hpd.EsLaborable()) { hd.DiA = hpd.getDia(); hd.HoRaInI = hpd.getHoraIni(); hd.HoRaFIn = hpd.getHoraFin(); hd.TipoDia = 0; hd.Solapa = (hpd.Solapea()) ? (sbyte)1 : (sbyte)0; } else { hd.DiA = hpd.getDia(); hd.TipoDia = (byte)hpd.getTipoDia(); hd.Solapa = 0; } lh.HoRaRioEScalaFOn.Add(hd); //HORARIOS EMPLEADOS //he = new HoRaRioSEmPleadOs(); //he.NroEmpleado = (uint)ldh.NroEmpleado; //he.IDEscalafon = (uint)nroCon; //he.IDEscalafonEmpleado = (uint)i; //he.Dia = hpd.getDia(); //he.TipoDia = (byte)hpd.getTipoDia(); //he.Solapa = (hpd.Solapea()) ? (sbyte)1 : (sbyte)0; //datos.altaHorEmpleado(he); } lhs.Add(lh); //con.LineAshOrAs.Add(lh); i++; } datos.altaEscalafon(esc, lhs); } catch (Exception ex) { throw ex; } }