public IActionResult Actualizar([FromBody] ActualizarLoteRequestDTO request) { Guid guid = Guid.NewGuid(); _log.RegistrarEvento($"{guid.ToString()}{Environment.NewLine}{Newtonsoft.Json.JsonConvert.SerializeObject(request)}"); ActualizarLoteResponseDTO response = new ActualizarLoteResponseDTO(); try { response.Result.Data = _loteService.ActualizarLote(request); response.Result.Success = true; } catch (ResultException ex) { response.Result = new Result() { Success = true, ErrCode = ex.Result.ErrCode, Message = ex.Result.Message }; } catch (Exception ex) { response.Result = new Result() { Success = false, Message = "Ocurrio un problema en el servicio, intentelo nuevamente." }; _log.RegistrarEvento(ex, guid.ToString()); } _log.RegistrarEvento($"{guid.ToString()}{Environment.NewLine}{Newtonsoft.Json.JsonConvert.SerializeObject(response)}"); return(Ok(response)); }
public int ActualizarLote(ActualizarLoteRequestDTO request) { int affected = _ILoteRepository.Actualizar(request.LoteId, DateTime.Now, request.Usuario, request.AlmacenId, request.Cantidad, request.TotalKilosNetosPesado, request.TotalKilosBrutosPesado, request.ContratoId); if (request.NotasIngresoAlmacenId != null && request.NotasIngresoAlmacenId.Count > 0) { List <ListaIdsAccion> notasIngresoAlmacenIdEliminar = request.NotasIngresoAlmacenId.Where(a => a.Accion == "E").ToList(); if (notasIngresoAlmacenIdEliminar != null && notasIngresoAlmacenIdEliminar.Count > 0) { List <TablaIdsTipo> loteDetalleIdEliminar = new List <TablaIdsTipo>(); List <TablaIdsTipo> notasIntegresoIdActualizar = new List <TablaIdsTipo>(); foreach (ListaIdsAccion id in notasIngresoAlmacenIdEliminar) { TablaIdsTipo tablaIdsTipo = new TablaIdsTipo(); tablaIdsTipo.Id = id.Id; loteDetalleIdEliminar.Add(tablaIdsTipo); LoteDetalle loteDetalle = _ILoteRepository.ConsultarLoteDetallePorId(id.Id); if (loteDetalle != null) { TablaIdsTipo tablaNotasIntegresoIdsTipo = new TablaIdsTipo(); tablaNotasIntegresoIdsTipo.Id = loteDetalle.NotaIngresoAlmacenId; notasIntegresoIdActualizar.Add(tablaNotasIntegresoIdsTipo); } } _ILoteRepository.EliminarLoteDetalle(loteDetalleIdEliminar); _INotaIngresoAlmacenRepository.ActualizarEstadoPorIds(notasIntegresoIdActualizar, DateTime.Now, request.Usuario, NotaIngresoAlmacenEstados.Ingresado); } List <ListaIdsAccion> notasIngresoAlmacenIdNuevo = request.NotasIngresoAlmacenId.Where(a => a.Accion == "N").ToList(); if (notasIngresoAlmacenIdNuevo != null && notasIngresoAlmacenIdNuevo.Count > 0) { List <TablaIdsTipo> notasIngresoAlmacenIdConsulta = new List <TablaIdsTipo>(); foreach (ListaIdsAccion id in notasIngresoAlmacenIdNuevo) { TablaIdsTipo tablaIdsTipo = new TablaIdsTipo(); tablaIdsTipo.Id = id.Id; notasIngresoAlmacenIdConsulta.Add(tablaIdsTipo); } List <NotaIngresoAlmacen> notasIngreso = _INotaIngresoAlmacenRepository.ConsultarNotaIngresoPorIds(notasIngresoAlmacenIdConsulta).ToList(); if (notasIngreso != null && notasIngreso.Count > 0) { List <LoteDetalle> lotesDetalle = new List <LoteDetalle>(); notasIngreso.ForEach(notaingreso => { LoteDetalle item = new LoteDetalle(); item.LoteId = request.LoteId; item.NotaIngresoAlmacenId = notaingreso.NotaIngresoAlmacenId; item.Numero = notaingreso.Numero; item.TipoProvedorId = notaingreso.TipoProvedorId; item.SocioId = notaingreso.SocioId; item.TerceroId = notaingreso.TerceroId; item.IntermediarioId = notaingreso.IntermediarioId; item.ProductoId = notaingreso.ProductoId; item.SubProductoId = notaingreso.SubProductoId; item.UnidadMedidaIdPesado = notaingreso.UnidadMedidaIdPesado; item.CantidadPesado = notaingreso.CantidadPesado; item.KilosNetosPesado = notaingreso.KilosNetosPesado; item.KilosBrutosPesado = notaingreso.KilosBrutosPesado; item.RendimientoPorcentaje = notaingreso.RendimientoPorcentaje; item.HumedadPorcentaje = notaingreso.HumedadPorcentajeAnalisisFisico; item.TotalAnalisisSensorial = notaingreso.TotalAnalisisSensorial.Value; item.NotaIngresoAlmacenId = notaingreso.NotaIngresoAlmacenId; //totalKilosNetosPesado = totalKilosNetosPesado + item.KilosNetosPesado; //totalKilosBrutosPesado = totalKilosBrutosPesado + item.KilosBrutosPesado; //totalRendimientoPorcentaje = totalRendimientoPorcentaje + item.RendimientoPorcentaje.Value; //totalAnalisisSensorial = totalAnalisisSensorial + item.TotalAnalisisSensorial; //totalHumedadPorcentaje = totalHumedadPorcentaje + item.HumedadPorcentaje; //totalCantidad = totalCantidad + item.CantidadPesado; //unidadMedidaId = item.UnidadMedidaIdPesado; lotesDetalle.Add(item); }); /* * lote.TotalKilosNetosPesado = totalKilosNetosPesado; * lote.TotalKilosBrutosPesado = totalKilosBrutosPesado; * //lote.PromedioRendimientoPorcentaje = totalRendimientoPorcentaje / lotesDetalle.Count; * //lote.PromedioHumedadPorcentaje = totalHumedadPorcentaje / lotesDetalle.Count; * lote.UnidadMedidaId = unidadMedidaId; * //lote.PromedioTotalAnalisisSensorial = totalAnalisisSensorial / lotesDetalle.Count; * * lote.Cantidad = totalCantidad; * * loteId = _ILoteRepository.Insertar(lote); * * * * * */ _ILoteRepository.InsertarLoteDetalle(lotesDetalle); notasIngreso.ForEach(notaingreso => { _INotaIngresoAlmacenRepository.ActualizarEstado(notaingreso.NotaIngresoAlmacenId, DateTime.Now, request.Usuario, NotaIngresoAlmacenEstados.Lotizado); }); } } } return(affected); }