From cabfd25f8a3bf38b5e0a9c6eea69ef3e0974a17e Mon Sep 17 00:00:00 2001 From: mDeflotte Date: Mon, 4 Jun 2012 09:09:51 +0000 Subject: [PATCH] // Fix bug with bad SQL request on changing state of an order paid by check --- classes/order/Order.php | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/classes/order/Order.php b/classes/order/Order.php index fa8e0b22f..39adbe434 100644 --- a/classes/order/Order.php +++ b/classes/order/Order.php @@ -1115,16 +1115,19 @@ class OrderCore extends ObjectModel WHERE `id_order` = '.(int)$order_invoice->id_order); // Update order payment - Db::getInstance()->execute(' - INSERT INTO `'._DB_PREFIX_.'order_invoice_payment` - SET - `id_order_invoice` = '.(int)$order_invoice->id.', - `id_order_payment` = ( - SELECT id_order_payment FROM `'._DB_PREFIX_.'order_payment` op - INNER JOIN `'._DB_PREFIX_.'orders` o - ON o.reference = op.order_reference - WHERE id_order = '.(int)$order_invoice->id_order.' LIMIT 1), - `id_order` = '.(int)$order_invoice->id_order); + $id_order_payment = Db::getInstance()->getValue(' + SELECT id_order_payment FROM `'._DB_PREFIX_.'order_payment` op + INNER JOIN `'._DB_PREFIX_.'orders` o + ON o.reference = op.order_reference + WHERE id_order = '.(int)$order_invoice->id_order); + + if ($id_order_payment) + Db::getInstance()->execute(' + INSERT INTO `'._DB_PREFIX_.'order_invoice_payment` + SET + `id_order_invoice` = '.(int)$order_invoice->id.', + `id_order_payment` = '.(int)$id_order_payment.', + `id_order` = '.(int)$order_invoice->id_order); // Update order cart rule Db::getInstance()->execute('