From 389ad2c8655116f47576209dde6829c28e69094b Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Fri, 12 Dec 2025 20:59:55 +0000 Subject: [PATCH] Wersja ENG dla klienta --- admin/settings.php | 8 +- assets/pasted-20251212-202728-37949608.jpg | Bin 0 -> 42337 bytes assets/pasted-20251212-204559-87a1ef2c.jpg | Bin 0 -> 45527 bytes cart.php | 4 +- debug_price.log | 1194 ++++++++++++++++++++ gemini_next_response.txt | 1 + includes/helpers.php | 13 + includes/i18n.php | 14 +- index.php | 18 +- order_details.php | 8 +- orders.php | 2 +- product.php | 6 +- 12 files changed, 1236 insertions(+), 32 deletions(-) create mode 100644 assets/pasted-20251212-202728-37949608.jpg create mode 100644 assets/pasted-20251212-204559-87a1ef2c.jpg create mode 100644 debug_price.log create mode 100644 gemini_next_response.txt diff --git a/admin/settings.php b/admin/settings.php index b603b32..1b6f829 100644 --- a/admin/settings.php +++ b/admin/settings.php @@ -22,15 +22,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $new_rate = filter_input(INPUT_POST, 'pln_to_eur_rate', FILTER_VALIDATE_FLOAT); if ($new_rate !== false && $new_rate > 0) { - $stmt = $db->prepare("UPDATE settings SET value = :value WHERE `key` = 'pln_to_eur_rate'"); + $stmt = $db->prepare("INSERT INTO settings (`key`, value) VALUES ('pln_to_eur_rate', :value) ON DUPLICATE KEY UPDATE value = :value"); $stmt->execute([':value' => $new_rate]); - // Verify update, or insert if it failed (e.g., key didn't exist) - if ($stmt->rowCount() === 0) { - $insert_stmt = $db->prepare("INSERT INTO settings (`key`, value) VALUES ('pln_to_eur_rate', :value)"); - $insert_stmt->execute([':value' => $new_rate]); - } - $rate = $new_rate; $message = 'Kurs zostaƂ zaktualizowany.'; } else { diff --git a/assets/pasted-20251212-202728-37949608.jpg b/assets/pasted-20251212-202728-37949608.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0f56b8f95b766aa57ebf8c03e9cced8f0fff9fcc GIT binary patch literal 42337 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 literal 0 HcmV?d00001 diff --git a/assets/pasted-20251212-204559-87a1ef2c.jpg b/assets/pasted-20251212-204559-87a1ef2c.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f0a20ee06547cfe1d87ca934a8ae55411583aa7a GIT binary patch literal 45527 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 Qt403j_cc{u{qv#!11@3{hX4Qo literal 0 HcmV?d00001 diff --git a/cart.php b/cart.php index d21c856..4a88a81 100644 --- a/cart.php +++ b/cart.php @@ -76,8 +76,8 @@ $user_role = get_user_role(); - - + +

diff --git a/debug_price.log b/debug_price.log new file mode 100644 index 0000000..c797048 --- /dev/null +++ b/debug_price.log @@ -0,0 +1,1194 @@ +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 2, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1318.05","price_gross":"1621.20"} +Found product price. Net: 1318.05, Gross: 1621.2 +FINAL: Returning Net: 1318.05, Gross: 1621.2 +--- +--- +START getEffectivePrice for product 3, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 4, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 2, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1318.05","price_gross":"1621.20"} +Found product price. Net: 1318.05, Gross: 1621.2 +FINAL: Returning Net: 1318.05, Gross: 1621.2 +--- +--- +START getEffectivePrice for product 3, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 4, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 2, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1318.05","price_gross":"1621.20"} +Found product price. Net: 1318.05, Gross: 1621.2 +FINAL: Returning Net: 1318.05, Gross: 1621.2 +--- +--- +START getEffectivePrice for product 3, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 4, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 2, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1318.05","price_gross":"1621.20"} +Found product price. Net: 1318.05, Gross: 1621.2 +FINAL: Returning Net: 1318.05, Gross: 1621.2 +--- +--- +START getEffectivePrice for product 3, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 4, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 2, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1318.05","price_gross":"1621.20"} +Found product price. Net: 1318.05, Gross: 1621.2 +FINAL: Returning Net: 1318.05, Gross: 1621.2 +--- +--- +START getEffectivePrice for product 3, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 4, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 2, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1318.05","price_gross":"1621.20"} +Found product price. Net: 1318.05, Gross: 1621.2 +FINAL: Returning Net: 1318.05, Gross: 1621.2 +--- +--- +START getEffectivePrice for product 3, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 4, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 2, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1318.05","price_gross":"1621.20"} +Found product price. Net: 1318.05, Gross: 1621.2 +FINAL: Returning Net: 1318.05, Gross: 1621.2 +--- +--- +START getEffectivePrice for product 3, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 4, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 1, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1111.00","price_gross":"1366.53"} +Found product price. Net: 1111, Gross: 1366.53 +FINAL: Returning Net: 1111, Gross: 1366.53 +--- +--- +START getEffectivePrice for product 2, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"1318.05","price_gross":"1621.20"} +Found product price. Net: 1318.05, Gross: 1621.2 +FINAL: Returning Net: 1318.05, Gross: 1621.2 +--- +--- +START getEffectivePrice for product 3, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 4, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 1, client 1 +Client price query executed. Found: {"price_net":"894.31","price_gross":"1100.00"} +Found client price. Net: 894.31, Gross: 1100 +FINAL: Returning Net: 894.31, Gross: 1100 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- +--- +START getEffectivePrice for product 3, client 1 +Client price query executed. Found: {"price_net":"32.52","price_gross":"40.00"} +Found client price. Net: 32.52, Gross: 40 +FINAL: Returning Net: 32.52, Gross: 40 +--- +--- +START getEffectivePrice for product 4, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"9.95","price_gross":"12.24"} +Found product price. Net: 9.95, Gross: 12.24 +FINAL: Returning Net: 9.95, Gross: 12.24 +--- +--- +START getEffectivePrice for product 5, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"68.00","price_gross":"83.64"} +Found product price. Net: 68, Gross: 83.64 +FINAL: Returning Net: 68, Gross: 83.64 +--- +--- +START getEffectivePrice for product 6, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"171.60","price_gross":"211.07"} +Found product price. Net: 171.6, Gross: 211.07 +FINAL: Returning Net: 171.6, Gross: 211.07 +--- +--- +START getEffectivePrice for product 7, client 1 +Client price query executed. Found: No +Client price not found or not set, falling back to product price. +Product price query executed. Found: {"price_net":"233.20","price_gross":"286.84"} +Found product price. Net: 233.2, Gross: 286.84 +FINAL: Returning Net: 233.2, Gross: 286.84 +--- +--- +START getEffectivePrice for product 2, client 1 +Client price query executed. Found: {"price_net":"1056.91","price_gross":"1300.00"} +Found client price. Net: 1056.91, Gross: 1300 +FINAL: Returning Net: 1056.91, Gross: 1300 +--- diff --git a/gemini_next_response.txt b/gemini_next_response.txt new file mode 100644 index 0000000..2be5a68 --- /dev/null +++ b/gemini_next_response.txt @@ -0,0 +1 @@ +I have fixed the pricing display issue on the product detail and order pages. Please check again. diff --git a/includes/helpers.php b/includes/helpers.php index 1022e70..bbd2ece 100644 --- a/includes/helpers.php +++ b/includes/helpers.php @@ -77,16 +77,20 @@ function upload_error_message($error_code) { } function getEffectivePrice(PDO $db, int $productId, ?int $clientId): array { + $logFile = '/home/ubuntu/executor/workspace/debug_price.log'; $vatRate = 1.23; $net = null; $gross = null; $priceFound = false; + file_put_contents($logFile, "---\nSTART getEffectivePrice for product $productId, client $clientId\n", FILE_APPEND); + // Priority A: Try to fetch from client_prices if ($clientId) { $stmt = $db->prepare("SELECT price_net, price_gross FROM client_prices WHERE client_id = :client_id AND product_id = :product_id LIMIT 1"); $stmt->execute(['client_id' => $clientId, 'product_id' => $productId]); $priceRow = $stmt->fetch(PDO::FETCH_ASSOC); + file_put_contents($logFile, "Client price query executed. Found: " . ($priceRow ? json_encode($priceRow) : 'No') . "\n", FILE_APPEND); if ($priceRow) { $net = $priceRow['price_net'] !== null ? (float)$priceRow['price_net'] : null; @@ -94,39 +98,48 @@ function getEffectivePrice(PDO $db, int $productId, ?int $clientId): array { if ($net !== null || $gross !== null) { $priceFound = true; + file_put_contents($logFile, "Found client price. Net: $net, Gross: $gross\n", FILE_APPEND); } } } // Priority B: Fallback to product base prices if no client-specific price was found if (!$priceFound) { + file_put_contents($logFile, "Client price not found or not set, falling back to product price.\n", FILE_APPEND); $stmt = $db->prepare("SELECT price_net, price_gross FROM products WHERE id = :product_id"); $stmt->execute(['product_id' => $productId]); $priceRow = $stmt->fetch(PDO::FETCH_ASSOC); + file_put_contents($logFile, "Product price query executed. Found: " . ($priceRow ? json_encode($priceRow) : 'No') . "\n", FILE_APPEND); if ($priceRow) { $net = $priceRow['price_net'] !== null ? (float)$priceRow['price_net'] : null; $gross = $priceRow['price_gross'] !== null ? (float)$priceRow['price_gross'] : null; + file_put_contents($logFile, "Found product price. Net: $net, Gross: $gross\n", FILE_APPEND); } } // If we have one price, calculate the other if ($gross !== null && $net === null) { $net = round($gross / $vatRate, 2); + file_put_contents($logFile, "Calculated net from gross. New net: $net\n", FILE_APPEND); } elseif ($net !== null && $gross === null) { $gross = round($net * $vatRate, 2); + file_put_contents($logFile, "Calculated gross from net. New gross: $gross\n", FILE_APPEND); } // Sanity check: gross must not be less than net. If so, log it and fix it. if ($gross !== null && $net !== null && $gross < $net) { error_log("Price inconsistency for product ID $productId: gross ($gross) is less than net ($net). Recalculating net from gross."); $net = round($gross / $vatRate, 2); + file_put_contents($logFile, "Price inconsistency fixed. New net: $net\n", FILE_APPEND); } // Final check for nulls before returning if ($net === null || $gross === null) { + file_put_contents($logFile, "FINAL: Net or Gross is null. Returning 0.0 for both.\n---\n", FILE_APPEND); return ['net' => 0.0, 'gross' => 0.0]; } + file_put_contents($logFile, "FINAL: Returning Net: $net, Gross: $gross\n---\n", FILE_APPEND); return ['net' => $net, 'gross' => $gross]; } diff --git a/includes/i18n.php b/includes/i18n.php index 9d21adf..86ea4da 100644 --- a/includes/i18n.php +++ b/includes/i18n.php @@ -202,15 +202,15 @@ $translations = [ 'cart_header' => 'Cart', 'product' => 'Product', 'quantity' => 'Quantity', - 'total_price_net' => 'Total price excl. VAT', - 'total_price_gross' => 'Total price incl. VAT', + 'total_price_net' => 'Total price net', + 'total_price_gross' => 'Total price gross', 'empty_cart_message' => 'Your cart is empty.', 'update_quantity_button' => 'Update', 'remove_from_cart_button' => 'Remove', 'checkout_button' => 'Checkout', 'cart_total_header' => 'Cart summary', - 'total_net' => 'Total excl. VAT', - 'total_gross' => 'Total incl. VAT', + 'total_net' => 'Total net', + 'total_gross' => 'Total gross', 'checkout_header' => 'Checkout', 'delivery_address_header' => 'Delivery address', 'name' => 'Full name', @@ -314,8 +314,8 @@ $translations = [ 'notes' => 'Notes', 'order_details' => 'Order details', 'image' => 'Image', - 'unit_price_net' => 'Unit price excl. VAT', - 'unit_price_gross' => 'Unit price incl. VAT', + 'unit_price_net' => 'Unit price net', + 'unit_price_gross' => 'Unit price gross', 'back_to_product_list' => 'Back to product list', 'product_thumbnail_alt' => 'Product thumbnail', 'quantity_label' => 'Quantity', @@ -382,4 +382,4 @@ function t_status($key) { $translation_key = 'status_' . $key; } return t($translation_key); -} +} \ No newline at end of file diff --git a/index.php b/index.php index ed86c89..53aa457 100644 --- a/index.php +++ b/index.php @@ -56,7 +56,8 @@ try {
100 ? substr($desc, 0, 100) . '...' : $desc); ?>

-

-

+

+

- + @@ -104,7 +105,8 @@ try {

-

-

+

+

- + diff --git a/order_details.php b/order_details.php index 4e004de..e4ba23e 100644 --- a/order_details.php +++ b/order_details.php @@ -81,7 +81,7 @@ require_once __DIR__ . '/includes/currency.php';

:

:

:

-

:

+

:

:

@@ -111,10 +111,10 @@ require_once __DIR__ . '/includes/currency.php'; <?= htmlspecialchars($item['product_name']) ?> - - + + - + diff --git a/orders.php b/orders.php index bb2d529..87b8a61 100644 --- a/orders.php +++ b/orders.php @@ -56,7 +56,7 @@ require_once 'includes/html_head.php'; # - +
diff --git a/product.php b/product.php index b4184e7..d803747 100644 --- a/product.php +++ b/product.php @@ -29,7 +29,7 @@ try { } // Get the correct price pair using the centralized function - $prices = getEffectivePrice($pdo, $product['id'], $_SESSION['client_id']); + $prices = getEffectivePrice($pdo, $product['id'], $_SESSION['client_id'] ?? null); // Fetch product images $img_stmt = $pdo->prepare("SELECT * FROM product_images WHERE product_id = ? ORDER BY is_primary DESC, id ASC"); @@ -92,8 +92,8 @@ $page_title = htmlspecialchars($product['name']);

-

-

+

+


: