I have my custom module in that I generate invoice automatically but when I reorder order from backend side that getting this kind of error
“Order saving error: Rolled back transaction has not been completed
correctly. “
here is my code
$invoice = $this->invoiceService->prepareInvoice($order);
$invoice->register();
if (!$invoice) {
$order->addStatusHistoryComment(
'Can't generate the invoice right now.',
false
)->save();
}
if (!$invoice->getTotalQty()) {
$order->addStatusHistoryComment(
'Can't generate an invoice without products.',
false
)->save();
}
$invoice->setRequestedCaptureCase(Invoice::CAPTURE_OFFLINE);
$invoice->save();
$invoice->getOrder()->setCustomerNoteNotify(false);
$invoice->getOrder()->setIsInProcess(true);
$transactionSave = $this->transectionFactory->create()->addObject($invoice)
->addObject($invoice->getOrder());
try {
$transactionSave->save();
} catch (Exception $e) {
$writer = new Zend_Log_Writer_Stream(BP . '/var/log/QBMS.log');
$logger = new Zend_Log();
$logger->addWriter($writer);
$logger->info(print_r($e,true));
}
$order->addStatusHistoryComment(
'Automatically Invoice Generated.',
false
)->save();
try {
$this->invoiceSender->send($invoice);
} catch (Exception $e) {
$order->addStatusHistoryComment(
'Can't send the invoice Email right now.',
false
)->save();
$writer = new Zend_Log_Writer_Stream(BP . '/var/log/QBMS.log');
$logger = new Zend_Log();
$logger->addWriter($writer);
$logger->info(print_r($e,true));
}
Screenshot : https://prnt.sc/k0ud002aKFYz