From 30dc4b3d5f895ce5d69c1ebee9510b246bcce21a Mon Sep 17 00:00:00 2001 From: TheCartpenter Date: Fri, 19 Jan 2024 18:26:18 -0500 Subject: [PATCH] Testing object with IF condition --- .../model/extension/payment/worldpay.php | 64 ++++++++++--------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/upload/catalog/model/extension/payment/worldpay.php b/upload/catalog/model/extension/payment/worldpay.php index a535f31be..e0f6f7f21 100644 --- a/upload/catalog/model/extension/payment/worldpay.php +++ b/upload/catalog/model/extension/payment/worldpay.php @@ -218,39 +218,41 @@ public function recurringPayment(array $item, string $order_id_rand, string $tok $response_data = $this->model_extension_payment_worldpay->sendCurl('orders', $order); - $this->model_extension_payment_worldpay->logger($response_data); - - $next_payment = new \DateTime('now'); - $trial_end = new \DateTime('now'); - $subscription_end = new \DateTime('now'); - - if ($item['subscription']['trial_status'] == 1 && $item['subscription']['trial_duration'] != 0) { - $next_payment = $this->calculateSchedule($item['subscription']['trial_frequency'], $next_payment, $item['subscription']['trial_cycle']); - $trial_end = $this->calculateSchedule($item['subscription']['trial_frequency'], $trial_end, $item['subscription']['trial_cycle'] * $item['subscription']['trial_duration']); - } elseif ($item['subscription']['trial_status'] == 1) { - $next_payment = $this->calculateSchedule($item['subscription']['trial_frequency'], $next_payment, $item['subscription']['trial_cycle']); - $trial_end = new \DateTime('0000-00-00'); - } + if ($response_data) { + $this->model_extension_payment_worldpay->logger($response_data); - if ($trial_end > $subscription_end && $item['subscription']['duration'] != 0) { - $subscription_end = new \DateTime(date_format($trial_end, 'Y-m-d H:i:s')); - $subscription_end = $this->calculateSchedule($item['subscription']['frequency'], $subscription_end, $item['subscription']['cycle'] * $item['subscription']['duration']); - } elseif ($trial_end == $subscription_end && $item['subscription']['duration'] != 0) { - $next_payment = $this->calculateSchedule($item['subscription']['frequency'], $next_payment, $item['subscription']['cycle']); - $subscription_end = $this->calculateSchedule($item['subscription']['frequency'], $subscription_end, $item['subscription']['cycle'] * $item['subscription']['duration']); - } elseif ($trial_end > $subscription_end && $item['subscription']['duration'] == 0) { - $subscription_end = new \DateTime('0000-00-00'); - } elseif ($trial_end == $subscription_end && $item['subscription']['duration'] == 0) { - $next_payment = $this->calculateSchedule($item['subscription']['frequency'], $next_payment, $item['subscription']['cycle']); - $subscription_end = new \DateTime('0000-00-00'); - } + $next_payment = new \DateTime('now'); + $trial_end = new \DateTime('now'); + $subscription_end = new \DateTime('now'); - if (property_exists('paymentStatus', $response_data) && $response_data->paymentStatus == 'SUCCESS') { - $this->addRecurringOrder($order_info, $response_data->orderCode, $token, $price, $subscription_id, date_format($trial_end, 'Y-m-d H:i:s'), date_format($subscription_end, 'Y-m-d H:i:s')); - $this->updateRecurringOrder($subscription_id, date_format($next_payment, 'Y-m-d H:i:s')); - $this->addProfileTransaction($subscription_id, $response_data->orderCode, $price, 1); - } else { - $this->addProfileTransaction($subscription_id, '', $price, 4); + if ($item['subscription']['trial_status'] == 1 && $item['subscription']['trial_duration'] != 0) { + $next_payment = $this->calculateSchedule($item['subscription']['trial_frequency'], $next_payment, $item['subscription']['trial_cycle']); + $trial_end = $this->calculateSchedule($item['subscription']['trial_frequency'], $trial_end, $item['subscription']['trial_cycle'] * $item['subscription']['trial_duration']); + } elseif ($item['subscription']['trial_status'] == 1) { + $next_payment = $this->calculateSchedule($item['subscription']['trial_frequency'], $next_payment, $item['subscription']['trial_cycle']); + $trial_end = new \DateTime('0000-00-00'); + } + + if ($trial_end > $subscription_end && $item['subscription']['duration'] != 0) { + $subscription_end = new \DateTime(date_format($trial_end, 'Y-m-d H:i:s')); + $subscription_end = $this->calculateSchedule($item['subscription']['frequency'], $subscription_end, $item['subscription']['cycle'] * $item['subscription']['duration']); + } elseif ($trial_end == $subscription_end && $item['subscription']['duration'] != 0) { + $next_payment = $this->calculateSchedule($item['subscription']['frequency'], $next_payment, $item['subscription']['cycle']); + $subscription_end = $this->calculateSchedule($item['subscription']['frequency'], $subscription_end, $item['subscription']['cycle'] * $item['subscription']['duration']); + } elseif ($trial_end > $subscription_end && $item['subscription']['duration'] == 0) { + $subscription_end = new \DateTime('0000-00-00'); + } elseif ($trial_end == $subscription_end && $item['subscription']['duration'] == 0) { + $next_payment = $this->calculateSchedule($item['subscription']['frequency'], $next_payment, $item['subscription']['cycle']); + $subscription_end = new \DateTime('0000-00-00'); + } + + if ($response_data->paymentStatus == 'SUCCESS') { + $this->addRecurringOrder($order_info, $response_data->orderCode, $token, $price, $subscription_id, date_format($trial_end, 'Y-m-d H:i:s'), date_format($subscription_end, 'Y-m-d H:i:s')); + $this->updateRecurringOrder($subscription_id, date_format($next_payment, 'Y-m-d H:i:s')); + $this->addProfileTransaction($subscription_id, $response_data->orderCode, $price, 1); + } else { + $this->addProfileTransaction($subscription_id, '', $price, 4); + } } }