protected void btn_editar_sueldo_empleado_Click(object sender, EventArgs e) { int id_empleado = Convert.ToInt32(id_empleado_hidden.Value); int mes = Convert.ToInt32(ddl_mes.SelectedItem.Value); int anio = Convert.ToInt32(ddl_anio.SelectedItem.Value); decimal sueldo = 0; decimal.TryParse(tb_sueldo_empleado.Value, out sueldo); using (var cxt = new Model1Container()) { Resumen_mes_empleado rme = cxt.Resumenes_meses_empleados.FirstOrDefault(rrmmee => rrmmee.id_empleado == id_empleado && rrmmee.mes == mes && rrmmee.anio == anio); if (rme != null) { rme.Sueldo = sueldo; } else { rme = new Resumen_mes_empleado() { id_empleado = id_empleado, mes = mes, anio = anio, dias_laborables = 0, dias_ausente = 0, dias_presente = 0, dias_por_cargar = 0, dias_out = 0, dias_presentes_en_dias_no_laborables = 0, total_horas_normales = "00:00", total_horas_extra_50 = "00:00", total_horas_extra_100 = "00:00", Sueldo = sueldo, total_horas_ausente = "00:00", total_horas_guardia = "00:00", total_horas_varios_taller = "00:00" }; cxt.Resumenes_meses_empleados.Add(rme); } cxt.SaveChanges(); } tb_sueldo_empleado.Value = string.Empty; Cargar_busqueda(); }
private void CargarValoresMes() { if (ddl_empleado.Items.Count > 0) { int id_empleado = Convert.ToInt32(ddl_empleado.SelectedValue); int mes = Convert.ToInt32(ddl_mes.SelectedValue); int anio = Convert.ToInt32(ddl_anio.SelectedValue); int dias_mes = DateTime.DaysInMonth(anio, mes); btn_nueva_busqueda.Visible = true; btn_buscar.Visible = false; div_valores_mes.Visible = true; List<fila_valor_dia_mes> valores_mes = new List<fila_valor_dia_mes>(); decimal dias_laborables = 0; decimal dias_ausentes = 0; decimal dias_presentes = 0; decimal dias_por_cargar = 0; decimal dias_out = 0; decimal dias_presentes_en_dias_no_laborables = 0; string total_horas_normales = "00:00"; string total_horas_extra_50 = "00:00"; string total_horas_extra_100 = "00:00"; string total_horas_ausente = "00:00"; string total_horas_guardia = "00:00"; string total_horas_varios_taller = "00:00"; using (var cxt = new Model1Container()) { bool soldador = cxt.Empleados.First(x => x.id_empleado == id_empleado).Categoria.nombre == "Soldador"; for (int i = 1; i <= dias_mes; i++) { DateTime fecha_buscada = new DateTime(anio, mes, i); fila_valor_dia_mes ret = new fila_valor_dia_mes(); Dia dia = cxt.Dias.FirstOrDefault(d => d.fecha == fecha_buscada && d.id_empleado == id_empleado); Feriado feriado = cxt.Feriados.FirstOrDefault(ff => ff.fecha == fecha_buscada); ret.icon_alerta = feriado != null ? "glyphicon glyphicon-exclamation-sign" : ""; ret.tooltip_alerta = feriado != null ? feriado.descripcion : ""; if (dia != null) { ret.id_dia = "id_" + dia.id_dia.ToString(); ret.dia = dia.fecha; ret.estado_tm = dia.estado_tm; ret.estado_tt = dia.estado_tt; ret.horas_normales = dia.horas_normales; ret.horas_extra_cincuenta = dia.horas_extra_50; ret.horas_extra_cien = dia.horas_extra_100; ret.horas_totales_dia = Horas_string.SumarHoras(new string[] { dia.horas_normales, dia.horas_extra_50, dia.horas_extra_100 }); dia.ausente = "00:00"; dia.guardia = "00:00"; dia.varios_taller = "00:00"; foreach (Detalle_dia item_detalle in dia.Detalles) { if (item_detalle.Equipo.nombre == "Ausencia") { dia.ausente = Horas_string.SumarHoras(new string[] { dia.ausente, item_detalle.total_movimiento }); } if (item_detalle.Equipo.nombre == "Guardia") { if (!soldador) { dia.guardia = Horas_string.SumarHoras(new string[] { dia.guardia, item_detalle.total_movimiento }); } else { dia.guardia = "00:00"; dia.varios_taller = Horas_string.SumarHoras(new string[] { dia.varios_taller, item_detalle.total_movimiento }); } } if (item_detalle.Equipo.nombre == "Varios Taller") { dia.varios_taller = Horas_string.SumarHoras(new string[] { dia.varios_taller, item_detalle.total_movimiento }); } } dias_ausentes = (ret.estado_tm == Estado_turno_dia.Ausente || ret.estado_tm == Estado_turno_dia.Ausente_injust) ? dias_ausentes + (Convert.ToDecimal(5) / Convert.ToDecimal(10)) : dias_ausentes; dias_ausentes = (ret.estado_tt == Estado_turno_dia.Ausente || ret.estado_tt == Estado_turno_dia.Ausente_injust) ? dias_ausentes + (Convert.ToDecimal(5) / Convert.ToDecimal(10)) : dias_ausentes; dias_presentes = (ret.estado_tm == Estado_turno_dia.Presente || ret.estado_tm == Estado_turno_dia.Vacaciones) ? dias_presentes + (Convert.ToDecimal(5) / Convert.ToDecimal(10)) : dias_presentes; dias_presentes = (ret.estado_tt == Estado_turno_dia.Presente || ret.estado_tt == Estado_turno_dia.Vacaciones) ? dias_presentes + (Convert.ToDecimal(5) / Convert.ToDecimal(10)) : dias_presentes; total_horas_normales = Horas_string.SumarHoras(new string[] { total_horas_normales, dia.horas_normales }); total_horas_extra_50 = Horas_string.SumarHoras(new string[] { total_horas_extra_50, dia.horas_extra_50 }); total_horas_extra_100 = Horas_string.SumarHoras(new string[] { total_horas_extra_100, dia.horas_extra_100 }); total_horas_ausente = Horas_string.SumarHoras(new string[] { total_horas_ausente, dia.ausente }); total_horas_guardia = Horas_string.SumarHoras(new string[] { total_horas_guardia, dia.guardia }); total_horas_varios_taller = Horas_string.SumarHoras(new string[] { total_horas_varios_taller, dia.varios_taller }); if (feriado == null) { dias_presentes_en_dias_no_laborables = (dia.fecha.DayOfWeek == DayOfWeek.Saturday && ret.estado_tt == Estado_turno_dia.Presente) ? dias_presentes_en_dias_no_laborables + (Convert.ToDecimal(5) / Convert.ToDecimal(10)) : dias_presentes_en_dias_no_laborables; dias_presentes_en_dias_no_laborables = (dia.fecha.DayOfWeek == DayOfWeek.Sunday && ret.estado_tm == Estado_turno_dia.Presente) ? dias_presentes_en_dias_no_laborables + (Convert.ToDecimal(5) / Convert.ToDecimal(10)) : dias_presentes_en_dias_no_laborables; dias_presentes_en_dias_no_laborables = (dia.fecha.DayOfWeek == DayOfWeek.Sunday && ret.estado_tt == Estado_turno_dia.Presente) ? dias_presentes_en_dias_no_laborables + (Convert.ToDecimal(5) / Convert.ToDecimal(10)) : dias_presentes_en_dias_no_laborables; } else { dias_presentes_en_dias_no_laborables = (ret.estado_tm == Estado_turno_dia.Presente) ? dias_presentes_en_dias_no_laborables + (Convert.ToDecimal(5) / Convert.ToDecimal(10)) : dias_presentes_en_dias_no_laborables; dias_presentes_en_dias_no_laborables = (ret.estado_tt == Estado_turno_dia.Presente) ? dias_presentes_en_dias_no_laborables + (Convert.ToDecimal(5) / Convert.ToDecimal(10)) : dias_presentes_en_dias_no_laborables; } foreach (Detalle_dia detalle in dia.Detalles) { if (detalle.Equipo.OUT && !soldador) { dias_out = dias_out + (Horas_string.HorasADecimales(Horas_string.RestarHoras(detalle.hora_hasta, detalle.hora_desde)) / Convert.ToDecimal(8)); } } } else { ret.id_dia = "fecha_" + anio.ToString() + "_" + mes.ToString() + "_" + i; ret.dia = fecha_buscada; ret.estado_tm = Estado_turno_dia.Ninguno; ret.estado_tt = Estado_turno_dia.Ninguno; ret.horas_normales = "00:00"; ret.horas_extra_cincuenta = "00:00"; ret.horas_extra_cien = "00:00"; ret.horas_totales_dia = "00:00"; switch (ret.dia.DayOfWeek) { case DayOfWeek.Saturday: if (feriado == null) { dias_por_cargar += (Convert.ToDecimal(5) / Convert.ToDecimal(10)); } break; case DayOfWeek.Sunday: break; default: if (feriado == null) { dias_por_cargar++; } break; } } valores_mes.Add(ret); switch (ret.dia.DayOfWeek) { case DayOfWeek.Saturday: if (feriado == null) { dias_laborables += (Convert.ToDecimal(5) / Convert.ToDecimal(10)); } break; case DayOfWeek.Sunday: break; default: if (feriado == null) { dias_laborables++; } break; } } Resumen_mes_empleado rme = cxt.Resumenes_meses_empleados.FirstOrDefault(rr => rr.id_empleado == id_empleado && rr.mes == mes && rr.anio == anio); if (rme == null) { rme = new Resumen_mes_empleado(); rme.id_empleado = id_empleado; rme.mes = mes; rme.anio = anio; rme.Sueldo = 0; cxt.Resumenes_meses_empleados.Add(rme); } rme.dias_ausente = dias_ausentes; rme.dias_laborables = dias_laborables; rme.dias_out = dias_out; rme.dias_por_cargar = dias_por_cargar; rme.dias_presente = dias_presentes; rme.dias_presentes_en_dias_no_laborables = dias_presentes_en_dias_no_laborables; rme.total_horas_normales = total_horas_normales; rme.total_horas_extra_50 = total_horas_extra_50; rme.total_horas_extra_100 = total_horas_extra_100; rme.total_horas_ausente = total_horas_ausente; rme.total_horas_guardia = total_horas_guardia; rme.total_horas_varios_taller = total_horas_varios_taller; cxt.SaveChanges(); } gv_valores_mes.DataSource = valores_mes; gv_valores_mes.DataBind(); lbl_dias_ausentes.Text = dias_ausentes.ToString(); lbl_dias_laborables.Text = dias_laborables.ToString(); lbl_dias_out.Text = dias_out.ToString(); lbl_días_por_cargar.Text = dias_por_cargar.ToString(); lbl_dias_presentes_en_dias_no_laborables.Text = dias_presentes_en_dias_no_laborables.ToString(); lbl_dias_presentes_vacaciones.Text = dias_presentes.ToString(); lbl_total_horas_normales.Text = total_horas_normales; lbl_total_horas_extra_50.Text = total_horas_extra_50; lbl_total_horas_extra_100.Text = total_horas_extra_100; btn_buscar.Visible = false; btn_nueva_busqueda.Visible = true; div_valores_mes.Visible = true; ddl_tipo_empleado.Enabled = false; ddl_empleado.Enabled = false; ddl_mes.Enabled = false; ddl_anio.Enabled = false; } else { MessageBox.Show(this, "El área seleccionada no tiene empleados"); } }