private void GrabarDetalles() { try { var listaPolizasDetalle = (_vista.EsConsolidado) ? _vista.PolizaDetallesParaConsolidado : _vista.PolizaDetalles; foreach (var detalle in listaPolizasDetalle.ToList().Where(pd => pd.QTY > 0)) { var op = CosteoServicio.GrabarPolizaDetalle(new CosteoArgumento { PolizaDetalle = detalle, Login = InteraccionConUsuarioServicio.ObtenerUsuario() }); if (op.Resultado == ResultadoOperacionTipo.Error) { InteraccionConUsuarioServicio.MensajeErrorDialogo(op.Mensaje); break; } if (detalle.LINE_NUMBER == 0) { detalle.LINE_NUMBER = int.Parse(op.DbData); } } if (listaPolizasDetalle.ToList().Exists(pd => pd.QTY > 0)) { InteraccionConUsuarioServicio.MensajeExito("Se grabo exitosamente."); } } catch (Exception exception) { InteraccionConUsuarioServicio.MensajeErrorDialogo(exception.Message); } }
private void CargarPlantillaExcel() { OpenFileDialog dialogo = new OpenFileDialog(); dialogo.Filter = "Excel xlsx (*.xlsx)|*.xlsx"; dialogo.FilterIndex = 2; dialogo.RestoreDirectory = true; string docIdExcel = string.Empty; var poliza = Polizas.FirstOrDefault(x => x.IS_SELECTED); if (poliza == null) { InteraccionConUsuarioServicio.Mensaje("Debe seleccionar la póliza para cargar la plantilla."); return; } if (dialogo.ShowDialog() == DialogResult.OK) { var workbook = new XLWorkbook(dialogo.FileName); var worksheet = workbook.Worksheet("Detalle"); DataSet dsHead = new DataSet(); DataSet dsDet = new DataSet(); docIdExcel = worksheet.Cell(2, 3).Value.ToString(); if (!Polizas.ToList().Exists(x => x.CODIGO_POLIZA == docIdExcel)) { InteraccionConUsuarioServicio.Mensaje("El documento número " + docIdExcel + " no se encuentra en un estado para generar costeo o su costeo ya ha sido guardado. "); return; } if (poliza.CODIGO_POLIZA != docIdExcel) { InteraccionConUsuarioServicio.Mensaje("El documento de excel hace referencia al documento (" + docIdExcel + "), por favor seleccionelo antes de cargar."); return; } var excelTable = worksheet.Tables.Table(0); bool banderaError = false; bool banderaPrimero = true; foreach (var excelRow in excelTable.RowsUsed()) { if (banderaPrimero || excelRow.Cell(1).GetString() == "Total:") { banderaPrimero = false; } else { decimal costo = default(decimal); if (!decimal.TryParse(excelRow.Cell(4) != null ? excelRow.Cell(4).GetString() : "0", out costo)) { banderaError = true; costo = 0; } PolizaDetalles.Where(x => x.MATERIAL_ID == excelRow.Cell(1).GetString()).ForEach(x => { x.UNITARY_PRICE = costo; x.CUSTOMS_AMOUNT = costo * x.QTY; }); } } if (banderaError) { InteraccionConUsuarioServicio.Mensaje( "Uno o varios elementos fallaron en la lectura del excel y les asignó un costo 0."); } else { InteraccionConUsuarioServicio.MensajeExito(" Carga realizada con éxito " + docIdExcel); } } UiGridControlDetalle.RefreshDataSource(); }