From 2347205469b1baf9f4bd4d8d3b70af42258f3b88 Mon Sep 17 00:00:00 2001 From: Frank Harris Date: Fri, 24 Oct 2025 17:27:59 -0400 Subject: [PATCH] website fixes --- modules/billing/admin.php | 2 +- modules/billing/cart.php | 60 +++-- modules/billing/cron-shop.php | 24 +- modules/billing/css/header.css | 147 ++++++++++++ modules/billing/{site.zip => files.zip} | Bin 4740361 -> 4751235 bytes modules/billing/includes/config.inc.php | 35 --- modules/billing/includes/menu.php | 23 +- modules/billing/my_account.php | 295 ++++++++---------------- modules/billing/my_servers.php | 27 +-- modules/billing/order.php | 4 +- modules/billing/renew_server.php | 258 ++++++++++++++------- modules/billing/server_status.php | 41 +--- modules/billing/serverlist.php | 2 +- 13 files changed, 500 insertions(+), 418 deletions(-) rename modules/billing/{site.zip => files.zip} (98%) delete mode 100644 modules/billing/includes/config.inc.php diff --git a/modules/billing/admin.php b/modules/billing/admin.php index 0dadc653..b08e4690 100644 --- a/modules/billing/admin.php +++ b/modules/billing/admin.php @@ -21,7 +21,7 @@ function h($s){ return htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8'); }

Admin Dashboard

Welcome to the admin area. From here you can manage servers, payments, and site settings.

-
+
Manage Servers & Services Invoice History Edit Site Config diff --git a/modules/billing/cart.php b/modules/billing/cart.php index 893e9523..a4798f0b 100644 --- a/modules/billing/cart.php +++ b/modules/billing/cart.php @@ -58,7 +58,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['create_free_for'])) $orderId = (int)$_POST['create_free_for']; if ($orderId > 0) { // load order to verify ownership/price - $stmt = $db->prepare("SELECT user_id, price, status, qty, invoice_duration FROM ogp_billing_orders WHERE order_id = ? LIMIT 1"); + $stmt = $db->prepare("SELECT user_id, price, status, qty, invoice_duration FROM " . $table_prefix . "billing_orders WHERE order_id = ? LIMIT 1"); if ($stmt) { $stmt->bind_param('i', $orderId); $stmt->execute(); @@ -106,15 +106,15 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['create_free_for'])) $finish_date = date('Y-m-d H:i:s'); } - // Check if finish_date column exists - $finish_col_exists = false; - $col_check = mysqli_query($db, "SHOW COLUMNS FROM ogp_billing_orders LIKE 'finish_date'"); - if ($col_check && mysqli_num_rows($col_check) > 0) $finish_col_exists = true; + // Check if finish_date column exists (use table prefix) + $finish_col_exists = false; + $col_check = mysqli_query($db, "SHOW COLUMNS FROM " . $table_prefix . "billing_orders LIKE 'finish_date'"); + if ($col_check && mysqli_num_rows($col_check) > 0) $finish_col_exists = true; // Perform update and log results. Use prepared statements when available and fallback to direct query on error. $updated_rows = 0; if ($finish_col_exists) { - $upd = $db->prepare("UPDATE ogp_billing_orders SET status = 'paid', finish_date = ? WHERE order_id = ? LIMIT 1"); + $upd = $db->prepare("UPDATE " . $table_prefix . "billing_orders SET status = 'paid', finish_date = ? WHERE order_id = ? LIMIT 1"); if ($upd) { $upd->bind_param('si', $finish_date, $orderId); $ok = $upd->execute(); @@ -124,13 +124,13 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['create_free_for'])) } else { // fallback $safe_fd = mysqli_real_escape_string($db, $finish_date); - $q = "UPDATE ogp_billing_orders SET status = 'paid', finish_date = '$safe_fd' WHERE order_id = " . intval($orderId) . " LIMIT 1"; + $q = "UPDATE " . $table_prefix . "billing_orders SET status = 'paid', finish_date = '$safe_fd' WHERE order_id = " . intval($orderId) . " LIMIT 1"; $resq = mysqli_query($db, $q); if (!$resq) site_log_warn('free_create_update_failed_query', ['error'=>mysqli_error($db), 'sql'=>$q]); else $updated_rows = mysqli_affected_rows($db); } } else { - $upd = $db->prepare("UPDATE ogp_billing_orders SET status = 'paid' WHERE order_id = ? LIMIT 1"); + $upd = $db->prepare("UPDATE " . $table_prefix . "billing_orders SET status = 'paid' WHERE order_id = ? LIMIT 1"); if ($upd) { $upd->bind_param('i', $orderId); $ok = $upd->execute(); @@ -138,7 +138,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['create_free_for'])) $updated_rows = $upd->affected_rows; $upd->close(); } else { - $q = "UPDATE ogp_billing_orders SET status = 'paid' WHERE order_id = " . intval($orderId) . " LIMIT 1"; + $q = "UPDATE " . $table_prefix . "billing_orders SET status = 'paid' WHERE order_id = " . intval($orderId) . " LIMIT 1"; $resq = mysqli_query($db, $q); if (!$resq) site_log_warn('free_create_update_failed_query', ['error'=>mysqli_error($db), 'sql'=>$q]); else $updated_rows = mysqli_affected_rows($db); @@ -248,20 +248,28 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_single'])) { $stmt->bind_param("ii", $order_id, $user_id); $stmt->execute(); $stmt->bind_result($status); - if ($stmt->fetch() && strtolower($status) === 'renew') { - $stmt->close(); - // Set status to 'expired' if currently 'renew' - $update = $db->prepare("UPDATE ogp_billing_orders SET status = 'expired' WHERE order_id = ? AND user_id = ?"); - $update->bind_param("ii", $order_id, $user_id); - $update->execute(); - $update->close(); + if ($stmt->fetch() && strtolower($status) === 'renew') { + $stmt->close(); + // If user removes a renewal from their cart, revert the order back to 'installed' + $update = $db->prepare("UPDATE ogp_billing_orders SET status = 'installed' WHERE order_id = ? AND user_id = ?"); + $update->bind_param("ii", $order_id, $user_id); + $update->execute(); + // Log revert action to panel logger + if (isset($db) && method_exists($db, 'logger')) { + $db->logger("USER-CART: User " . intval($user_id) . " reverted renew for order " . intval($order_id)); + } + $update->close(); } else { $stmt->close(); // Otherwise, delete the order $delete = $db->prepare("DELETE FROM ogp_billing_orders WHERE order_id = ? AND user_id = ?"); $delete->bind_param("ii", $order_id, $user_id); - $delete->execute(); - $delete->close(); + $delete->execute(); + // Log deletion to panel logger + if (isset($db) && method_exists($db, 'logger')) { + $db->logger("USER-CART: User " . intval($user_id) . " deleted order " . intval($order_id)); + } + $delete->close(); } } } @@ -318,6 +326,15 @@ if ($db){ $ + isset($row['home_id']) ? (string)$row['home_id'] : ('order'.$row['order_id']), + 'amount' => number_format($rowtotal, 2, '.', ''), + 'order_id' => intval($row['order_id']) + ]; + ?> -
Admin: force-create a paid record for testing.
+
Admin: force-create a paid record for testing.
@@ -401,6 +418,11 @@ $invoiceId = 'INV-' . date('Ymd-His') . '-' . bin2hex(random_bytes(3)); // A short custom reference derived from your line items (<= 127 chars for PayPal) $customHash = substr(strtoupper(sha1(json_encode($invoice))), 0, 16); $customId = "INVREF-$customHash"; +// If the cart contains a single order, set custom_id to the numeric order id so webhooks +// can match the order directly (payment_success matches numeric custom -> order_id). +if (is_array($invoice) && count($invoice) === 1 && !empty($invoice[0]['order_id'])) { + $customId = (string) intval($invoice[0]['order_id']); +} // Text on the PayPal side $description = 'Game server order (' . count($lineItems) . ' item' . (count($lineItems)===1?'': 's') . ')'; diff --git a/modules/billing/cron-shop.php b/modules/billing/cron-shop.php index c26d981d..b9103ac2 100644 --- a/modules/billing/cron-shop.php +++ b/modules/billing/cron-shop.php @@ -20,6 +20,19 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * + * + +Complete Status Flow: +in-cart - User added to cart, not yet paid +renew - Renewal order in cart +paid - Payment received, awaiting server creation +installed - ✅ Active/Running (server provisioned and operational) +invoiced - Invoice generated, payment due (7 days before expiration) +suspended - Server stopped, payment overdue +deleted - Server permanently removed (7 days after suspension) +expired - Order has expired +unknown - Error/undefined state */ chdir(realpath(dirname(__FILE__))); /* Change to the current file path */ @@ -68,7 +81,16 @@ else foreach($user_homes as $user_home) { - $user_id = $user_home['user_id']; + // Developer note: + // In future we may want to change the renewal/invoice strategy so that a + // new order record is created for the renewal (leaving the original order + // intact) instead of mutating the existing order's status/finish_date. + // Creating a separate renewal order gives a clearer, immutable purchase + // history and simplifies auditing. For now this cron job continues to + // update the existing order (change status/finish_date) as implemented + // below. + + $user_id = $user_home['user_id']; $home_id = $user_home['home_id']; diff --git a/modules/billing/css/header.css b/modules/billing/css/header.css index af64f4df..610e7418 100644 --- a/modules/billing/css/header.css +++ b/modules/billing/css/header.css @@ -90,6 +90,21 @@ input, textarea, select, button { color: #fff; background: #11141f; border: 1px #gsw-site a.gsw-btn:hover, #gsw-site button.gsw-btn:hover{transform:translateY(-2px);color:#fff !important;text-decoration:none;} +/* Renew button: slightly smaller but matching gradient, used on My Account cards */ +#gsw-site .renew-btn, #gsw-site a.renew-btn, #gsw-site button.renew-btn{ + display:inline-block; + padding:8px 14px; + background:linear-gradient(135deg,#f59e0b 0%,#ef4444 100%) !important; + color:#fff !important; + text-decoration:none; + border-radius:8px; + font-weight:700; + transition:transform 0.12s; + border:none; + cursor:pointer; +} +#gsw-site .renew-btn:hover, #gsw-site a.renew-btn:hover, #gsw-site button.renew-btn:hover{transform:translateY(-2px);} + #gsw-site .gsw-btn-secondary, #gsw-site a.gsw-btn-secondary{display:inline-block;padding:10px 16px;background:rgba(255,255,255,0.06);color:#fff !important;text-decoration:none;border-radius:8px;border:1px solid rgba(255,255,255,0.06);cursor:pointer;} #gsw-site .gsw-btn-secondary:hover, @@ -152,3 +167,135 @@ input, textarea, select, button { color: #fff; background: #11141f; border: 1px .ml-8{margin-left:8px} .flex-row-gap{display:flex;gap:8px;align-items:center} +/* Account page styles */ +.account-container{max-width:1000px;margin:20px auto;padding:20px} +.account-section{background:rgba(0,0,0,0.25);padding:20px;border-radius:8px;margin-bottom:20px} +.account-section h2{margin:0 0 15px 0;font-size:1.3rem;color:#fff;border-bottom:2px solid rgba(255,255,255,0.1);padding-bottom:10px} +.account-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px} +.account-info-item{padding:10px;background:rgba(255,255,255,0.03);border-radius:6px} +.account-info-label{font-weight:600;color:rgba(255,255,255,0.7);font-size:0.9rem;margin-bottom:5px} +.account-info-value{color:#fff;font-size:1rem} +.account-edit-summary{cursor:pointer;color:#667eea;font-weight:600;margin-top:10px} + +/* Form styles */ +.form-group{margin-bottom:15px} +.form-group label{display:block;margin-bottom:5px;color:#fff;font-weight:500} +.form-group input{width:100%;padding:10px;border:1px solid rgba(255,255,255,0.1);border-radius:6px;background:rgba(0,0,0,0.3);color:#fff} + +/* Alert messages */ +.alert{padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:0.95rem} +.alert-error{background-color:rgba(255,0,0,0.2);border:1px solid rgba(255,0,0,0.3);color:#ffcccc} +.alert-success{background-color:rgba(0,255,0,0.2);border:1px solid rgba(0,255,0,0.3);color:#ccffcc} + +/* Server item cards */ +.server-item{background:rgba(255,255,255,0.03);padding:15px;border-radius:6px;margin-bottom:10px;border-left:3px solid #667eea} +.server-name{font-size:1.1rem;font-weight:600;color:#fff;margin-bottom:8px} +.server-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:10px} +.server-detail{font-size:0.9rem} +.server-detail-label{color:rgba(255,255,255,0.6)} +.server-detail-value{color:#fff;font-weight:500} + +/* Invoice items */ +.invoice-item{background:rgba(255,255,255,0.03);padding:12px 15px;border-radius:6px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center} +.invoice-id{font-weight:600;color:#fff} +.invoice-amount{color:#10b981;font-weight:600} +.invoice-status{padding:4px 10px;border-radius:4px;font-size:0.85rem;font-weight:600} +.invoice-status-paid{background:rgba(16,185,129,0.2);color:#10b981} +.invoice-status-pending{background:rgba(245,158,11,0.2);color:#f59e0b} +.invoice-date{color:rgba(255,255,255,0.6);font-size:0.9rem} + +/* Login placeholder for non-logged-in users */ +.login-placeholder{padding:12px;background:rgba(255,255,255,0.03);border-radius:8px;color:#fff} +.login-placeholder a{color:#cfe6ff;text-decoration:underline} + +/* No data state */ +.no-data{text-align:center;padding:30px;color:rgba(255,255,255,0.6)} + +/* Service description text */ +.service-desc{color:gray;width:230px} +.service-desc-wide{color:gray;width:280px} +.service-textarea{resize:none;width:230px;height:132px} + +/* Admin helpers */ +.admin-note{font-size:11px;color:#666;margin-top:4px} +.admin-flex-wrap{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px} + +@media (max-width:768px){ + .account-info-grid{grid-template-columns:1fr} +} + +/* Server status and utility classes */ +#gsw-site .text-success { + color: #10b981 !important; + font-weight: 600 !important; +} + +#gsw-site .text-danger { + color: #ef4444 !important; + font-weight: 600 !important; +} + +#gsw-site .text-muted { + color: rgba(255,255,255,0.7) !important; +} + +#gsw-site .text-center { + text-align: center !important; +} + +#gsw-site .mb-20 { + margin-bottom: 20px !important; +} + +#gsw-site .server-notes { + padding-left: 40px !important; + font-size: 0.9rem !important; + color: rgba(255,255,255,0.7) !important; +} + +/* Status badges */ +#gsw-site .status-badge { + display: inline-block; + padding: 4px 12px; + border-radius: 12px; + font-size: 0.85rem; + font-weight: 600; + text-transform: uppercase; +} + +#gsw-site .status-online { + background-color: rgba(16, 185, 129, 0.2); + color: #10b981; +} + +#gsw-site .status-offline { + background-color: rgba(239, 68, 68, 0.2); + color: #ef4444; +} + +#gsw-site .status-maintenance { + background-color: rgba(251, 191, 36, 0.2); + color: #fbbf24; +} + +#gsw-site .status-unknown { + background-color: rgba(156, 163, 175, 0.2); + color: #9ca3af; +} + +/* Form radio labels in renewal page */ +#gsw-site .form-group label { + display: block; + margin-bottom: 10px; + cursor: pointer; + padding: 12px; + border: 2px solid #e1e8ed; + border-radius: 8px; + background: rgba(255,255,255,0.05); + transition: background 0.2s ease; +} + +#gsw-site .form-group label:hover { + background: rgba(255,255,255,0.1); +} + diff --git a/modules/billing/site.zip b/modules/billing/files.zip similarity index 98% rename from modules/billing/site.zip rename to modules/billing/files.zip index 4c360fbb22a22efe263408385a85dae9de9a01be..e5dccf609ae7bda7f0b26c4b0795850b1d57cdf1 100644 GIT binary patch delta 47092 zcmZs?1z42b^FIu`EM3xF(%p@8Bi)?>(jXm+pp=O8(jlGFi*zZCw9*aIAT1~_?)p5> z_y4cL$67WjJvocZ{ZYURfrN$!3eV$+W=bA002!nbz5>@8C7z27~vM_uc~ zUK~C_e*F9ElA>c)0%MX$hho_D4^wtK!%Pbc!}c+uQR56nAw>(Hk#1fAC7+MMXJhTz zrhR4JFT5{?8lRX2-344Yp7;n0HF)*X+axZ&SpU>nWqEG@{FM+j(>!?Ms}OdzpGp*d z5&@sa&&aXiuhQqU6V=PeV*U7E8CJ|kHOAbQlV*k7#KfOGxwJ5EyXTErZo3gb(LcTH zcY_EGSAEG9^_dg}2iLhvLhHV>{wn2IZfWOO+hzM`8nLE=EHBYc)p6w9zU)8af97c) z=(Llf>wP%gWXkpVX0{LPcu+;iDyQTzxQG!|u{zi_UDfgI`HL$LAZ6YV>b!hf+!0-o zIUxmwrgG9kIAXg!*#?Hw`*#hs$QEUxZ+Ix^dSz=v^tkmCeTLyOi6x!BQ_qpExIITL^V< z-JMKc7WGP;6Tkf&Q#T!!K!7c&_2biK_gIEsj9!g8!NF>Tac2I{pOVs5{=&i&94`Em zk-t7KYv_7DSIqHtWRm;1kC&J7N%~R!tKXRFm|Ro*Dn1J?X)DGRGKC74F1EMj_|-fT zpUbtCoBQcXtl1cq36Q~PFPlx@zi4Xu-hS)U9yY3XGoL~Ek5c}of zm$2kZlwJ!9j)C4QB; zWC-3>E7Tiv-H5M6I@+Ep1D-3B-O_71WW6OdLp;UT&MWfa=T0E@cG@erj5n4Yp<_YNqvG^W1crsqIO#17Mu?>!N)-IKG$*gMu1k2XJsO3O2#I(mp)aXFA(7c?$Put`6 zr=3_snYkF20lj4;xJws5F+%Hktxl+pxu8hv<=AJY&jSsgTl@v7GHhIgMW*|geq~t~ z^$et?;b2l@pC|n;Y<)*ui$##WtWe1I9dBUrwZ@lAeA9Ga+l+$8X8Sr8I+Y^W(UWG) zWC_P2f)YEIdU(hP9X|^BzU@zxg!oD-I(Fal5guE6>(G49$N*dI7}~c2)TjqJ=!N?7 zZ@VYZzsjN`q+=>MfB24$+$$SiwXjDTEU{wPk7IRQ^g6zn!v_OVVZQ+HI#SDO+ zY>hTrwJm7cksb=13Yj>Z#JHi9h`agVL!ry9fkH46x16z%^DgruKCCpxL{^ONU8Ssx zdst~bCr(=R2NN)R1)!q^OEHO_C`rcoT$dffz0EA&GiVhvJfGZ%tr>q45_eU1o%@O8 zRS(*#-=$`rd#2ikA@y>*dN#5sQ>{>^d>CWbFkQ{dV6?uVQMt#rvp6n7A7r(qeCsX~ zUsX3LjU}!Z`xTnSHY5?X%9Vr<+FD|ogg;q9X6N5jj1m!^sdz>Ku*1yL zAd<(aDk^z5N@NKY%{8RF2~ zuj4U{gx3L%)R1S0bYw-dIVQ(HeDB*AryLt9IV_aCM>H}>{6n%({b&`)?v-SZ{#Bl^ zt~>2}KTct?ni|h7XBae*AdV*i!I>uQ)yZb%*C{6aMa$RQD|C;KG`Wu`*NM#?=T0|= z@~lb7WGT-AfG&7s$t2;uZ^WiY?dxSWze=E@B;y)^rSG6aY>)h#Tkx-fK}m)k9;O?F z^qMCX$YgUo4$`!5=vJ{#Fqmn+?rxtF`)1g=O9?t?eqwp1+r^6Q-=qt|BOB6NRZRO7 zrm=XTFR662`&53RsHtRQRg8-vFeDQVAb&@y zLvA){+V64K=EX=HuTiH(LO6q{e{l4%`QhQ zEjjk$qD3Mid6EFaY@8d%Z2TCrc(4PNnG}{8;8~I+^($t$pI*iV5Y|YjcC{6M) zeHpkJk>jGWDwRVC*?BG0m7W4?36%u|YA=zh{nWO5lt3nQDKkQ&c7Llq0veC(x?TjjNj$!&@BV!^ijxU*?k@(cGNb3IR0}-o+iCrVzgigvXSMl+7 z(hNcdngQQOcdF=tZr?=lsXPKV&8n4w%NuZxE^mi$bfR=9(qRa?)X9Z2jX^3o$Xn^>hr*6$?5A@=2voi#eW0`vXUrza!7M@2Wn^8U$^z+0kvQ59BSi#MlRIt zVgp-4{Mbh7(M!@sQ3?%-EGwr9tj&$UDcYt-QD!NVyx&5Ti&PC!MLWSlhZ> zK&!}pLvcZln(^~E8RB3j@d*z}hUB+_In7)I_wx<`kqJh{pK^X&h$mBN9SoB~VB3)x zhF5vkvy;h;=E)HbF8yqMA9?B|i2V`wI&B2$L_63 zcP6%ojg%f~e=@m}6E*KRi^DgJ0r0FZb@+*c^SLmSRK%jD+ku|)Dz${bStObvS!-X7 zpilVOt?X?VFK0M6&G}4vJ_WAg2Y27xU{;EsZ?$n)#yu>2i*kW0QR}+GmKPslNwks-mFQsOx`|M@K;5q(DH>R0SdtApH3UvDQ(-gXFa< zQUTqzZz0|7ikiTO>nN0bOTiA8>&u|r)lh;PmY2dRT)J>^)Vuv_{{xjk2=2{M+m1EVZT1ZJWk*cm+=sbZ7NLj+ z7yZw!DKMwTutA$Gvk>l2DXSYrfRk^<@%kj}>SYr;npf_CGucLILk!`qxKnH)59mAUrYM zs(ooNaX`D_c$S}-NBf9NAQ`08uv$+M@QVt#h9CZ93d&!`hreb;A3mA#Q91hY6ro!Y7q2uxsH8GU4v^;)8RPenp%4$%x0|72efE{4#^)RKec~^}+M_5rBC?44ACWTK z_Kl(pL+78GQze8I@XMg;*0Yx?9H_oAjqamCxxnHPH)x6O$G-cqE${Tba-ih>#+0fWb>B zI;2x=JEwfT5Mc=p1744xKiO)^#BQe&XO%mzW|LI&Bt8&UCs0Ecaa~=4soBu^acsD* z08fvx_(~4W$4UEBiLyD|2NF$)TbCCb*exSac6;>u8}s#mRPo)TEmSN_Dr z3suYFQ_&M`ny!(M?$L=DVd|hOrQSrQE7b}`m4PbSZy`mm4h7T4)W5gH>I3UIVZ^;! zV9tsl=SI4Zy`dDjAmf%)VeXa%+&0rYKSK;rf%2i5e2P4tc+;ekm}(5cJ2cwIL4U%y z<=G*wzh^iZfjvO_b%ynR)wfQVYS`dqPxBO}>plHU=+~Tkq0dQ}rtj{8OUqE*8mBNiYrWt ziPi+E$8WbQ(PX4Z#ioN?REAP@jRec~h@4Yjq?v_I?iqP@WW2}ndD?X&CbD1(`r=W@ zZ^HV^CE-z}UHE$c=I@~VXVl!SP(mja-9#sTZS=2r${qLR3Fl|ZTous~#Ho}wkkeh? zq&%i71pW#SrlnXL!}6!A@1;Un5I zgYU338gMSM0?PQqF*gqcNc$d*^rp_$WimzCnFF_&E^z zL>G|mDSCgOel0-8Y?F@T5KpSYb>->>lGict`mRX}ER9L4vnsMF1%IIVNJ5{j1?p0} zdHl)Y>p2dWQ5(xQ;e}Ko2)jW=Qf*zI*xaf!l7wAB&zFARD&3GH z9Hv{|=4#JEMOk_3(bVi4wvd;`q^e)JOi=?mhqndZe0bIcHT3sw<_SFh(4t9gTDRQK z&t_y3uzZ~|iG&_Tx);Q{JnNJyh-Bc6)^Sr@^_fL}VO&P-ZALqIQNbonVLOdekT-k( z-3v4`C6O2p+T6kq2-$W$35lq*fmf5tmW@3$^2AQ^mGnBbBe^VUEmfi&2#qL=d^*{awD{9ue%$DF`gAi zI_2Hx`QP{CkG>`VV{4_=+p!Bqs?Ki}hga%3EtjWe7q!eCzgRP|Wxh#ZM;eg$UcZb_ zt9z43AO|h13eTa!TZ4xJD(#|N<*Xti|*z;)61VRh-qK3f`6U=UQ*i^*Cc-*gL$~A zz(&BOXG%mYjY6}T7Yl(8lkPF+@`vl6FbSD-81^fyO54mQv>eZar zl~hGW_Q?TXfzQuvEe4IU5zLUiIakjyWF=e-y{7LZC;%7sD=xTw-g1|I7EWa(W@9c&_Zmm5eS923IBXhD@o!;G2*M(_8l<(|8P?;d?^3}aeUL#p~9yg+GH zqJsW3rSL~s@)n&~Rj?nul%B$FI{|U;+ibwaKI5T?2bif>t@@@e`w3-qSy(*6)B3?O zWR8h_JCP4g=RdLU(V8fi+SAsrWeAz`XT@4OC)rLe!m@-ai50S149dnHU(EO(NVR)^ zxd`~`DP)kUU)Z*abFk1J;`TX+mf2*k-95ao2E!8)@uO4ckYnkxA^PFHsQ|#QH2@p` zIaFUwAPQV!)`msd{d%cyF+B~6uVdfeuuxmqZ(!!3MzkVte#jSLJygNTqUrmbkz+vg z+qQ8>O2y_;HJ5&Hh(?#=s1Y$guhoPv{(R}otFLw5KwHZ>7bhLQ-mcP_!!Hg7eariU zhGyMnQV6$>h zC4+WJHw#mtt@#V_N5WnsWl7T&Qv3)r_@oV-5k!k-g5O#=bh@SL4##~_GtONRnU91A zdrq3c;SrsT&-25gKyjXQVu{V`ZTXyU#Ca*dzpSlHH)C!R+x+Km8p2VedS6Vus|i4KZk|`5-*+lW|MwN)CyTzU;e_*A zW{xqfCU>s=wd!Wh9m#at^lS6UZ~4zZO)^Y*wLFdAPj7;W}Sb7bWhpUwgb}dC{d8DN!xz2wq??gC0Fr@KH~{ng}1{6 z;@ay%7v@3{fKer*)@GO1p(eR{n2JQPL3rqnxVtu1f<*D=xm*Q+y?5)Zi&BI8a&SAE zCHZ^1ttE#q#St;eSqi@2axiLj$FReSej51kuL2}nl!A3_3CUn~l|kBV<==;blUuPb zG3zf1CP(nh`%{E9$7Y|D(@ZgVtX47x8q_9n@)Yw8yQJCeWwAYAg0~cyDQHCcoWqD^SNB-kS9BZZXwdm|wR|E38mi;xG^TC3$gx&e;ZT zC1ZR~?4_}Pk&Nxyl1anW8<$g|RdK2skXOK&byxu$R}gJ`Qe%dg$K`Hte!Hg+E`KMr zVtMxnwe)5({P?M#TWAqx4?;b=yyRy}l$W1&`S~-Kn5CEIPL~)lq^g{^*2GsLZV(iP zc_%G3T@NSUj*prq%ok2aEe~VzD~dUTGhQvH5XUb1cQ1th1YX2;)Um!@3p)C9i+&x#mSTpIdvpkTBX^TmCqleZ8b``cM4v8%sbkOSUW6DVU&o19t&9c;^R#O{j;2ssGjSU}D`HJh&aTGliyGu|6dYIeQ4g${~tfV^%2#G|4JrC{$X)zJiV+>>c(;=?sokaboLt3vthY9P{ z+pTiL0OY}5!uqNmLU`}N)s*$?M{xZQvWOvI4-lvxaC!f)-T!Nm<}bM2P+BC!$8ZUM zY=fF$AX3A+&|o}78Ti0Mxa1%eZ9p_A4jJP2f5k~dI<1f}pbE5z%P<=Bf$s@?#vjw5 z!CZ)>|8`-z(V%UDh`-?i-j#z0p_3Ab@Kr${l>axE1}dY52)7$5r-S$fE}qC3(F_(% zsE;k84=nc3V;96+j6YcbP4GvYfzuqr5zS$Ie>?<>C<`oBP{KIGfq$(hgZ@lLgl8ZW zF$*yZHuukrzsou(LY#!_?XEl?)XqW!qB z3vl`WD-sD6(EWE{;9=GpHsIplE;;m^5CG3HSOP&wDFI~vMG5+lvp@f3rhq!K0pJEe z<9Gqe@U_p20NDPU0eNsEH&k010QVMLsJIe<@?RE0sE5YiE;KSf9xZJ5|jhroAHk}B8Z9WL#lJt0$SnP4xs>ixIADd;BQuf zJ_A_bw1*0X0Y{S404g}LTmaa?5adt&g08Fs?qH%|A->rC$N#V`Kz0hCh4aE9u5}H7 z?+6IY58n3xZ20Jd=Lnz~$Uv?C5e&ix0^r?0yC2F#2>jnbi&6lu;VTe$3|xTw0hUJW z96%KKG}RU)YN#GR@Nd?4Mz%K+(N%+M}nAUy8SBTb+)$p1DMhSM3vb{YjPxf~|GNbuf`Eg62L_NRpswLSbhyUAn7cNS5lHu^1c4w@OYM?j#VNp-_@JAjy9NumcPl zvI^|^KWj}2&BK7c+X42&=uo30UI%vTOj5Wq`%wePXd;($^R9^sfP4lNhX0>>mb4X z@Gyx28e;sn_eYB~^ue=xa8oNC{zpBmJpOe#vpdp11@*7HaD9>BxdbH$L1Kq{A&DVhE^y2T^npeLwhs++63**N8*6z7c9K!l}Nb%gjf2(wdhcX zdZbmjy$=c{U}MlX-T(OK;c5ckoDkUb-7iS+?D%tMk%mz30nngoU;h!nwTz?y7vQ&r z^!Lv4!1omT{QzkkuA}t~>2DE)ZOmUkk(B;1hX85{0LjAVzefYb!O*{T3@2%zjTGwk z2=o;u2bbVz_?}-~RO!0a`5D8jQ0Q!3zJVcZq?&JqV2wkWJk;A3m zG=u)z&J<9kF3{idt)1(5HIv{<{zg&>^=hM#3CpgF7%<) z{>`L^qC^5M-v_~OX@5*6hd#{xdw#-Jx^n|M`|GlY1vMceAOD}VK)F$o4`4JXH4gIM zWjtJ@q@bxp$Q!T$SVed!S*)-$@25l_{!ikAi&&xS^#70^YNH9;NDUhW zBW$1xmwPJ*(lJCK1?wUXQ!K)Dtfo;)N5E*YvwT(%$P;u13`l$v6(@|=-9#1K{m&xc z-zOhT7s-QsVCQ`VStg;O{loUKfPWW3gAO0#drSu#gBm=hd+iSw=0J)*3d!1kj0ZX5 zQX+%6qcgzc^03aDmoS#e{l~~Kzd#q>&}W6fga@EALyYChwq$1*En=5#RUU>OTv%iF$4QSMtZ&)j0eNs{ z0MQ>;3&2<&JgS}mQJUp@1R3R5V)@V13;~W`)-aX_S6{inP%<*-TbN-``d6F>%P<hYj zFr=d@Au|Unp(BIVu;LzELzTpBQ>K_e|b^an-8?MXj0 znTIC((Bzi3rh*OLLCyMREC-6TX%=2Ot;On`FQCNq6FrSZ8c!vm+<{YoE z1b`v6Bn25nAoAA3b5pW{C!B^1d3clqN{1UlSkn{)!3(SKFXz{)4`0p=O*9si2tpLs zC9@P}M9WYeEyw{2sx9(>A!I}Sa#km6jYO?}zN3*e{?@I|V-Y?dXM9v$6RNJdFI%@` zE@STQ$y`5{vb*09w~Czr#=gBx<6~+F)2T*Ja|D8GVlCXgdfzT}&MFkUkCx~Q9|>?0 z_kerUl(0We2+?g3k$>nfe#6c)|2{Uk2J;z>y_f6YH%niXe9YAzo{cV! zYvVpor@>cK@$7y-2>US6hq3a!%67bR!ZgP}K~==~U4>N*EC;bQ0$atd^G)WXPOI3Q zp(q6tsAG~j{lpt@-fU>tpU#!kd*J+*r@sd4D6`qF9FCkqv3R0X)v}jsICk5;cMn|# zH?kvRu5nFH_AGMA6L{)b(`m3wPGh5W*e4~@h_EZigh_H7F{OsQ$_z-P?P+b;##QJf zkBl>3d9SoK_aO+6poZzAp-3#m0~Mk(tf-1HwKOeR99cdm1CGN@6jS$B_eg&9Y?6Ub z-zV+#d|nHTT~Q`E*_f`pgCu!*t^qs=%=XAa4RpeEe~P5kDr$q`XN}DVV*myeu7%`W{tn_=z-* zIlq03s^7h!u4O!_7Nv>#vj)9%0k<-vn1Fba96F9y8hj|X`zExQ?*uNDh2mDIHP%Tk zX~`_bM*4y*N^PkXZ3$YIe7SOI6?!pL({P#ZqBB)+usVSJ_TPdaTmRY2SrJl#EIXfvkfwL2Iftm6zWqmzB3y1x>6cAy6&k)9eR z%Q(Ix(J4vFU-E6%q`dMgg9SCXjTVFbL5qn(o^2#B zmg2&=mdpAek1Y0AQ^sb#!<1sby77w%0Xe=eM?F}ctc3Mey~EOmF<>@`@c9Z6;L031 zb=2J}!d4?9h{&8vF&!x zlw<<2yJ#p1E}0j}t`Z~pz zwUE=~6T9$SqND@ffqjK`ftR7IGoDMD#>s3WgYNN(S5@Q0LjJKPBeoSu_psG1n|#s{ zwASLxIZ%=Q69_^QSwr8XzM^fxP^Z)zhPIF#NuII!Q8PrRvQ5z|PV=kZpbdElv2P|- zLs3h+Sd*I&iy*j)qG#Cr`$?&Un{u(F-7dwuFjQsTK;5c^$IrKtUHG2st=_x+V(rBt z8k^dduD377{OZ$k^mR(;E^u`d=#m+-ViX=tMV1lqW!HlGnd(z@m4sZGuO04F^A=U6 zIJBqK&@MmOmE5p=-ez}Bums69+qVwO0fK_pY(!%NffAuiHppxq)6pe~3H@GR|JJ1R za75My1<#8s$v>~WX=aIzLXi;=vhk8??I|Fk14u}anH&Z9We||7@DzTeY3D0oBf>6f zHt!YG|D1e~hW83hu!GN~K%oT21tBh0xP*=2mMB1B+(RXQPf_Ypg|~1~AIcR<;HRij zrNRIl(O3U-o+8yM{06|pf*KT1F@UEoh7jCN1x|2NEBqAQpSX4?GFWh3P{0kwSp}z| zOEVCrM&)t6WE*y;18KSX(2@HS=x=H-W^C5AsDSmk$HI^iklKh5OYb%DeHc|0Q>|KGr0_O|T;bm){^k5@)2c;#Y6c2MS z)1*R}FNfS=9WAE!ZRf9nVnaxoG1h7O!t@BG`SFVj8w?Di+13=rFOw~?*^>-*?K@5P zOr*Qd!?_GLn-XjB{Ik$(0wwk_6OSaJ{rtaPG+qYsm3m+M}DOS0#S!Xeq*8_C04!Zg2*SMJBN<+m8sXX8O8Qw!9EAMXUek!T6f#`px-356H2nc&{-t#TO5 z@_31EyrYfsM-2SbuK^HO-6u$A*c90YaVE)4Yga*;+vo zwREuplDPiIN0#&(YV{*K^%c9;o*~|2hlo8A$h6)>s1M6xE%bh0YAd7qXl0s^!>(L9gl#tTK(I|~Q*|cw1-2>VCwa8+tN`x! z{PI|j`=*AO>v@$Hf(6xtUQnyerF5St^ zb+$nJAr(X4Lw=;uNx>*=W$iAYY|qVU(+kp(&5;_i?#p=5XDL|aKIxxn=6lA{Hjxjf zjkU|iTS_@6%8$NE>9RgA2$eWuC+LMBVm~Eey;v$5cS7ilRPJ=7xk@>00dp9>8LVsi z9yoi19@>z%n)hww<4}&=qn6qc@7K>_oY@j^CeB1Ris_Pk5@+_ir&V2x1Jwc5{F!oy z^S8F`)p%=G0SNY)Oql{B-1wUIQEl%@UvA5(A7%d14(#J4UHLx$$iC%AYv#bpXhMgV zu#`9Ruxr^@P_8AN_sInE>jrRzX_#Zb3vT+XP=l8LvJ&y{w!Dw!%p`HI?~B%rnB7>k z%)Zr?m!4^M&iYn+Fm5l{sKizu`K>TRZn!z(jOzxfaB1nOFs%@MY6}d@y%??BdUp)z z@GYd&uM3SNa)aA`yN3v5V|J)pw6{0=NnYDsx6atvx}Y@s@C)4d zo6UCLA?Ahc?^K2z^p^fbFH4Hd9l|lDEy(<;-LafHE_u4o7N^jfXL;0VGG}o;4MW*EynQ`of!1_yM8|QSGtd_!m`hRl9P@)p3lTR=f157 znWG_i{MrH@-IFRL$%2DVW^RI7y2wPu@?ABEQWk#BlFthqUG?N9rMRab`ewQg7Sq`u z-DHI-Lht;CcH6fDzb$SpsAd53dLy`7SLc|X27#_fv+HFAlg*qnZp7{b*&|(Z$4XmM znp8uJrk5hkPkKy(+vmx>YJP8O*p_>E368qa-{f|b{$hy9=)`TmfB11V3aT{A4gT|o z^HK=1`bj|<_6W%SSpf=rkp$fyQJ954Dt3-5RbGchdx6VoGVIZX7KAHvC;Pc=LUC_rvbd?!@oAeSlpWI@k`&)}%X*1MI?~iV_E?XF1?@Vth=}ih1Y!1fev6?Mvdz>1m8D%aZ%H&=imnbL5797QOTfrnokK ze2G(Pgdp}Ql=Sl7?>xwU-Y$sa)-29C9Ibr*jeakwv^@y1=)&V%o%gwu0yE@8J?%0+ zmwC2Wm(+h9ui`ai)p*|f9g?ZCh`%~T^)b@k{@dvm@xsEo%JPmht31gHXaZtUcsKR7 zpv<}T=yW$_Kc>UIDcpfqW90`dC=2_(dH}2;PgF z@yHd>CR4udrw!&5bA9>8iC~@2R>Pfyz*@tyTW)u6MRKww|H``RF1L?~EMQgfqHFRY z%#>Ig8MlfV{k7I~d4b5KPOdips;gC(?bN!G_KSJli+$cJ^ zlgCB-c6@H;Hk8@ij2HDTEyBD8w_cdAURULjt!F+-Hixfx%TKEp-iKh*w;fV9SRpcf#ZB*eKHh1o{6rP zMC!+?l;N+G%N@cfM+y~iXjvWqo0rDCOQ^((yh!~MG=ME$ZxksWa;n6rfQCC%#Go7O zYmfb>D~EJE=Zv7Y@7C4m%XBSCTIf^_=-zRM7pGffO_UF+ac)c;|7|&Qcnp#7_ z;BkI52Dhd-me+_irGry+{nXbI{Msq&mK2gAW|@FpW{WOX)z_o!WMV|AuS#BjS9><~ z5u=y^TtnH5u)!vcHnY{MH`^YZ&o+tU@c{_@rm&i_W}AzyLIkW0_H63G={fIzHz69@7ci{wT^6NTEj+4m zvpUE(3wzRFv6_rjpArRmgzHX4zo3ksgI!fxCyzY*a{N5P@)C^4^?IY4Q=Gqz?Yi=N z%&qh5-xIQ!Rn;Ff?zJmj!?}^FKQ^=_aQ*Bq-nD#M?7$SIEU&lf>*hx;_k?1q4C)|; z*ew36Hx>Ov>c(9COf7?NCrci-=uLi=ac`d zz{&jt2k2M#%!pcWqC8(FsZ$B^z)1LIyA1R7a4O_hdV35YO73!xnylxNq~>swmk{jW zb2;Mtp1u1+7Vr1ifuD)vi0-;-$aw@o@x`)}?_Wb@?vYGw4_oM|PWV!E@)GI3FeIUy zjmP90irqgandYC8d0D*Mp7K4Y=A=a`4$u5R!v8?5cCmL4JZD;W5F-_xYe$y(@$;C$ zm=(W6sv93O;k**|+#TunR9DU-)WdkcW$^FaR(giV=gOUI{D+YQx_xy-|i|mVKV63uRny1xxMf zeYIHwXP1Ypb7tzYDv8T`3yOyH8p$S!p(f`odk01a!!GeQ7+h6K8^;Fl!yu`(=G5#4wt%5 z_|je_*7>V!IS`8;T}d~4yrp$FScVKZ|BgNOUZT#r41s;uOC&fFV_vG*BaMrWb_Io1 zXMZ!&6>>WpONrUD%p&b_nXk?nLZC=&?`EF+PKe6Qz64B;)-N;YIP+=VxMa|tH9(9V z<88AOP#a7;P^6aNM5hr&P&#FK2g>y==UQgw2frx3ec?9@k`qv2-@#+=0wUEdy9}H? z6Qz>Lxxsy_!6%(8wIOZgvO-7xVF&-GKzR4gQ_B06AYiCK?#AfW>6-1d+}f$bdo!E{ zh~M{6YE8nz@De{#qKHr_ET+%pdv460!j&l*i#T8j5d~6fTs@7#mLGg1s9FL6ab2vw zyG2?HwO`zetA>q`4Rlb(n|-3N#w?X=3#ct=q?7XoC;Ci~=N5}GN4!w2vWj^+jbz(D zt1rJ2%6y6YeKvyByF{VFIXrsz{Uf=Q*?`6MN70Xb(t^nhv{K68w&=~c9zfGV#U`MuE`&Nsba?vIGw3>uz zNaNXNFwrgMdn401ro(6%;=aW`?iykhdxEFeU<@*eAzK^1NLnnq$fqRdnmUh!#0d5Y zdesmP4H5Z$^w)P|oRG3FmzmK+X$6%%Vt?Hh>-Yxp&xKOF5%2Rz3(oG(8zi8IraB>S|0pmS5YC;ecd{G>3{N@{> zANU1>x!{LID`Do76R#KiADaXA;}jv029YO(VjgBX+|IYmhkGot6Cc+hRYizmC(l;-Norf+{L5`WMrx>qy zEjqHf)!9n+Hh_ePP=q&6M8K9rORpr%kik(rMWwr}Rz_%Ut1lun4>ijR^k`A0C-oD* zfl(W-R5XQgx0xWa8_t>CC+_U?xz$TIbZ+;D_lS+d=%uwA7TX8}+@XgJ6e6qk7_!dfsolWP)ChIEGPh13Y3 zo)pd6TGp5&^%A<##|(EAA0H3wO?ul%r^(GsdMU)|KKTUNMXo1e0mb|Xa7kM%6XEqc z(-li%BQ6pyT2so}dPM3=>DQS3tjuR`c&)^rIia&-I&x@^v6y-Ky+nXy3R;nG(;hgT ztXqpd$J}KnAjV)@U;Fl1(vS3EeQldL^5ww;0nD=_+t#yMV5+3w8Rt}!7m-G^jYCPj z_}h3&6k|~o)F&FUs>|$yRqRN%qeGb4TcR(swh|!rXTn$^5swFldE3bGBt++U`V>fU z-ka*HdtMqIq#wCGnU&nYgql9Qz~}=<&d-2}nAT@i9TmIED2542OK$e4B8UyH-eJob z&Zvfrn5ShLd42du?_}(7rqh4ukx}0KjS%YJ!;~ewXQn zZOuRM3$Y~cp33)~RPlUujG1g^H$qUshC$yPQcw^LvMaA(-e&Y{H}oj? zMevQXK`Lqo5kFq`ai$yl@mE)NsGzz2GBG3tE3D>b@$a$I7MD2C6e7~Q;kUgiP1^Oc!^C zCm$#&1n>PRpYTX3Bk{Mst+n7&0ZDAWpn5a=n}EGkE%NrvEdr9?_mgc_y3GN5Q@gTD zo-k_ew;<-+%IwC|2Dg}EW@0PQ5ZO<`nSpNI${Rkf>yf6t@;HXjSC;B~;579ex)aWw z(Ou5@8`9<#A1e)mKAOf|-mUncG0wPCRN^YGJo-HfkTuUIi;a7XZ2Wmpr?qObm!@|lQFV+OuJspuO z9t+@5miRSTORHy5?DXa;<4ij6T%_PuZeG|P%cD1%co6sP?`)BIj-=?KdIxlRB>oOG z*+GDacmZA@o_{lCDe(E6m}pzZ!F!!tS3#-Rg!6PG+lzDtCsO+??dhfIrq&#+m3R!d z)Et=z&XJFkgq24{vD09L-J=#=ig(-sSAi_0jguwijyx`APaE0CL*H7TkcOR@$iL*d z%R26xYN zzY$3dibLoxOXLo6gvkhU$Ny>;PckHsn#8Ls&#Q`N%N`H~nficjefhnab!f&vb9o4Nu= zw`Y`PL&)gV-;w`3*^Ls81e5(#TQ1MvZ@e-$jY!irz-ou+ULhl9QcWR+miv&2GV)|S zN%6V18VEg%kh)C|nXtxa3|X=ka#^x6&*;+bMx|`O>teh%0;BJNlERj7%*otc`;lvM zcBl0tUL<^QFyz?%9$UTXc79%ZSsImU)+chrPdU62ql|7L8&|K*pO2e*!RkA7kgVD zO;fDAInwmXQ2NP*RqD!Dz5n9d=cO66rgjCM!nOX|+1X}cDhQFo$3Z9+HipvOaJE}7->*s2zsM-U`u>ecpSiM*<=X)Bji(y(PAi5xt5RPK@7`fM*+=Gv2QP z$Bj-9f03gDcH}VhwL~H5Xyw`0vZ7anAyXC6U6u%iI zg7Jk%EJiGPGFDgc3R2NVsO>f)YVNe)lmu;8J3M9zJQk$Cwsgi5e7_f1!NvoZF+4(H zN_#MQS5?hVEy8zM>`FU1#}dj=X10OJkm@jAOt``rlvxYsH44jH5S%DWB}OwZPLa?A zA;Izjj5G%y)NA37t0XI51aeU_5ea|{+aGUXeeQ@uV{uRvU8!s98vLkqw?35O$3tp6XR+}_`gnO-v|an%3iem3h7d(hoAh( zCk3^47~|-a9fOl_?5EKmt?%g5ivu%quv3c)Y<2b?>(OGBjtI`MmCU=2{DNxAVr`?3^D#7xQ9z$Mx;L8$PwQ5DSoJ$FZM;;G@FCGh)hQY=MgfaqW5m2E;mST^R) zz1|lQng%;h5jND>kg}5~60ZajUXS!dqUgX%d+TD&Qabwi-?NAlo%#o}1@I7&kD(%5 z>qpB+omr3_X0J3q;892xN%9d9pm4HpS(x$?i@s(>LE7K1b+_k3Cb$-?VhF9$#QT`q zZOWH6wJwMdf!Uy=z{pEU*PLR2yQ$^$02d~&7Z^M9aES+6>80yu_TqorWGM5g`W6Y3-^-ho|nt=h4bin120p1A6k$Fa7uv@4Ym z{bnl4jr#;Y4BXX7p$h*58QQR4zA9mlJy%lA%Qh_MIt~&%zXgjVi zrwgVLxIUECBUgFbY!^Cpwy;c*MVB`HM^>rmy)Dhp*0cP19uOO67GIZ3tnR1x=?n$M zjr?_QcGgTIZ2FGx!*_BoPOmJ>%VBBm_i3j<&zJApVr(hHtQlsgfVRwGvdWEKk=xIi zcq(9me*a}B7EwM0knRgGc?1AS^!)+;F~}@W1u`KcC&eB$h<_WFK|5GEcr6WmvLG14 zIAY*hr<5S)n-RyHnIO5i>N1B;t`-iPG-Y&iJIOrkR-gfISep#2IrWf2nILF&9#-ET zR_fxqil}^LpV_bBlmX@SO2RD98K5}#I$8kN*z;0cUOi^z)rSGpK>T8b(O~#;&oDaD z|B*8-j3emi*35plDHYuMejpUEf1+PYnoOKTF@M?&T6H0s((ufyM0VGI+C1_X({d^E z_=EvbfupN7!>83m$FcNZhA881vQ#!d^^6(DSwb&-2>*OU+|KF$bHj zH0&a&4~QU7teFg5i40~Mqr6*g$rGb&g{mf%_fLX>oeY3$Wg6{biqnq$(p-$ub`E47 zf@06jiv1OAc1asb4~OL~auq8NH9=FQpIpOWjd3pdngx8dK4qnrlfJ&|UL>>6{^QZJ zc?vw-5t=$&(?+B!b>;^$B2rY-XNJ2i|9mbic%93tg%sqm6J2gZ%+4$6z82B|x z7hN^7gv$fUXbkf2w53ZcRQ7Gli*&T0X`UX7g3b2#f!1GNHFp&BbBZk3seAz#r9r{dckti;Wqos?bHlK!x@QBo z{StfHjNziF$|Wv4X#phY-U5IBRALRg+|w(EPEN)O1a5e0!NaZa`8d5qAMqY-6t8FF zj$HzDqPPoY5ei7jai3wNyWof-`Zo-OeY|>A4v6zj1GONKGH5^YdmOH2iJ^dTH7f2U zsKx%K+5T?1{Tf&)=x9C`fKpiq&rxY2!+3zV86*9GL*oA6)>yVkSoqbzGp*(|s4K0! z3?$E>;}`hEBa2dd6-Ucd>?62pV*nT5@@1up2~eeR;dg%5_d2^9>9x64X~$_0dBRPJ zq-pERe|=} zNn6my?}sDQoOhlXo-dxIpR>HAB0QZo|H?AaA{Zuiy<~Y^d-%+d^}exZg^o&03lI>- zf69MV0%t1-pz-Uh!3u$HVCLXifbUT|0?ZzQn$)6ma&x}HQFC*1y7T6>B|BQ$Fm;jW zgL3C2S0e+?c%=qXr;i=mt-*GAK@Z~I*aOV}(wase+sYWAO_6vBwPlG5E8xi_7UPFI zX@XP9TIZ7NwK<@)AFv`Hk{f@>v4oL^itV;7q6^6QNQfp0)`^NnrUjIDwV!V-0FrOT zjJ;STM{{`cYj}`-X-T`IpWZBZF%hEwBpfCbGqO;fG6R|MIDr0S1x4P4U5lX|qIFPchZRS(M87}j7=b3GWVZz>k4J*E0 zNb;16we<#^mIwKo@37GV#LTN|zN;^HyxZ_uGyCLFZX7Xzo9-88P6AlxF(B#DD)Ddm zfjo}O`-9$Ij{HF{za|)#UpnZYK~_iYBs+B4-XI5$NQsLwymsBcjM>E zog$6CI1xK4kCaizW5Chm!LJp8^i@TWzpYGogRXeixFq+3+>x?0@e1ahGk1zX-3&}l zV}SfXBEy{!uiL|eUpYbZ{($ZT|5TcKx#tB}RLqWkm|NZqQDNJ}Ke4DA4`7R5Cp$kR zJ_&wBTrxhnCsx?NtR6QFgAG#Np}XPnhx%S@rjCSta8rea^cLjRNw@n3gGC?D`hm~gW@{NvbP0?wx=kODS?s-@n7xZU2kJWCEKZv5Db;y3`5;`6mvYyxg z%qO%vn#$r*uH-lPynndUUcVz@ZVD~$g^^7BgK{m>+WtBU2Ot?#YproE=62Vp(&Kv7 zkns1=cDjmE@`5GJtq+rwBkHfvRihSN3_d(2COiz5dt%Zsvzat{70L+LXHKIaSxc;z z1l6#C{y$EKI4;3KgyofUF-9)KwxKk)w?XLQb*GRRI96l(mct|l@?rG^CAnQ0;X_jd z7QFM>mStRN#Q+=RO;uDk;wk{qZRL&C_u}OG+7m~364Pf^nR*bGT{C10IrEEzDbm%;ix=NmA|BM zh06l*6UeGD?Il$>ur&+Jc16DXo{s1-sqXY={q&P6TmYVCyhSt6rmVs#jP{B(Fs_E? ztQhbaxkN6@cp|+rmD+oBV6Lq0-F(hG*@!=u5m!ejNp>6@&JFeX37b=)d=S#d77iGU zG#U?Sus`z^at|f#1(m6`%{A=gY-73y;Em~m2@7@-Ux{ifb6yM&mmBv%SEa;a8e2f( z<*bf>t^R3KYv31&7O{GmLdbP4?BH;4JTKPGQA5hAW8t7#xVt&N*E z&2S)gbT59Lr=@|(6)Kjxnfy)TvK_-aE7VG?@DQs2nLFi^8P`aFc3!esv;QSOriC&?9Gyb8gtGmWZ*7DR4wd{7(~&+t)e*mB#yqlku}?6o?r!#wkg7~S zUdHs2Bz1<$I*6uq`cW*OU&S<`beriuP?B;V3(<5T)il*bO*r1WqX&h#3g5gTfdVxq zW`HsS`QxLtsGF76;-IHr3=Q3o#;;ZR{*|Ed;i+CH&fXa%&8_KcMidy*i*0KdkfMGaQtfrvdu(k%+N)5M`@v$II;^qi5!^>isO#C zKvZF~jD(IMr?R>AOUGhk7b7o``+w1!6`hfWsa4cXsF|KK7cRv!wgQvRhG>!T1i z`eH`4d+KuzPm!)pa=;hATwP~0O@(xN)z&lA!v!Ey503IhjoRm!80FegF@V|jQUbUR zb=bT#eE>b7L8X@o#`0w2n6GQZn>1@k;OvUY&J=DV6|e?KMenjljtV>`iA%qkwZ7tx z$~XL{{(dY>GR)FvZ6u#F{JsBz^GpstY*3g7w@mz9*J3t=%7aE;bRVRqX2y?gFN)5% zO@(HPGp0Hcy?s_8p~w4y)iGgOd;qw?0tO**XrmFn}JW~Js$bYj5E4}i6Cos_9-cujYs(I&A83E^-(JL^p z56vv*(cYi~r&795)hKev|?RuEJ zLJe`Aw?4Ubay~}*A5?Ssu|n?Z16H@i1B+S9Z}WJE6*<=4fb$GWOZ$kcg={*Xf54t$ z=$2QwD{9%AAm1Dg6dv(&!ESAC_FJjOAtgU86e@7N=X|42?3O*QWC6QFnp}>qX~v_t zTGk==x5B}D7pkN4ecJB|LC*j2_M@>Jan!yIG|Zq5orLJnn;=Lc&CS^LHl>Lfj@N8OhXw>s;G z>0*TNRQV_Vk*QD1zXO;|at~B4Nl)IO$4ut|9hjh09O$zCwVeVEQ*e(G6QFGi=!?zX zR64&DQP!B8n91w-O5s0$^ostC`cH*b(v>A+hLMYPy^_zf%sgGa60`|4uDDAq4<^Of z4^Ak&Y&m;>;yqdOteD}n-&bTa@Y`gk#%5FqB1#Nf)Pcx(02ttXvPVQY;4>Xm$k(}{ zeEvN288iPtDHXuTB1kO4XXf)KnZCDY`twt0YiUxA8sdsmmjs^0K|}8eKk?rG*4OFV zxer;HaB3@k_Pi@9Ao$+Mb)U9yxi#W}JvEx1*iQQ`O`1&_ST(Zn!%}hmXcEp>DwH0^ z+}ixnuQf>*VGQs#juY0<6l;1bia$i&!4p*m!|RB(Fu%w~s_n`=XNqBG!0$#XzY?FM z%P@W&crz;es`9$8{7l)aVRs*n8`jKV>-CfKZJ@VOH=~4kL@K7~ppzKknrP!RW^4J7 zmOVR_PGvUm316txQN^)*nQZ*@1Ga5v>C6zdqp)Mf`2)b7!LDXb1f!r$e7)aYiIZRXFHHyd~@fRB+|^y7qeh0wH}-^=y7$ z>i2ttSCvVRa6nk=T%RD^uQ#4bm;6ijeS-I9|1pu8n&v!Mw}E3^W|z7sf4iiNa)O_E z)yaH^;28kv9QhYTN(Y>dwMqQnMbu6OpiJ$4;=@U*Ti?*@6MRsFRv+`L*%qg1Qmp6W z!w~-L{)!*rcdMec1S0U6?CiSmV(;UvHoTV`yTi z@O+j}I<}b}IE)4KzCTmfyqCD$l20i8bIA_`L;~O>5&m3e8CEzltN z(N3lC-lv)}Cw)SD>x3SBY&`^I$L}NgRX!w?r(SKi?Qjq9^ z|L;?zt_1)8#NAW+5+7g$!hz~q|M4LGKLg>PDZY(|o`I2(or|q=DienU7GU%Lr=tF2 zJGzW#<+Q#XUh%Ql?_bWT2~4`nQ|b zNJwaYQfakBsqA!hu$SQBYr}fj3;m17^TX#Ymspu0R$lM7eIP($ocMulpcp*YKpA2$ z^e3K7dfrgxToB7Vz-DtR$EC*(ZClKFq9Z!gk8fsQlr;=fB0vo21MAgr;b~1|w?4+( zJdp@SRB#aC#eA%z)=k%>Nt8&~)t!lAGzYUZo(TW`mjXfEp+A}TiGTyjJ7gyejOgaS zeiob&Af`9gG;wVbv$NBf$eaYqEDO>>R1|K2<%R=gQfV3J-WnD)i*w9IdJ7e4KiG~m9@)Y9Ega~Ma;ni=-s)rj%?dIu2E z5B^4D(`PSzKn^#IpDn6xs+sbPj0u@DAdot(sk{@{a0IUb4sQ&iP{rxRQUI*U!% ztN>kDAjxT%Q_yjRXy8%e^zDV!_AZ7Bu_ZMnmbpu@l=#kCm{loX#!*z8w2RnS{sFxD zBQ@d|1u#cq2E?)oE|FlGSWT-{ibIm*#1qRxMSC-wD8fWps$|IG^)+HMfQxF1ZLt=c z#Z$@pg4&TmXO19F*_qsr`JsKL`eS7czKb}os@dj43VOwWF12`^doZdHq&oW=3ww;e zQDKwaEr|jPF1o_+3Xu|+w=F%7&m(&zkNb`U0XXKjF{Ag5e>yf;5dqS}=()H^cuJUL!w zWN%J7w|D<`pKkSZa|Z{DAZJ}v_E!fcWb6imzQmC1;Uq8*r9a&+kotcydxd+l{Npqx zc#Gzxmcsb{=C2K!pkWIoSkSdDRH9h+0EoD^Q;HK6wR#)H>P9DdHHXqhW-iqokU(pwXE+LlL@BJMVFl0bj3-5Uf^1Po6*`1B%HqmAW2S%=a?R5uEZUUdu|z~J0_>oV zj3Eq+#eYGp5#TD@Z8sdUL~`YO2Ot~(v>N+9Fa`pR&*;O*X(U1pCYA9ONin@o(1IK$ z`Uj7DXk%7E))P*0i<;4>mWR_oM0LvMBkegJ98lTUse4kN4QN{R89vB%RT3tWz1(~} zy*C;kxlXs#mQB?;X&?=?P}!)P0K?|0CA4JKYpAu6{)-eireHja-jh`IHR}(Cxm=0m z5XX-eiYq*aIA0J8Fmssr%437n-uI)PDXOj%CT;<6SSZn0;(Utww-)o{!cPX`*CM}9 zquEiqNhE9P!pFL~UO*)wMN<2TtwxCMMjwJT6<;~0&7)N;s{*_yS9e`s0dPtNd{pWD zRZ_qARV0rxW5=J#vL=2cgrFQ2eDcBxY!e$FzHM$szK+@eF*yg%^f9v^@;2-z$i`;7 zq`$4tKX&iErFL~jWv4;7EX%VD34#v{3^vPV6j?N9i*t`=Txz_n(`%*p(UU2Ql)YRjVMm66KA*@PKSxuc~3J`O)o+Ap>P}H#KGFJ~; zYzPCWoU4j@{Cm3*Q&AZr=X-r_*foNzDB-YNY^AKRju2KyTKaHmKd0Ta%3> zUrk6_aA<);f;-!z@6Bb(r?ZQ%Mqd8#E)hz5$B@Z_<9M9WIQDC0y`mz`cKJy4@@=iH zoEOJos9Pn?!=d{eKnq`U(mh>+6aterWgcliQpEOd>jM64+FW0yLiXYYSDM^sTIO*Be*7+JR{hZIv1cQW;Dd3nvAN_q7QXxq=~_(u>f@>G={=C( z?c|)ZdvdV_J!{;;&VFIFmE^l2yQhxEn5|8jmhd{>mzUfU(5X+DmO7yV)k>o(&*8E_ zk~uI^`)nduKlIiJ|=htRIvJlH*TvTN2Bd0=!AlX<=$2aR~9Y3~i9r7e_EENHqHn<6k(zkwu)kO<+Hl@mU-n zp^@UBlBc75K;Z(^+AsIKG({$=q=0OU&j5+l*;?D}ex{4}*JCXHed$9Q>Gt$G9mk(a z`c#NbaF0y!HeQhsv|zhYfiE zpJnfy9Q#z2WDlFtq*@847yOk_Ab}1kiX0l8#RpLsKx~OrT-8zpT_gdVs5k>AQ&dP!Uu=O+%>0ytTPpFlNGlh?PQ;}fmxi) znD~SpLLY6c&OptT$u$Pu{1*hjKty`Z7bp`swpTeqthiDsg}U@tyQ%| zkLmqpO#k*%sr2_^A}F_an@-(3Mfwp~J$H5<`;%SE=NNs`4~7c9W}gCYz=`R~y~_U* z2)Q3@|9Ht>N4y;GvR}oe_tEkz^9}+6aKA-P$dhNBP^Z`m{Gpfyb2-fhSIq>tgcJKG zgwZ%AzF-$OkQvrRiJ~yg6v$9tcNwkTYt*)PVh3-3OtJc0}S;*?$9!Pl~_2~ z0s(BdUFqMS29a?!szUw`9BS{nc)=f1p>A0HeJIQ{!SB?n>2)}^5K+yC!+fjt29O|O zL!eW|4U3O z26KkAbt|W5T&LQ>91V$6avAlqkWE(PPz&hWU3~ym#3i2HRVE;KkYWaApS%d#JwsdY z_t1cZ<8*%Hxvc~LL~v!3#5V~dQ6?v^-?7oBq1ZSoEqHjJrk;!-C8`-Yvqo+jii3>_ zW$x=kr}PZ)?u6qDGc6}FHS7{b5~tT1KI6 zR;Ry{sSavU8-Q;@@dek6kLTSG_`47$oJ>7WnEd;3uu(35@-AivZSkkK_XbAXl0hRTH#*88v}>QM$jaOBTndXj4=He z$sj$Jv$){8b8uBl=J_iKX!X`+4x7k_rpy5ngOm+xBM28?<^HN!uHxH0c2znKG45=Q z@OqV&iFdXJJv3>tSJYEKplBZ_SyCyC2sZ1l}{ z>40t{Ly*FPUk(Jy8p2Fyv{&1(7KLV3%b+TY!^%DxpH^U2dd!Q$O8p}GoPGdO&&ttb zq|>i+n!WQw32}C2%TG|)m9ErdoGpi|z({3o%Cy^sgj=3e~V%#F;8PA_-9B4;E%&HF3GBlzoHU~c%Q zAz?-)^?UYkkk5kyu(G}kq~qC(f+;xb>Jy|ZJXjNH|)6h_}7l@acsy?vz^) z^Dq?3EPHL;bP?ZriBV(yHlz!zSsGyp zH9^`b>2!r63O~8F*U3r7KjbV#{^*a4GY$O>Y;S7qMDB{1#5u~te|$)%~95qk98W#fFIB5S$2@_f`l!?7F*?7k>2 zz&l^Nr~n%)0a*!N9R-KC)x2x`22sk?P$gJevsTw`(4cvuAJ2<5oI6&+5_8-$Vk(;{ zHn6sl6(1uvkCZaG(xe(Nc{x4JA8VIdZLM?kh5hB7zYFV~UBIP1_%m5J>U5tNF{)+v zXI6n;>)?|>=UDPrS9_^=fbC z&FXq~>yk)-*rXfA<^r4|Ae&q{XryB3v!f+aRY_GbRTH{rzZc7!ge|fpo~O>8%Nlqr znS|}Ld!(tUOFPq(-m@O=Uarp0A6CDmLk$3+)=Gfb$Z!Ex0W2nfHeWuk*ES|ZD2usx z{xM+I4YPVD07f2Ahv(J*YxGTp8dZ=sSV*YBDJQKdb@x|n{ZS7d2j@#=@056?47v>MH)Yv4Mbm$(b{tcF|wUJIx_D zZX6nuF$G3uf=y-(?BylNOk8PbHLT!aa)UB}JqVwE-#P`5cim>BNSxXP&1Ow-bHjBi z%>V|?Vm-vV-Wl^|T#~k@)CIOhXukMDeV;CDTG0n$6zdrml?VAIEMUw_jRj94UcPjU zbh#)~crUM9(hO*DsDJf_i~b{OKCrXB3_U7t-=YF!G{PbiLqw!psY#;pyFz?%;B)iV zKVBJ&30wy7ul_1>>UmbFc2C^Dd4vt5 zXK0%#9xikum``u0)-m)V+CrjdL$XoZ+0H_?-hTV4V%hU!<$%}x!J}MioT}=mt)$!V zDj)7J+fkN#e+F>u#Uhz4QF{7c@m5ozrqMxa)3qK!XzHKjWV;^SUbsqjaH`|AKEMO4 z85p8HzdD+JPu)w7x6^CLo(^UnBWFGS;kd%l8Y~88QZ6~76za{$(P?D=tb|h)p^JI! z-m;f<%OlR_Cw|-Wh>!gjNoEBmO?ILh9Xs{vLH%o|)76i0ZMZ zr{=iPs-tYps0Bs8|Bw{I0^V)@I4J|b+rY+9WHjl5`w$;%?K{_i)Rq`VDnhyQ>-9f2ucr?h|&!OW6$!Ys1;j+a)knw#iAg@XTPq~nV$ z$2~=gfe{w&q?x`qL#jT-*e&;RR7f32blY1}))A}OtkZ7L)tBPDHFKq^avB9l(|?JJ@BKW%Ue!oc0DsIu)e><9ecaxfsBSia zJ8f~n{{+${(~W7M5ClEa3oZhzMQ4hqdCW@cr9Y9jzbcSB+vN<|^re%J0)As|Z)wnA z!6~ipdjVJ9aWX6n^-N_YDRi^RPpOD+^vKky6-xUv%aeO<<6wJo^)~lyA$ZN3FfP6d z53$gt4xcU88>&5p5wlP>_QwyR!i^K91j zM7FcR1zE4T-BjC{|9+|)tHX?GY_8QolPihnO5PR&oD*l>;4Y;ANkI?S(Xgg zKax5E<^SD2lI+z}H?1Y;0qwp27nGjHx%%h#ao-B}iccP-s8LO}ZtF#fCl!K96YWp> zyfyMooa_24@gzO9Q{fH?X%9tK%LH^k11@QVP_=xsnN!YzE0u zWI65r)95sX`EkrLf3nLi2RJ0@rx#myiKEo007`^pv4gOpNIEzrrf!Z&_WIH31Egpv z2wN8&`&h!==Thuo4AGgfb+N?!)%wBuy(lpeuTLDAL#3#N>3)~w2!I}H|C5ewY;iRP zmI*0yX%!PYz^j^8WF_vA(=Ji_1_iW7kreq-i{Y8LV|;c?3RWwjEpR4k;>9%$B)M0! z0VaTWlgimG{SuNqW3ujS2h&%6WedtsIZB1H49K}d;We~t4kJf_FUDgZ13T94w&RP8 z1eY<;)+||9*>i)lX0}H#7n;FxWm*leix=3V%yOV++|7+EZqKS^yt&ACu`8K|ui6Ae zI>kaAGO=kv7-5gPcMwqw(wy}bn>u|$0TPA16j$?5484P#hb-^okziCZnib_R7|M^) z98NODh&2IC;vcEz(|0&hVkv-|M)-GoI{s?X94<8$ZNZFLh_Ixq>mpNng>lhK$o{us z7bHQ%^&T1WJ8G2l*-8*t%=oa4>{5(}U|>U#5d$^lwAy}KjK|ydh&QfEGjN9hK*_NB zO92y{e*FypFmoO12Pf8)A`OCHPyBqET~XCBZo9+)LuuU)7$o;?=$(5!+Q;^TA!u3% zGsZl$yQHN{s$fz1?-!n+W2b0HO*#WSoZfn*aTpF}mT5?d+x;OuFj8#~{Cw{(N zj*U88bpaux07s!#8Lh2X_q&j%ZfDE+*5v#X)b9w0wlRK<`*<%=FV<@WfI#)!-)CIP zqr!qYtx}O+;0Ymbe*p_u!Y`TMd9m&u4xq0e*GFq~UAX@~?(}kH0~~ydF&Yx zAWoHUS1%nj>6p@KSZQX~jx`xN56NyIu2f`{FS�i|iEOajvm^&HD3h=Z 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 delta 36749 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ⅅmU7GEJcRu$lOV=?+EvsoMznVUS~(!P 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 WTF8!uW`}NvZX6B$R%;9amHt1zdeM0R diff --git a/modules/billing/includes/config.inc.php b/modules/billing/includes/config.inc.php deleted file mode 100644 index 4401518c..00000000 --- a/modules/billing/includes/config.inc.php +++ /dev/null @@ -1,35 +0,0 @@ - diff --git a/modules/billing/includes/menu.php b/modules/billing/includes/menu.php index 0ad4b635..a8c6d168 100644 --- a/modules/billing/includes/menu.php +++ b/modules/billing/includes/menu.php @@ -71,16 +71,12 @@ if ($is_logged_in) {
- - - + Logout - - Login

@@ -90,8 +86,8 @@ if ($is_logged_in) { Home Game Servers - My Account - My Servers + + My Account Cart 0) echo ' ' . intval($cart_count) . ''; ?> - - Login - - - Register Admin diff --git a/modules/billing/my_account.php b/modules/billing/my_account.php index 0e2656e5..31863b3d 100644 --- a/modules/billing/my_account.php +++ b/modules/billing/my_account.php @@ -4,186 +4,28 @@ My Account - GameServers.World - b before a + if ($bId === null) return -1; // a has id -> a before b + return $bId - $aId; // numeric desc + } + + // Fallback: newest timestamp first return strtotime($b['ts'] ?? 0) - strtotime($a['ts'] ?? 0); }); @@ -325,7 +197,15 @@ $previous_invoices = array_filter($invoices, function($inv) { ?> -'; - include(__DIR__ . '/includes/footer.php'); - exit; -} - -// Fetch order details -$query = "SELECT o.*, bs.service_name, bs.price_monthly, bs.price_year - FROM ogp_billing_orders o - LEFT JOIN ogp_billing_services bs ON o.service_id = bs.service_id - WHERE o.order_id = $order_id AND o.user_id = $user_id - LIMIT 1"; -$result = mysqli_query($db, $query); - -if (!$result || mysqli_num_rows($result) === 0) { - echo '

Order not found or you do not have permission to renew this server.

'; - mysqli_close($db); - include(__DIR__ . '/includes/footer.php'); - exit; -} - -$order = mysqli_fetch_assoc($result); - -// Process renewal +// Process renewal: mark the existing order as a 'renew' so it appears in the cart if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['confirm_renewal'])) { $duration = isset($_POST['duration']) ? $_POST['duration'] : 'month'; - $price = ($duration === 'year') ? $order['price_year'] : $order['price_monthly']; - - // Create a new order for renewal - // In a real system, this would redirect to payment gateway - // For now, we'll just show a message - - $message = "Renewal initiated for " . htmlspecialchars($order['service_name']) . ". "; - $message .= "Duration: " . ($duration === 'year' ? '1 year' : '1 month') . ". "; - $message .= "Total: $" . number_format($price, 2) . ". "; - $message .= "In a production system, you would be redirected to payment processing."; - - echo '
' . $message . '
'; + $invoice_duration = ($duration === 'year') ? 'year' : 'month'; + $qty = 1; + + // Determine price based on duration (fall back to monthly if missing) + $price = ($duration === 'year' && !empty($order['price_year']) && floatval($order['price_year']) > 0) ? floatval($order['price_year']) : floatval($order['price_monthly']); + + // Prepare update to set this order into renew state + if ($upd = $db->prepare("UPDATE ogp_billing_orders SET status = ?, invoice_duration = ?, qty = ?, price = ? WHERE order_id = ? AND user_id = ? LIMIT 1")) { + $new_status = 'renew'; + $orderIdInt = intval($order_id); + $userIdInt = intval($user_id); + $price_val = number_format($price, 2, '.', ''); + $upd->bind_param('ssiids', $new_status, $invoice_duration, $qty, $price_val, $orderIdInt, $userIdInt); + $ok = $upd->execute(); + $affected = $upd->affected_rows; + $upd->close(); + if ($ok && $affected > 0) { + // Log to panel logger that the order was marked for renewal + if (isset($db) && method_exists($db, 'logger')) { + $db->logger("USER-RENEW: User " . intval($userIdInt) . " marked order " . intval($orderIdInt) . " as renew"); + } + // Successfully transitioned to renew — go to cart + header('Location: cart.php'); + exit; + } else { + $err = mysqli_error($db); + echo '
Failed to mark order for renewal: ' . htmlspecialchars($err) . '
'; + } + } else { + $err = mysqli_error($db); + echo '
Failed to prepare renewal update: ' . htmlspecialchars($err) . '
'; + } } ?> @@ -73,27 +184,27 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['confirm_renewal'])) {
Renew Server
-

+

-
-
@@ -103,27 +214,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['confirm_renewal'])) { mysqli_close($db); ?> - - diff --git a/modules/billing/server_status.php b/modules/billing/server_status.php index a7fc5ba9..1aad2b7b 100644 --- a/modules/billing/server_status.php +++ b/modules/billing/server_status.php @@ -66,8 +66,8 @@ $result = mysqli_query($db, $query);
Server Status
-
-

Real-time status of our game server infrastructure

+
+

Real-time status of our game server infrastructure

0): ?> @@ -143,7 +143,7 @@ $result = mysqli_query($db, $query); - + @@ -152,12 +152,12 @@ $result = mysqli_query($db, $query); -
+

No server status information available.

-
+

Server status is updated automatically every 5 minutes.

If you experience any issues, please contact support.

@@ -168,37 +168,6 @@ $result = mysqli_query($db, $query); mysqli_close($db); ?> - - diff --git a/modules/billing/serverlist.php b/modules/billing/serverlist.php index 2089d870..841a6ee8 100644 --- a/modules/billing/serverlist.php +++ b/modules/billing/serverlist.php @@ -111,7 +111,7 @@ include(__DIR__ . '/includes/menu.php'); ?> -
Please login to order
+