Sets the nodal prices associated with each offer/bid.

def _nodalPrices(self, haveQ):
        """ Sets the nodal prices associated with each offer/bid.
        """
        # Guarantee that cleared offer prices are >= offered prices.
        gteeOfferPrice = True
        gteeBidPrice = True

        for offer in self.offers:
            if not offer.reactive:
                # Get nodal marginal price from OPF results.
                offer.lmbda = offer.generator.bus.p_lmbda
                offer.totalQuantity = offer.generator.p *offer.generator.online
            else:
                offer.lmbda = offer.generator.bus.q_lmbda
                offer.totalQuantity = \
                    abs(offer.generator.q) * offer.generator.online
        for bid in self.bids:
            bus = bid.vLoad.bus

            if not bid.reactive:
                # Fudge factor to include price of bundled reactive power.
                if bid.vLoad.q_max == 0.0:
                    pf = bid.vLoad.q_min / bid.vLoad.p_min
                elif bid.vLoad.q_min == 0.0:
                    pf = bid.vLoad.q_max / bid.vLoad.p_min
                else:
                    pf = 0.0

                # Use bundled lambdas. For loads Q = pf * P.
                bid.lmbda = bus.p_lmbda + pf * bus.q_lmbda

                bid.totalQuantity = -bid.vLoad.p * bid.vLoad.online
                # Guarantee that cleared bids are <= bids.
                gteeBidPrice = True
            else:
                # Use unbundled lambdas.
                bid.lmbda = bus.q_lmbda

                bid.totalQuantity = abs(bid.vLoad.q) * bid.vLoad.online
                # Allow cleared bids to be above bid price.
                gteeBidPrice = False

        return gteeOfferPrice, gteeBidPrice