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));
        }
Esempio n. 2
0
        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);
        }