39728-vm/patch_import_fk.py
2026-04-19 14:31:28 +00:00

31 lines
1.5 KiB
Python

import re
with open("stock.php", "r") as f:
content = f.read()
replacement = """ $valid_categories = $pdo->query("SELECT id FROM categories")->fetchAll(PDO::FETCH_COLUMN);
$valid_suppliers = $pdo->query("SELECT id FROM suppliers")->fetchAll(PDO::FETCH_COLUMN);
$valid_units = $pdo->query("SELECT id FROM units")->fetchAll(PDO::FETCH_COLUMN);
foreach ($rows as $row) {
if (count($row) < 5) continue;
$sku = trim((string)$row[0]); $name = trim((string)$row[1]);
if ($sku === '' || $name === '') continue;
$price = (float)($row[2] ?? 0);
$cost_price = (float)($row[3] ?? 0);
$base_stock = (int)($row[4] ?? 0);
$vat = (float)($row[5] ?? 5);
$category_id = (!empty($row[6]) && in_array((int)$row[6], $valid_categories)) ? (int)$row[6] : null;
$supplier_id = (!empty($row[7]) && in_array((int)$row[7], $valid_suppliers)) ? (int)$row[7] : null;
$unit_id = (!empty($row[8]) && in_array((int)$row[8], $valid_units)) ? (int)$row[8] : null;"""
pattern = r" foreach \(\$rows as \$row\) \{[^\}]+?\$unit_id = !empty\(\$row\[8\]\) \? \(int\)\$row\[8\] : null;"
new_content = re.sub(pattern, replacement, content, flags=re.DOTALL)
if replacement in new_content:
with open("stock.php", "w") as f:
f.write(new_content)
print("Success")
else:
print("Failed")