/** * @param \Magento\Sales\Model\Order\Invoice $invoice * * @return $this */ public function collect(\Magento\Sales\Model\Order\Invoice $invoice) { $order = $invoice->getOrder(); $amount = $order->getDiscountCouponAmount(); $baseAmount = $order->getBaseDiscountCouponAmount(); if ($amount) { $invoice->setDiscountCouponAmount($amount); $invoice->setDiscountCouponAmount($baseAmount); $invoice->setGrandTotal($invoice->getGrandTotal() + $amount); $invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $baseAmount); } return $this; }