Skip to content

Commit

Permalink
Converted Worldpay objects to array
Browse files Browse the repository at this point in the history
  • Loading branch information
TheCartpenter committed Jan 19, 2024
1 parent 30dc4b3 commit 92583ad
Showing 1 changed file with 31 additions and 33 deletions.
64 changes: 31 additions & 33 deletions upload/catalog/model/extension/payment/worldpay.php
Original file line number Diff line number Diff line change
Expand Up @@ -163,15 +163,15 @@ public function getTransactions(int $worldpay_order_id): array {
}

/**
* recurringPayment
* subscriptionPayment
*
* @param array $item
* @param string $order_id_rand
* @param string $token
*
* @return void
*/
public function recurringPayment(array $item, string $order_id_rand, string $token): void {
public function subscriptionPayment(array $item, string $order_id_rand, string $token): void {
// Subscriptions
$this->load->model('checkout/subscription');

Expand Down Expand Up @@ -218,41 +218,39 @@ public function recurringPayment(array $item, string $order_id_rand, string $tok

$response_data = $this->model_extension_payment_worldpay->sendCurl('orders', $order);

if ($response_data) {
$this->model_extension_payment_worldpay->logger($response_data);
$this->model_extension_payment_worldpay->logger($response_data);

$next_payment = new \DateTime('now');
$trial_end = new \DateTime('now');
$subscription_end = new \DateTime('now');
$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 ($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 ($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);
}
if (isset($response_data['paymentStatus']) && $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);
}
}

Expand Down

0 comments on commit 92583ad

Please sign in to comment.