You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

168 lines
5.6 KiB

<?php
require_once('./conn.php');
require 'vendor/autoload.php';
ini_set('date.timezone', 'Asia/Taipei');
$id = $_GET['id'];
use PhpOffice\PhpSpreadsheet\IOFactory;
// 指定要讀取的 Excel 文件
$filePath = './option/option' . $id . '.xlsx';
// 嘗試讀取文件
try {
$spreadsheet = IOFactory::load($filePath);
} catch (\PhpOffice\PhpSpreadsheet\Reader\Exception $e) {
die('Error loading file: ' . $e->getMessage());
}
// 獲取活動工作表
$sheet = $spreadsheet->getActiveSheet();
$create_at = date('Y-m-d H:i:s');
$sql_str = "INSERT INTO option_price (kind, subkind, group_name, spec, memo, optional, unit, price, status, create_at) VALUES (:kind, :subkind, :group_name, :spec, :memo, :optional, :unit, :price, :status, :create_at)";
$sql_str_mi = "INSERT INTO option_mi (option_price_id, min_weight, max_weight, open_kind, base_floor, base_floor_plus, price, quotation_no, create_at) VALUES (:option_price_id, :min_weight, :max_weight, :open_kind, :base_floor, :base_floor_plus, :price, :quotation_no, :create_at)";
$open_kind_arr = ['CO', '2S'];
// 遍歷工作表中的每一行
foreach ($sheet->getRowIterator() as $key => $row) {
// 獲得單元格迭代器
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false); // This loops through all cells,
// even if a cell value is not set.
// By default, only cells that have a value set will be iterated.
foreach ($cellIterator as $idx => $cell) {
if ($cell !== null) {
// 打印單元格數據
// echo $cell->getValue() . '///';
}
if ($idx == 'B') {
$group_name = $cell->getValue();
echo $group_name;
} elseif ($idx == 'C') {
$spec = $cell->getValue();
echo $spec;
} elseif ($idx == 'D') {
$memo = $cell->getValue();
echo $memo;
} elseif ($idx == 'E') {
$optional = '';
if ($cell->getValue() == "標配") {
$optional = 1;
} else if($cell->getValue() == "選配") {
$optional = 2;
}else if($cell->getValue() == "加價") {
$optional = 3;
}
echo $optional;
} elseif ($idx == 'F') {
$cost = $cell->getValue();
} elseif ($idx == 'G') {
$price = $cell->getValue();
echo $price;
} elseif ($idx == 'H') {
$unit = $cell->getValue();
echo $unit;
}
}
echo "<br>"; // 換行,以分隔不同的行
$status = "Y";
$kindArr = ['A', 'B', 'C', 'D'];
if ($id == 1) {
$kind = 'A';
$subkind = 'A1';
} elseif ($id == 2) {
$kind = 'B';
$subkind = 'B1';
} elseif ($id == 3) {
$kind = 'B';
$subkind = 'B2';
} elseif ($id == 4) {
$kind = 'B';
$subkind = 'B3';
} elseif ($id == 5) {
$kind = 'B';
$subkind = 'B4';
} elseif ($id == 6) {
$kind = 'B';
$subkind = 'B5';
} elseif ($id == 7) {
$kind = 'B';
$subkind = 'B6';
} elseif ($id == 8) {
$kind = 'B';
$subkind = 'B7';
} elseif ($id == 9) {
$kind = 'C';
$subkind = 'C1';
} elseif ($id == 10) {
$kind = 'C';
$subkind = 'C2';
} elseif ($id == 11) {
$kind = 'C';
$subkind = 'C3';
} elseif ($id == 12) {
$kind = 'C';
$subkind = 'C4';
} elseif ($id == 13) {
$kind = 'D';
$subkind = 'D1';
} elseif ($id == 14) {
$kind = 'D';
$subkind = 'D2';
} elseif ($id == 15) {
$kind = 'E';
$subkind = 'E1';
} elseif ($id == 16) {
$kind = 'F';
$subkind = 'F1';
}
if (isset($_GET['id'])) {
try {
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':kind', $kind);
$stmt->bindParam(':subkind', $subkind);
$stmt->bindParam(':group_name', $group_name);
$stmt->bindParam(':spec', $spec);
$stmt->bindParam(':memo', $memo);
$stmt->bindParam(':optional', $optional);
$stmt->bindParam(':unit', $unit);
$stmt->bindParam(':price', $price);
$stmt->bindParam(':status', $status);
$stmt->bindParam(':create_at', $create_at);
// 遍歷當前行的每一個單元格
$stmt->execute();
$last_id = $conn->lastInsertId();
$option_price_id = $last_id;
$option_price = $cost;
$quotation_no = 'Q2401001';
foreach ($open_kind_arr as $kind) {
$min_weight = 1;
$max_weight = 1600;
$open_kind = $kind;
$base_floor = 0;
$base_floor_plus = 0;
$sale_price = $option_price;
$stmt = $conn->prepare($sql_str_mi);
$stmt->bindParam(':option_price_id', $option_price_id);
$stmt->bindParam(':min_weight', $min_weight);
$stmt->bindParam(':max_weight', $max_weight);
$stmt->bindParam(':open_kind', $open_kind);
$stmt->bindParam(':base_floor', $base_floor);
$stmt->bindParam(':base_floor_plus', $base_floor_plus);
$stmt->bindParam(':price', $sale_price);
$stmt->bindParam(':quotation_no', $quotation_no);
$stmt->bindParam(':create_at', $create_at);
$stmt->execute();
}
} catch (PDOException $e) {
echo $e->getMessage();
die('Error!:' . $e->getMessage());
}
}
}