public IActionResult Liquidar([FromBody] LiquidarNotaCompraRequestDTO request)
        {
            Guid guid = Guid.NewGuid();

            _log.RegistrarEvento($"{guid.ToString()}{Environment.NewLine}{Newtonsoft.Json.JsonConvert.SerializeObject(request)}");

            LiquidarNotaCompraResponseDTO response = new LiquidarNotaCompraResponseDTO();

            try
            {
                response.Result.Data = _notaCompraService.LiquidarNotaCompra(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 LiquidarNotaCompra(LiquidarNotaCompraRequestDTO request)
        {
            List <ConsultaAdelantoBE> _adelantos = _IAdelantoRepository.ConsultarAdelantosPorNotaCompra(request.NotaCompraId, AdelantoEstados.PorLiquidar).ToList();

            if (_adelantos.Count > 0)
            {
                decimal montoAdelanto = _adelantos.Sum(x => x.Monto);
                request.TotalAdelanto = montoAdelanto;
            }

            if (!request.TotalAdelanto.HasValue)
            {
                request.TotalAdelanto = 0;
            }

            request.TotalPagar = request.Importe - request.TotalAdelanto.Value;



            int affected = _INotaCompraRepository.Liquidar(request.NotaCompraId, DateTime.Now, request.Usuario, NotaCompraEstados.Liquidado, request.MonedaId, request.PrecioPagado, request.Importe, request.TotalAdelanto, request.TotalPagar);

            if (_adelantos.Count > 0)
            {
                _IAdelantoRepository.ActualizarEstadoPorNotaCompra(request.NotaCompraId, DateTime.Now, request.Usuario, AdelantoEstados.Liquidado);
            }

            return(affected);
        }