Skip to content
Code-Schnipsel Gruppen Projekte
Commit ece5ca39 erstellt von Patrick Müller's avatar Patrick Müller
Dateien durchsuchen

Merge branch 'dev'

Übergeordnete d425ea29 c4f8e62d
No related branches found
No related tags found
2 Merge Requests!6feat!: quiqqer v2,!5feat!: quiqqer v2
...@@ -718,26 +718,6 @@ protected static function refreshTransactionList($subscriptionId) ...@@ -718,26 +718,6 @@ protected static function refreshTransactionList($subscriptionId)
$data = self::getSubscriptionData($subscriptionId); $data = self::getSubscriptionData($subscriptionId);
$globalProcessId = $data['global_process_id']; $globalProcessId = $data['global_process_id'];
// Determine last subscription ID
$result = QUI::getDataBase()->fetch([
'select' => ['stripe_invoice_id'],
'from' => Provider::getStripeBillingSubscriptionsTransactionsTable(),
'where' => [
'stripe_subscription_id' => $subscriptionId
],
'order' => [
'field' => 'stripe_invoice_date',
'sort' => 'DESC'
],
'limit' => 1
]);
$lastInvoiceId = null;
if (!empty($result)) {
$lastInvoiceId = $result[0]['stripe_invoice_id'];
}
// Determine existing transactions // Determine existing transactions
$result = QUI::getDataBase()->fetch([ $result = QUI::getDataBase()->fetch([
'select' => ['stripe_invoice_id'], 'select' => ['stripe_invoice_id'],
...@@ -754,7 +734,7 @@ protected static function refreshTransactionList($subscriptionId) ...@@ -754,7 +734,7 @@ protected static function refreshTransactionList($subscriptionId)
} }
// Parse NEW transactions // Parse NEW transactions
$transactions = self::getSubscriptionTransactions($data['stripe_id'], $lastInvoiceId); $transactions = self::getSubscriptionTransactions($data['stripe_id']);
foreach ($transactions as $transaction) { foreach ($transactions as $transaction) {
$TransactionTime = date_create('@'.$transaction['created']); $TransactionTime = date_create('@'.$transaction['created']);
...@@ -771,19 +751,30 @@ protected static function refreshTransactionList($subscriptionId) ...@@ -771,19 +751,30 @@ protected static function refreshTransactionList($subscriptionId)
$transactionTime = $TransactionTime->format('Y-m-d H:i:s'); $transactionTime = $TransactionTime->format('Y-m-d H:i:s');
if (isset($existing[$transaction['id']])) { if (isset($existing[$transaction['id']])) {
continue; QUI::getDataBase()->update(
Provider::getStripeBillingSubscriptionsTransactionsTable(),
[
'stripe_invoice_id' => $transaction['id'],
'stripe_invoice_data' => \json_encode($transaction),
'stripe_invoice_date' => $transactionTime,
'global_process_id' => $globalProcessId
],
[
'stripe_subscription_id' => $subscriptionId
]
);
} else {
QUI::getDataBase()->insert(
Provider::getStripeBillingSubscriptionsTransactionsTable(),
[
'stripe_invoice_id' => $transaction['id'],
'stripe_subscription_id' => $subscriptionId,
'stripe_invoice_data' => \json_encode($transaction),
'stripe_invoice_date' => $transactionTime,
'global_process_id' => $globalProcessId
]
);
} }
QUI::getDataBase()->insert(
Provider::getStripeBillingSubscriptionsTransactionsTable(),
[
'stripe_invoice_id' => $transaction['id'],
'stripe_subscription_id' => $subscriptionId,
'stripe_invoice_data' => \json_encode($transaction),
'stripe_invoice_date' => $transactionTime,
'global_process_id' => $globalProcessId
]
);
} }
self::$transactionsRefreshed[$subscriptionId] = true; self::$transactionsRefreshed[$subscriptionId] = true;
...@@ -800,6 +791,8 @@ protected static function refreshTransactionList($subscriptionId) ...@@ -800,6 +791,8 @@ protected static function refreshTransactionList($subscriptionId)
*/ */
protected static function getUnprocessedTransactions($subscriptionId, $status = StripeInvoice::STATUS_PAID) protected static function getUnprocessedTransactions($subscriptionId, $status = StripeInvoice::STATUS_PAID)
{ {
self::refreshTransactionList($subscriptionId);
$result = QUI::getDataBase()->fetch([ $result = QUI::getDataBase()->fetch([
'select' => ['stripe_invoice_data'], 'select' => ['stripe_invoice_data'],
'from' => Provider::getStripeBillingSubscriptionsTransactionsTable(), 'from' => Provider::getStripeBillingSubscriptionsTransactionsTable(),
...@@ -809,20 +802,6 @@ protected static function getUnprocessedTransactions($subscriptionId, $status = ...@@ -809,20 +802,6 @@ protected static function getUnprocessedTransactions($subscriptionId, $status =
] ]
]); ]);
// Try to refresh list if no unprocessed transactions found
if (empty($result)) {
self::refreshTransactionList($subscriptionId);
$result = QUI::getDataBase()->fetch([
'select' => ['stripe_invoice_data'],
'from' => Provider::getStripeBillingSubscriptionsTransactionsTable(),
'where' => [
'stripe_subscription_id' => $subscriptionId,
'quiqqer_transaction_id' => null
]
]);
}
$transactions = []; $transactions = [];
foreach ($result as $row) { foreach ($result as $row) {
......
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren