Add fix for multishipping method not applying discount to final invoice ...

...and payment capture
I think it should be possible to do this by calling `parent::` and then executing this modified code afterwards? e.g. 

public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
  $oInvoice = parent::collect($invoice);
  if(!$oInvoice->getAllItems() && $oInvoice->getOrder()) {
     $invoice->setDiscountAmount(abs($invoice->getOrder()->getDiscountAmount()));
     $invoice->setBaseDiscountAmount(abs($invoice->getOrder()->getBaseDiscountAmount()));
   }
return $this;
}