private void btnEliminar_Click(object sender, RoutedEventArgs e) { if (dgConceptos.SelectedItem != null) { Liquidacion_Mensual_Detalle detalleEliminar = (Liquidacion_Mensual_Detalle)dgConceptos.SelectedItem; datos.Liquidacion_Mensual_Detalle.Remove(detalleEliminar); datos.SaveChanges(); MessageBox.Show("Detalle Eliminado correctamente. ", "PROCESO COMPLETADO", MessageBoxButton.OK, MessageBoxImage.Information); limpiar(); } }
private void btnAgregar_Click(object sender, RoutedEventArgs e) { if (validaciones()) { try { Liquidacion_Mensual_Detalle lmd = new Liquidacion_Mensual_Detalle(); lmd.Concepto = (Concepto)cboConcepto.SelectedItem; lmd.Empleado = (Empleado)cboEmpleado.SelectedItem; lmd.Liquidacion_Mensual = liquidacionSeleccionada; int vMonto = 0; if (radioPositivo.IsChecked == true) { vMonto = int.Parse(txtMonto.Text); } if (radioNegativo.IsChecked == true) { vMonto = int.Parse(txtMonto.Text) * -1; } lmd.Monto = vMonto; datos.Liquidacion_Mensual_Detalle.Add(lmd); datos.SaveChanges(); MessageBox.Show("Detalle de Liquidacion insertado correctamente: ", "Proceso Completado", MessageBoxButton.OK, MessageBoxImage.Information); getDetalleLiquidacion(); limpiar(); } catch (Exception ex) { MessageBox.Show("Ocurrió el siguiente error: " + ex.ToString(), "ERROR", MessageBoxButton.OK, MessageBoxImage.Error); } } }
private void btnProcesar_Click(object sender, RoutedEventArgs e) { if (dgLiquidaciones.ItemsSource != null) { Liquidacion_Mensual dd = (Liquidacion_Mensual)dgLiquidaciones.SelectedItem; if (dd.Estado.ToString() == "A") { var lstEmpleado = datos.Empleado.ToList(); foreach (Empleado ee in lstEmpleado) { int vIngreso = 0; int vEgresos = 0; int vTotal = 0; int vIps = 0; var detalleLiquidacion = ee.Liquidacion_Mensual_Detalle.ToList().FindAll(x => x.Liquidacion_Id == dd.Id_Liquidacion); vIngreso = vIngreso + ee.Salario_Basico; if (detalleLiquidacion.Count > 0) { foreach (Liquidacion_Mensual_Detalle det in detalleLiquidacion) { if (det.Monto > 0) { vIngreso = vIngreso + det.Monto; } else { vEgresos = vEgresos + det.Monto * -1; } } } vIps = (vIngreso * 9) / 100; Liquidacion_Mensual_Detalle nuevoIps = new Liquidacion_Mensual_Detalle(); nuevoIps.Concepto_Id = 1; nuevoIps.Empleado = ee; nuevoIps.Liquidacion_Mensual = dd; nuevoIps.Monto = vIps * -1; datos.Liquidacion_Mensual_Detalle.Add(nuevoIps); datos.SaveChanges(); var adelantos = ee.Anticipo.ToList().FindAll(x => DateTime.Parse(x.Fecha_Definicion.ToString()).Month == dd.Mes && DateTime.Parse(x.Fecha_Definicion.ToString()).Year == dd.Anho && x.Estado == "A"); if (adelantos.Count > 0) { int vAnticipo = 0; foreach (Anticipo an in adelantos) { vEgresos = vEgresos + an.Monto_Aprobado; vAnticipo = vAnticipo + an.Monto_Aprobado; } Liquidacion_Mensual_Detalle anticipo = new Liquidacion_Mensual_Detalle(); anticipo.Concepto_Id = 2; anticipo.Empleado = ee; anticipo.Liquidacion_Mensual = dd; anticipo.Monto = vAnticipo * -1; datos.Liquidacion_Mensual_Detalle.Add(anticipo); datos.SaveChanges(); } vEgresos = vEgresos + int.Parse(vIps.ToString()); vTotal = vIngreso - vEgresos; ResumenLiquidacion resumen = new ResumenLiquidacion(); resumen.Empleado = ee; resumen.Liquidacion_Mensual = dd; resumen.MontoEgreso = vEgresos; resumen.MontoIngreso = vIngreso; datos.ResumenLiquidacion.Add(resumen); datos.SaveChanges(); } dd.Estado = "C"; datos.Entry(dd).State = System.Data.Entity.EntityState.Modified; datos.SaveChanges(); MessageBox.Show("Se proceso la liquidación del mes: " + dd.Mes.ToString().PadLeft(2, '0') + "/" + dd.Anho.ToString(), "PROCESO COMPLETADO", MessageBoxButton.OK, MessageBoxImage.Information); cargarGrilla(); } else { MessageBox.Show("Solo puede procesar una liquidacion con estado 'A'", "ERROR", MessageBoxButton.OK, MessageBoxImage.Error); } } else { MessageBox.Show("Debe seleccionar un registro para procesar la liquidación.", "ERROR", MessageBoxButton.OK, MessageBoxImage.Error); } }