protected void btn_ver_ServerClick(object sender, EventArgs e) { Usuario usuariologueado = Session["UsuarioLogueado"] as Usuario; string str_id_dia = ((System.Web.UI.HtmlControls.HtmlButton)sender).Attributes["data-id"]; Dia dia; List<fila_detalle_dia> detalle = new List<fila_detalle_dia>(); div_error_detalle.Visible = false; bool soldador = false; using (var cxt = new Model1Container()) { if (str_id_dia.Contains("id")) { int id_dia = Convert.ToInt32(str_id_dia.Replace("id_", "")); dia = cxt.Dias.FirstOrDefault(d => d.id_dia == id_dia); soldador = dia.Empleado.Categoria.nombre == "Soldador"; foreach (Detalle_dia item_detalle in dia.Detalles) { fila_detalle_dia fila_detalle = new fila_detalle_dia(); fila_detalle.id_equipo = item_detalle.Equipo.id_equipo; fila_detalle._out = item_detalle.Equipo.OUT; fila_detalle.fecha = item_detalle.Dia.fecha; fila_detalle.id_dia = item_detalle.id_dia; fila_detalle.id_detalle_dia = item_detalle.id_detalle_dia; fila_detalle.equipo = item_detalle.Equipo.nombre; fila_detalle.desde = item_detalle.hora_desde; fila_detalle.hasta = item_detalle.hora_hasta; fila_detalle.total_movimiento = Horas_string.RestarHoras(item_detalle.hora_hasta, item_detalle.hora_desde); detalle.Add(fila_detalle); } } else { int fecha_dia = Convert.ToInt32(str_id_dia.Replace("fecha_", "").Split('_')[2]); int fecha_mes = Convert.ToInt32(str_id_dia.Replace("fecha_", "").Split('_')[1]); int fecha_año = Convert.ToInt32(str_id_dia.Replace("fecha_", "").Split('_')[0]); dia = new Dia(); dia.fecha = new DateTime(fecha_año, fecha_mes, fecha_dia); dia.horas_normales = "00:00"; dia.horas_extra_50 = "00:00"; dia.horas_extra_100 = "00:00"; dia.ausente = "00:00"; dia.guardia = "00:00"; dia.varios_taller = "00:00"; dia.estado_tm = Estado_turno_dia.Ninguno; dia.estado_tt = Estado_turno_dia.Ninguno; dia.id_empleado = Convert.ToInt32(ddl_empleado.SelectedValue); cxt.Dias.Add(dia); } } if (soldador) { QuitarColumnaOUT(); } if (usuariologueado.perfil == perfil_usuario.Jefe) { gv_detalle_dia_view.DataSource = detalle; gv_detalle_dia_view.DataBind(); } else { gv_detalle_dia.DataSource = detalle; gv_detalle_dia.DataBind(); } lbl_fecha.Text = lbl_fecha_view.Text = dia.fecha.ToString("dddd', ' dd 'de' MMMM 'del' yyyy"); ddl_estado_turno_m.SelectedValue = dia.estado_tm.ToString(); ddl_estado_turno_t.SelectedValue = dia.estado_tt.ToString(); lbl_horas_normales.Text = lbl_horas_normales_view.Text = dia.horas_normales; lbl_horas_extra_cincuenta.Text = lbl_horas_extra_cincuenta_view.Text = dia.horas_extra_50; lbl_horas_extra_cien.Text = lbl_horas_extra_cien_view.Text = dia.horas_extra_100; Session["DiaSeleccionado"] = dia; Session["Detalle"] = detalle; if (usuariologueado.perfil == perfil_usuario.Jefe) { MostrarPopUpValoresDia_view(); } else { MostrarPopUpValoresDia(); } }
protected void btn_guardar_detalle_dia_ServerClick(object sender, EventArgs e) { //guardar Dia dia = Session["DiaSeleccionado"] as Dia; List<fila_detalle_dia> filas = Session["Detalle"] as List<fila_detalle_dia>; string errores = string.Empty; bool tiene_error = false; Feriado feriado = null; bool soldador = false; using (var cxt = new Model1Container()) { feriado = cxt.Feriados.FirstOrDefault(ff => ff.fecha == dia.fecha); soldador = cxt.Empleados.First(x => x.id_empleado == dia.id_empleado).Categoria.nombre == "Soldador"; } Estado_turno_dia estadotm = (Estado_turno_dia)Enum.Parse(typeof(Estado_turno_dia), ddl_estado_turno_m.SelectedValue); Estado_turno_dia estadott = (Estado_turno_dia)Enum.Parse(typeof(Estado_turno_dia), ddl_estado_turno_t.SelectedValue); if (dia.fecha.DayOfWeek != DayOfWeek.Sunday && feriado == null) { tiene_error = estadotm != Estado_turno_dia.Ninguno ? false : true; errores = !tiene_error ? string.Empty : errores + "• Debe agendar estado para el turno mañana <br/>"; } if (!tiene_error) { if (dia.fecha.DayOfWeek != DayOfWeek.Saturday && dia.fecha.DayOfWeek != DayOfWeek.Sunday && feriado == null) { tiene_error = estadott != Estado_turno_dia.Ninguno ? false : true; errores = !tiene_error ? string.Empty : errores + "• Debe agendar estado para el turno tarde <br/>"; } } if (errores == string.Empty) { using (var cxt = new Model1Container()) { if (dia.id_dia == 0) { Dia dia_cxt = new Dia(); dia_cxt.ausente = "00:00"; dia_cxt.guardia = "00:00"; dia_cxt.varios_taller = "00:00"; dia_cxt.id_empleado = Convert.ToInt32(ddl_empleado.SelectedItem.Value); if (dia.fecha.DayOfWeek == DayOfWeek.Sunday || feriado != null) { if (estadotm != Estado_turno_dia.Ausente && estadotm != Estado_turno_dia.Ausente_injust) { dia_cxt.estado_tm = estadotm; } else { dia_cxt.estado_tm = Estado_turno_dia.Ninguno; } } else { dia_cxt.estado_tm = estadotm; } if (dia.fecha.DayOfWeek == DayOfWeek.Sunday || dia.fecha.DayOfWeek == DayOfWeek.Saturday || feriado != null) { if (estadott != Estado_turno_dia.Ausente && estadott != Estado_turno_dia.Ausente_injust) { dia_cxt.estado_tt = estadott; } else { dia_cxt.estado_tt = Estado_turno_dia.Ninguno; } } else { dia_cxt.estado_tt = estadott; } dia_cxt.fecha = dia.fecha; dia_cxt.horas_normales = dia.horas_normales; dia_cxt.horas_extra_50 = dia.horas_extra_50; dia_cxt.horas_extra_100 = dia.horas_extra_100; foreach (fila_detalle_dia item_detalle in filas) { if (item_detalle.id_detalle_dia == 0) { dia_cxt.Detalles.Add(new Detalle_dia() { id_equipo = item_detalle.id_equipo, hora_desde = item_detalle.desde, hora_hasta = item_detalle.hasta }); } if (item_detalle.equipo == "Ausencia") { dia_cxt.ausente = Horas_string.SumarHoras(new string[] { dia_cxt.ausente, item_detalle.total_movimiento }); } if (item_detalle.equipo == "Guardia") { if (!soldador) { dia_cxt.guardia = Horas_string.SumarHoras(new string[] { dia_cxt.guardia, item_detalle.total_movimiento }); } else { dia_cxt.guardia = "00:00"; dia_cxt.varios_taller = Horas_string.SumarHoras(new string[] { dia_cxt.varios_taller, item_detalle.total_movimiento }); } } if (item_detalle.equipo == "Varios Taller") { dia_cxt.varios_taller = Horas_string.SumarHoras(new string[] { dia_cxt.varios_taller, item_detalle.total_movimiento }); } } try { cxt.Dias.Add(dia_cxt); cxt.SaveChanges(); Session["DiaSeleccionado"] = null; Session["Detalle"] = null; } catch (Exception ex) { MessageBox.Show(this, "Error!!!!!!<br/>Error: " + ex.Message + "<br/>Inner: " + ex.InnerException, MessageBox.Tipo_MessageBox.Danger); } } else { //ya existe el dia, hay que agregar los cambios Dia dia_cxt = cxt.Dias.First(d => d.id_dia == dia.id_dia); if (dia.fecha.DayOfWeek == DayOfWeek.Sunday || feriado != null) { if (estadotm != Estado_turno_dia.Ausente && estadotm != Estado_turno_dia.Ausente_injust) { dia_cxt.estado_tm = estadotm; } else { dia_cxt.estado_tm = Estado_turno_dia.Ninguno; } } else { dia_cxt.estado_tm = estadotm; } if (dia.fecha.DayOfWeek == DayOfWeek.Sunday || dia.fecha.DayOfWeek == DayOfWeek.Saturday || feriado != null) { if (estadott != Estado_turno_dia.Ausente && estadott != Estado_turno_dia.Ausente_injust) { dia_cxt.estado_tt = estadott; } else { dia_cxt.estado_tt = Estado_turno_dia.Ninguno; } } else { dia_cxt.estado_tt = estadott; } dia_cxt.horas_normales = dia.horas_normales; dia_cxt.horas_extra_50 = dia.horas_extra_50; dia_cxt.horas_extra_100 = dia.horas_extra_100; dia_cxt.ausente = "00:00"; dia_cxt.guardia = "00:00"; dia_cxt.varios_taller = "00:00"; foreach (fila_detalle_dia item_detalle in filas) { if (item_detalle.id_detalle_dia == 0) { dia_cxt.Detalles.Add(new Detalle_dia() { id_equipo = item_detalle.id_equipo, hora_desde = item_detalle.desde, hora_hasta = item_detalle.hasta }); } else { Detalle_dia detalle = cxt.Detalles_dias.FirstOrDefault(dd => dd.id_detalle_dia == item_detalle.id_detalle_dia); detalle.id_equipo = item_detalle.id_equipo; detalle.hora_desde = item_detalle.desde; detalle.hora_hasta = item_detalle.hasta; } if (item_detalle.equipo == "Ausencia") { dia_cxt.ausente = Horas_string.SumarHoras(new string[] { dia_cxt.ausente, item_detalle.total_movimiento }); } if (item_detalle.equipo == "Guardia") { if (!soldador) { dia_cxt.guardia = Horas_string.SumarHoras(new string[] { dia_cxt.guardia, item_detalle.total_movimiento }); } else { dia_cxt.guardia = "00:00"; dia_cxt.varios_taller = Horas_string.SumarHoras(new string[] { dia_cxt.varios_taller, item_detalle.total_movimiento }); } } if (item_detalle.equipo == "Varios Taller") { dia_cxt.varios_taller = Horas_string.SumarHoras(new string[] { dia_cxt.varios_taller, item_detalle.total_movimiento }); } } try { cxt.SaveChanges(); Session["DiaSeleccionado"] = null; Session["Detalle"] = null; } catch (Exception ex) { MessageBox.Show(this, "CHANN!!! <br/>Error: " + ex.Message + "<br/>Inner: " + ex.InnerException, MessageBox.Tipo_MessageBox.Danger); } } } CargarValoresMes(); } else { errores = "<label>Corrija los siguientes errores antes de continuar:</label><br/>" + errores; div_error_detalle.Visible = true; p_error.InnerHtml = errores; MostrarPopUpValoresDia(); } }