diff --git a/wms/cont/api/getElevatorPrice.php b/wms/cont/api/getElevatorPrice.php index 92f9d4c1..cd3be6b1 100644 --- a/wms/cont/api/getElevatorPrice.php +++ b/wms/cont/api/getElevatorPrice.php @@ -2,29 +2,27 @@ require_once "../../mkt/conn.php"; -$spec = $_GET['spec']; -$person = $_GET['person']; -$stop = $_GET['stop']; -$weight = $_GET['weight']; -$speed = $_GET['speed']; -$m1 = $_GET['m1']; -$method = $_GET['method']; -$cycle = $_GET['cycle']; -if($spec == "MAE100"){ - $elevator_type = "A"; -}elseif($spec == "MAF100"){ - $elevator_type = "B"; -}elseif($spec == "MAM200"){ - $elevator_type = "D"; -}elseif($spec == "MAH100"){ - $elevator_type = "E"; -} - -$sql_str = "SELECT * FROM maintain_standard_option WHERE elevator_type=:elevator_type AND min_speed = :min_speed AND min_persons <= :person AND max_persons >= :person AND is_m1_bundle=:m1 ORDER bY id DESC"; +$spec = $_GET['spec'] ?? ''; +$person = $_GET['person'] ?? ''; +$stop = $_GET['stop'] ?? ''; +$weight = $_GET['weight'] ?? ''; +$speed = $_GET['speed'] ?? ''; +$m1 = $_GET['m1'] ?? ''; +$method = $_GET['method'] ?? ''; +$cycle = $_GET['cycle'] ?? ''; +$elevator_type = match($spec){ + "MAE100" => "A", + "MAF100" => "B", + "MAM200" => "D", + "MAH100" => "E", +}; +$sql_str = "SELECT * FROM maintain_standard_option +WHERE elevator_type=:elevator_type AND min_speed<=:speed AND max_speed>=:speed AND min_persons <= :person AND max_persons >= :person AND is_m1_bundle=:m1 +ORDER bY id DESC"; $stmt = $conn->prepare($sql_str); $stmt->bindParam(':elevator_type', $elevator_type); -$stmt->bindParam(':min_speed', $speed); $stmt->bindParam(':person', $person); +$stmt->bindParam(':speed', $speed); $stmt->bindParam(':m1', $m1); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); diff --git a/wms/cont/api/getUsername.php b/wms/cont/api/getUsername.php new file mode 100644 index 00000000..396682d1 --- /dev/null +++ b/wms/cont/api/getUsername.php @@ -0,0 +1,15 @@ +prepare($sql_str); +$stmt->bindParam(':accountid', $accountid); +$stmt->execute(); +$user = $stmt->fetch(PDO::FETCH_ASSOC); +echo $user['name']; \ No newline at end of file diff --git a/wms/cont/api/postElevatorPricereview.php b/wms/cont/api/postElevatorPricereview.php index e69de29b..03356932 100644 --- a/wms/cont/api/postElevatorPricereview.php +++ b/wms/cont/api/postElevatorPricereview.php @@ -0,0 +1,484 @@ +prepare($sql_str); +$stmt->bindParam(':vol_no', $vol_no); +$stmt->bindParam(':apply_key', $apply_key); +$stmt->execute(); +$contract = $stmt->fetch(PDO::FETCH_ASSOC); + + +$conn->beginTransaction(); +try{ + if(!$contract){ + $sql_str = "INSERT INTO con_maintance_examine_apply (apply_key, vol_no, customer, address, case_name ,brand, num, salesman, maintain_kind, contract_begin_date, contract_end_date, contract_kind, payment_kind, progress_remark, service_fee, total_price, total_sale_price, penalty, deposit_rate, keep_rate, warranty_rate, memo, status, creater, create_at) + VALUES (:apply_key, :vol_no, :customer, :address, :case_name ,:brand, :num, :salesman, :maintain_kind, :contract_begin_date, :contract_end_date, :contract_kind, :payment_kind, :progress_remark, :service_fee, :total_price, :total_sale_price, :penalty, :deposit_rate, :keep_rate, :warranty_rate, :memo, :status, :creater, :create_at)"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->bindParam(':vol_no', $vol_no); + $stmt->bindParam(':customer', $customer); + $stmt->bindParam(':address', $address); + $stmt->bindParam(':case_name', $case_name); + $stmt->bindParam(':brand', $brand); + $stmt->bindParam(':num', $num); + $stmt->bindParam(':salesman', $salesman); + $stmt->bindParam(':maintain_kind', $maintain_kind); + $stmt->bindParam(':contract_begin_date', $contract_begin_date); + $stmt->bindParam(':contract_end_date', $contract_end_date); + $stmt->bindParam(':contract_kind', $contract_kind); + $stmt->bindParam(':payment_kind', $payment_kind); + $stmt->bindParam(':progress_remark', $progress_remark); + $stmt->bindParam(':service_fee', $serviceFee); + $stmt->bindParam(':total_price', $total_price); + $stmt->bindParam(':total_sale_price', $total_sale_price); + $stmt->bindParam(':penalty', $penalty); + $stmt->bindParam(':deposit_rate', $deposit_rate); + $stmt->bindParam(':keep_rate', $keep_rate); + $stmt->bindParam(':warranty_rate', $warranty_rate); + $stmt->bindParam(':memo', $remark); + $stmt->bindParam(':status', $status); + $stmt->bindParam(':creater', $creater); + $stmt->bindParam(':create_at', $current_date); + $stmt->execute(); + + $sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, item_no, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain_months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, created_at) + VALUES (:apply_key, :item_no, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain_months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :created_at) "; + + foreach($elevators as $elevator){ + if(empty($elevator['permitNumber'])) $register_code = "A"; + + if($elevator['spec'] == "MAE100") $elevator_kind = "A"; + if($elevator['spec'] == "MAF100") $elevator_kind = "B"; + if($elevator['spec'] == "MAM200") $elevator_kind = "D"; + if($elevator['spec'] == "MAH100") $elevator_kind = "E"; + + $speed_governors_check_expense = null; + $maintain_times = 1; + $commission_expense = null; + $management_expense = null; + $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee; + $cmstatus = "Y"; + $cycle = (int)$elevator['cycle']; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->bindParam(':item_no', $elevator['id']); + $stmt->bindParam(':register_code', $register_code); + $stmt->bindParam(':elevator_brand', $elevator['brand']); + $stmt->bindParam(':elevator_kind', $elevator_kind); + $stmt->bindParam(':spec', $elevator['spec']); + $stmt->bindParam(':weight', $elevator['weight']); + $stmt->bindParam(':speed', $elevator['speed']); + $stmt->bindParam(':stop', $elevator['stop']); + $stmt->bindParam(':floors', $elevator['stop']); + $stmt->bindParam(':persons', $elevator['person']); + $stmt->bindParam(':elevator_num', $elevator['qty']); + $stmt->bindParam(':useful_years', $elevator['checkYear']); + $stmt->bindParam(':last_check_date', $elevator['lastDate']); + $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense); + $stmt->bindParam(':maintain_times', $maintain_times); + $stmt->bindParam(':is_m1_bundle', $elevator['m1']); + $stmt->bindParam(':maintain_months', $elevator['months']); + $stmt->bindParam(':maintain_period', $cycle); + $stmt->bindParam(':maintain_method', $elevator['method']); + $stmt->bindParam(':stand_price', $elevator['price']); + $stmt->bindParam(':contract_price', $elevator['sale_price']); + $stmt->bindParam(':sold_price', $elevator['sale_price']); + $stmt->bindParam(':commission_expense', $elevator['commission_expense']); + $stmt->bindParam(':management_expense', $elevator['management_expense']); + $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']); + $stmt->bindParam(':service_expense', $elevator['service_expense']); + $stmt->bindParam(':cmstatus', $cmstatus); + $stmt->bindParam(':updated_at', $updated_at); + $stmt->bindParam(':creater', $creater); + $stmt->bindParam(':created_at', $current_date); + $stmt->execute(); + } + + $sql_str = "INSERT INTO pricereview_maintain_item (mid, price_id, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo) + VALUES (:mid, :price_id, :item_no, :item_group, :item_spec, :option_relate_spec, :item_unit_price, :item_qty, :item_price_bp, :memo)"; + + foreach($otherOptions as $option){ + $item_price_bp = $option['price']*$option['num']; + $option_relate_spec = (count($option['toElevator']) > 0) ? $option['toElevator'][0]['id'] : null; + $item_group = "E"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':mid', $apply_key); + $stmt->bindParam(':price_id', $option['pr_no']); + $stmt->bindParam(':item_no', $option['id']); + $stmt->bindParam(':item_group', $item_group); + $stmt->bindParam(':item_spec', $option['name']); + $stmt->bindParam(':option_relate_spec', $option_relate_spec); + $stmt->bindParam(':item_unit_price', $option['price']); + $stmt->bindParam(':item_qty', $option['num']); + $stmt->bindParam(':item_price_bp', $item_price_bp); + $stmt->bindParam(':memo', $option['memo']); + $stmt->execute(); + } + }else{ + $sql_str = "UPDATE con_maintance_examine_apply SET + case_name=:case_name, + num=:num, + maintain_kind=:maintain_kind, + contract_kind=:contract_kind, + payment_kind=:payment_kind, + contract_begin_date=:contract_begin_date, + contract_end_date=:contract_end_date, + service_fee=:service_fee, + total_price=:total_price, + total_sale_price=:total_sale_price, + penalty=:penalty, + deposit_rate=:deposit_rate, + keep_rate=:keep_rate, + warranty_rate=:warranty_rate, + memo=:memo, + brand=:brand, + status=:status, + updated_at=:updated_at, + progress_remark=:progress_remark + WHERE apply_key=:apply_key AND vol_no=:vol_no"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->bindParam(':vol_no', $vol_no); + $stmt->bindParam(':case_name', $case_name); + $stmt->bindParam(':num', $num); + $stmt->bindParam(':maintain_kind', $maintain_kind); + $stmt->bindParam(':contract_begin_date', $contract_begin_date); + $stmt->bindParam(':contract_end_date', $contract_end_date); + $stmt->bindParam(':contract_kind', $contract_kind); + $stmt->bindParam(':payment_kind', $payment_kind); + $stmt->bindParam(':progress_remark', $progress_remark); + $stmt->bindParam(':service_fee', $serviceFee); + $stmt->bindParam(':total_price', $total_price); + $stmt->bindParam(':total_sale_price', $total_sale_price); + $stmt->bindParam(':penalty', $penalty); + $stmt->bindParam(':deposit_rate', $deposit_rate); + $stmt->bindParam(':keep_rate', $keep_rate); + $stmt->bindParam(':warranty_rate', $warranty_rate); + $stmt->bindParam(':memo', $remark); + $stmt->bindParam(':brand', $brand); + $stmt->bindParam(':status', $status); + $stmt->bindParam(':updated_at', $current_date); + $stmt->execute(); + + //整機單價 + $sql_str = "SELECT * FROM con_maintance_examine_clear WHERE (apply_key, cmstatus) = (:apply_key, 'Y')"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->execute(); + $oldElevators = $stmt->fetchAll(PDO::FETCH_ASSOC); + + $oldItemsNo = (array)array_column($oldElevators, 'item_no'); + $newItemsNo = (array)array_column($elevators, 'id'); + $onlyInOldIds = array_values(array_diff($oldItemsNo, $newItemsNo)); // 只有舊的有,新傳入的沒有,所以刪除(delete) + $onlyInNewIds = array_values(array_diff($newItemsNo, $oldItemsNo)); //只有新傳入的有,舊的沒有,所以新增(insert) + $inBothIds = array_values(array_intersect($oldItemsNo, $newItemsNo)); //舊的跟新的都有,所以要更新(update) + + foreach($onlyInOldIds as $oldIdx){ + // $sql_str = "DELETE FROM con_maintance_examine_clear WHERE apply_key=:apply_key AND item_no=:item_no"; + $sql_str = "UPDATE con_maintance_examine_clear SET cmstatus = 'D' WHERE apply_key=:apply_key AND item_no=:item_no"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->bindParam(':item_no', $oldIdx); + $stmt->execute(); + } + foreach($onlyInNewIds as $newidx){ + $sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, item_no, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain_months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, created_at) + VALUES (:apply_key, :item_no, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain_months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :created_at) "; + $elevator = array_values(array_filter($elevators, fn($el)=> $el['id'] == $newidx))[0]; + $register_code = empty($elevator['permitNumber']) ? "A" : $elevator['permitNumber']; + if($elevator['spec'] == "MAE100") $elevator_kind = "A"; + if($elevator['spec'] == "MAF100") $elevator_kind = "B"; + if($elevator['spec'] == "MAM200") $elevator_kind = "D"; + if($elevator['spec'] == "MAH100") $elevator_kind = "E"; + + $speed_governors_check_expense = null; + $maintain_times = 1; + $commission_expense = null; + $management_expense = null; + $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee; + $cmstatus = "Y"; + $cycle = (int)$elevator['cycle']; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->bindParam(':item_no', $elevator['id']); + $stmt->bindParam(':register_code', $register_code); + $stmt->bindParam(':elevator_brand', $elevator['brand']); + $stmt->bindParam(':elevator_kind', $elevator_kind); + $stmt->bindParam(':spec', $elevator['spec']); + $stmt->bindParam(':weight', $elevator['weight']); + $stmt->bindParam(':speed', $elevator['speed']); + $stmt->bindParam(':stop', $elevator['stop']); + $stmt->bindParam(':floors', $elevator['stop']); + $stmt->bindParam(':persons', $elevator['person']); + $stmt->bindParam(':elevator_num', $elevator['qty']); + $stmt->bindParam(':useful_years', $elevator['checkYear']); + $stmt->bindParam(':last_check_date', $elevator['lastDate']); + $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense); + $stmt->bindParam(':maintain_times', $maintain_times); + $stmt->bindParam(':is_m1_bundle', $elevator['m1']); + $stmt->bindParam(':maintain_months', $elevator['months']); + $stmt->bindParam(':maintain_period', $cycle); + $stmt->bindParam(':maintain_method', $elevator['method']); + $stmt->bindParam(':stand_price', $elevator['price']); + $stmt->bindParam(':contract_price', $elevator['sale_price']); + $stmt->bindParam(':sold_price', $elevator['sale_price']); + $stmt->bindParam(':commission_expense', $elevator['commission_expense']); + $stmt->bindParam(':management_expense', $elevator['management_expense']); + $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']); + $stmt->bindParam(':service_expense', $elevator['service_expense']); + $stmt->bindParam(':cmstatus', $cmstatus); + $stmt->bindParam(':updated_at', $updated_at); + $stmt->bindParam(':creater', $creater); + $stmt->bindParam(':created_at', $current_date); + $stmt->execute(); + } + foreach($inBothIds as $bothidx){ + $sql_str = "UPDATE con_maintance_examine_clear SET + register_code=:register_code, + elevator_brand=:elevator_brand, + elevator_kind=:elevator_kind, + spec=:spec, + weight=:weight, + speed=:speed, + stop=:stop, + floors=:floors, + persons=:persons, + elevator_num=:elevator_num, + useful_years=:useful_years, + last_check_date=:last_check_date, + speed_governors_check_expense=:speed_governors_check_expense, + maintain_times=:maintain_times, + is_m1_bundle=:is_m1_bundle, + maintain_months=:maintain_months, + maintain_period=:maintain_period, + maintain_method=:maintain_method, + stand_price=:stand_price, + contract_price=:contract_price, + sold_price=:sold_price, + commission_expense=:commission_expense, + management_expense=:management_expense, + annual_survey_expense=:annual_survey_expense, + service_expense=:service_expense, + cmstatus=:cmstatus, + updated_at=:updated_at + WHERE (apply_key, item_no) = (:apply_key, :item_no)"; + + $elevator = array_values(array_filter($elevators, fn($el)=> $el['id'] == $bothidx))[0]; + $register_code = empty($elevator['permitNumber']) ? "A" : $elevator['permitNumber']; + if($elevator['spec'] == "MAE100") $elevator_kind = "A"; + if($elevator['spec'] == "MAF100") $elevator_kind = "B"; + if($elevator['spec'] == "MAM200") $elevator_kind = "D"; + if($elevator['spec'] == "MAH100") $elevator_kind = "E"; + + $speed_governors_check_expense = null; + $maintain_times = 1; + $commission_expense = null; + $management_expense = null; + $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee; + $cmstatus = "Y"; + $cycle = (int)$elevator['cycle']; + + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->bindParam(':register_code', $register_code); + $stmt->bindParam(':elevator_brand', $elevator['brand']); + $stmt->bindParam(':elevator_kind', $elevator_kind); + $stmt->bindParam(':spec', $elevator['spec']); + $stmt->bindParam(':weight', $elevator['weight']); + $stmt->bindParam(':speed', $elevator['speed']); + $stmt->bindParam(':stop', $elevator['stop']); + $stmt->bindParam(':floors', $elevator['stop']); + $stmt->bindParam(':persons', $elevator['person']); + $stmt->bindParam(':elevator_num', $elevator['qty']); + $stmt->bindParam(':useful_years', $elevator['checkYear']); + $stmt->bindParam(':last_check_date', $elevator['lastDate']); + $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense); + $stmt->bindParam(':maintain_times', $maintain_times); + $stmt->bindParam(':is_m1_bundle', $elevator['m1']); + $stmt->bindParam(':maintain_months', $elevator['months']); + $stmt->bindParam(':maintain_period', $cycle); + $stmt->bindParam(':maintain_method', $elevator['method']); + $stmt->bindParam(':stand_price', $elevator['price']); + $stmt->bindParam(':contract_price', $elevator['sale_price']); + $stmt->bindParam(':sold_price', $elevator['sale_price']); + $stmt->bindParam(':commission_expense', $elevator['commission_expense']); + $stmt->bindParam(':management_expense', $elevator['management_expense']); + $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']); + $stmt->bindParam(':service_expense', $elevator['service_expense']); + $stmt->bindParam(':cmstatus', $cmstatus); + $stmt->bindParam(':updated_at', $updated_at); + + $stmt->bindParam(':item_no', $bothidx); + $stmt->execute(); + } + + //除外項目 + $sql_str = "SELECT * FROM pricereview_maintain_item WHERE (mid, item_group) = (:apply_key, 'E')"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->execute(); + $item_other_options = $stmt->fetchAll(PDO::FETCH_ASSOC); + $oldOtherOptionsNo = (array)array_column($item_other_options, 'item_no'); + $newOtherOptioinNo = (array)array_column($otherOptions, 'id'); + + $onlyInOtherOptionOldIds = array_values(array_diff($oldOtherOptionsNo, $newOtherOptioinNo)); + $onlyInOtherOptionNewIds = array_values(array_diff($newOtherOptioinNo, $oldOtherOptionsNo)); + $inBothOtherOptionIds = array_values(array_intersect($oldOtherOptionsNo, $newOtherOptioinNo)); + + foreach($onlyInOtherOptionOldIds as $oldotheroptionidx){ + $sql_str = "DELETE FROM pricereview_maintain_item WHERE (mid, item_no, item_group) = (:apply_key, :item_no, 'E')"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->bindParam(':item_no', $oldotheroptionidx); + $stmt->execute(); + } + + foreach($onlyInOtherOptionNewIds as $newotheroptionidx){ + $option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $newotheroptionidx))[0]; + + $sql_str = "INSERT INTO pricereview_maintain_item (mid, price_id, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo) + VALUES (:mid, :price_id, :item_no, :item_group, :item_spec, :option_relate_spec, :item_unit_price, :item_qty, :item_price_bp, :memo)"; + + $item_price_bp = $option['price']*$option['num']; + $option_relate_spec = (count($option['toElevator']) > 0) ? $option['toElevator'][0]['id'] : null; + $item_group = "E"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':mid', $apply_key); + $stmt->bindParam(':price_id', $option['pr_no']); + $stmt->bindParam(':item_no', $option['id']); + $stmt->bindParam(':item_group', $item_group); + $stmt->bindParam(':item_spec', $option['name']); + $stmt->bindParam(':option_relate_spec', $option_relate_spec); + $stmt->bindParam(':item_unit_price', $option['price']); + $stmt->bindParam(':item_qty', $option['num']); + $stmt->bindParam(':item_price_bp', $item_price_bp); + $stmt->bindParam(':memo', $option['memo']); + $stmt->execute(); + } + foreach($inBothOtherOptionIds as $bothotheroptionidx){ + $option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $bothotheroptionidx))[0]; + + $sql_str = "UPDATE pricereview_maintain_item SET item_spec=:item_spec, price_id=:price_id, option_relate_spec=:option_relate_spec, item_unit_price = :item_unit_price, item_qty = :item_qty, item_price_bp = :item_price_bp, memo = :memo + WHERE (mid, item_no, item_group) = (:apply_key, :item_no, :item_group)"; + + $item_group = "E"; + $item_price_bp = $option['price']*$option['num']; + $option_relate_spec = (count($option['toElevator']) > 0) ? $option['toElevator'][0]['id'] : null; + + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->bindParam(':item_no', $option['id']); + $stmt->bindParam(':price_id', $option['pr_no']); + $stmt->bindParam(':item_group', $item_group); + $stmt->bindParam(':item_spec', $option['name']); + $stmt->bindParam(':option_relate_spec', $option_relate_spec); + $stmt->bindParam(':item_unit_price', $option['price']); + $stmt->bindParam(':item_qty', $option['num']); + $stmt->bindParam(':item_price_bp', $item_price_bp); + $stmt->bindParam(':memo', $option['memo']); + $stmt->execute(); + } + } + if($status == "YS"){ + $sql_str = "SELECT * FROM account WHERE accountid = :accountid"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':accountid', $creater); + $stmt->execute(); + $account = $stmt->fetch(PDO::FETCH_ASSOC); + $manager = $account['manager']; + $sign1 = $manager . ",,"; + $sign2 = "M0012,,"; + $sign3 = "M0008,,"; + + $sign_total = 3; + //服務費大於0 或是 價率低於0.8送至總經理(M0006) + if(false && ($serviceFee > 0 || ($total_sale_price / $total_price) < 0.8)){ + $sign4 = "M0006,,"; + $sign_total = 4; + } + + $sql_str = "INSERT INTO pricereview_maintain_sign (mid, sign1, sign1_note, sign2, sign2_note, sign3, sign3_note, sign4, sign4_note, sign_total, created_at, created_by) + VALUES (:mid, :sign1, :sign1_note, :sign2, :sign2_note, :sign3, :sign3_note, :sign4, :sign4_note, :sign_total, :created_at, :created_by)"; + + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':mid', $apply_key); + $stmt->bindParam(':sign1', $sign1); + $stmt->bindParam(':sign1_note', $sign1_note); + $stmt->bindParam(':sign2', $sign2); + $stmt->bindParam(':sign2_note', $sign2_note); + $stmt->bindParam(':sign3', $sign3); + $stmt->bindParam(':sign3_note', $sign3_note); + $stmt->bindParam(':sign4', $sign4); + $stmt->bindParam(':sign4_note', $sign4_note); + $stmt->bindParam(':sign_total', $sign_total); + $stmt->bindParam(':created_at', $current_date); + $stmt->bindParam(':created_by', $creater); + $stmt->execute(); + + include_once "./postFlow.php"; + $form_key = null; + $createFlow = createFlow($apply_key, $manager, "A", "保養", $form_key); + + include_once "./postSystemNotice.php"; + $sql_str = "SELECT * FROM con_maintance_examine_apply WHERE apply_key = :apply_key ORDER BY create_at DESC LIMIT 1"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->execute(); + $contract = $stmt->fetch(PDO::FETCH_ASSOC); + $kind = 1; + $related_id = $apply_key; + $title = "保養價審待簽通知(".$vol_no."," .$customer. ")"; + $content = "待簽核"; + $content = "合約號:".$vol_no . "
"; + $content .= "客戶名稱:" . $customer . "
"; + $content .= "案件名稱:" . $case_name . "
"; + $content .= "時間" . $current_date; + // $content .= "prepare($sql_str); + $stmt->execute(); + $result = $stmt->fetch(PDO::FETCH_ASSOC); + $form_key = $result['form_key']; + $seq = 0; + + $sql_str = "INSERT INTO flow (system_id, flow_id, form_id, form_key, flow_code) + VALUES (:system_id, :flow_id, :form_id, :form_key, :flow_code)"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':system_id', $system_id); + $stmt->bindParam(':flow_id', $flow_id); + $stmt->bindParam(':form_id', $form_id); + $stmt->bindParam(':form_key', $form_key); + $stmt->bindParam(':flow_code', $flow_code); + $stmt->execute(); + }else{ + $sql_str = "UPDATE flow SET flow_code = :flow_code WHERE form_key = :form_key"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':form_key', $form_key); + $stmt->bindParam(':flow_code', $flow_code); + $stmt->execute(); + + $sql_str = "SELECT MAX(seq) AS max_seq FROM subflow WHERE form_key = :form_key"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':form_key', $form_key); + $stmt->execute(); + $result = $stmt->fetch(PDO::FETCH_ASSOC); + $seq = $result['max_seq']; + $seq ++; + } + + $created_at = date("Y-m-d H:i:s"); + $sql_str = "INSERT INTO subflow (form_key, seq, current_assigner, update_date,create_date) + VALUES (:form_key, :seq, :current_assigner, :update_date,:create_date)"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':form_key', $form_key); + $stmt->bindParam(':seq', $seq); + $stmt->bindParam(':current_assigner', $current_assigner); + $stmt->bindParam(':update_date', $created_at); + $stmt->bindParam(':create_date', $created_at); + $stmt->execute(); + + + return $form_key; +} \ No newline at end of file diff --git a/wms/cont/api/postSystemNotice.php b/wms/cont/api/postSystemNotice.php new file mode 100644 index 00000000..acfc49e1 --- /dev/null +++ b/wms/cont/api/postSystemNotice.php @@ -0,0 +1,20 @@ +prepare($sql_str); + $stmt->bindParam(':kind', $kind); + $stmt->bindParam(':related_id', $related_id); + $stmt->bindParam(':title', $title); + $stmt->bindParam(':content', $content); + $stmt->bindParam(':haveread', $haveread); + $stmt->bindParam(':permission', $permission); + $stmt->bindParam(':url', $url); + $stmt->bindParam(':creater', $creater); + $stmt->bindParam(':create_at', $create_at); + $stmt->execute(); + } +} \ No newline at end of file diff --git a/wms/cont/js/pricereviewAlpine.js b/wms/cont/js/pricereviewAlpine.js index 1fabad15..03423d76 100644 --- a/wms/cont/js/pricereviewAlpine.js +++ b/wms/cont/js/pricereviewAlpine.js @@ -1,7 +1,6 @@ const pricereviewCreate = ()=>{ return { init(){ - console.log(123); }, modalShow:{ elevator: false, @@ -17,13 +16,14 @@ const pricereviewCreate = ()=>{ pre_order_date:pre_order_date, address:address, progress_status:progress_status, - total_spec:0, - elevators:[], - case_name:'', //案件名稱 - contract_status:'', // 契約性質 - pay_method:'', // 付款方式 - startDate:'', //合約開始日期 - endDate:'', // 合約結束日期 + total_spec:total_spec, + elevators: hope_elevators, + case_name:case_name, //案件名稱 + contract_status:contract_kind, // 契約性質 + pay_method:payment_kind, // 付款方式 + startDate:contract_begin_date, //合約開始日期 + endDate:contract_end_date, // 合約結束日期 + brand:brand, modalElevatorInfo:{ spec:'', person:'', @@ -33,7 +33,7 @@ const pricereviewCreate = ()=>{ permitNumber:'', //許可證號碼 brand:'', //品牌 m1:'N', //贈送M1 - months:'', // 保養月數 + months:12, // 保養月數 cycle:'', // 保養週期 method:'', //保養方式 checkYear:'', //竣工檢查年度 @@ -43,23 +43,24 @@ const pricereviewCreate = ()=>{ qty:1, //電梯數量 sale_price:'', //契約報價 }, - otherOptions: [], + otherOptions: otherOptions, modalOtherOptionInfo:{ pr_no:"", name:"", price: 0, num:"", + memo:"", }, - otherOptionKey:0, + otherOptionKey: otherOptionKey, currentOtherOptionKey:'', toElevators:[], toElevatorNo:'', - serviceFee:0, - remark:'', - penalty:'', - deposit_rate:'', - keep_rate:'', - warranty_rate:'', + serviceFee: service_fee, + remark:memo, + penalty: penalty, + deposit_rate: deposit_rate, + keep_rate: keep_rate, + warranty_rate: warranty_rate, openCreateElevatorModal(){ this.modalShow.elevator = true; body.style.overflow = 'hidden'; @@ -76,7 +77,7 @@ const pricereviewCreate = ()=>{ permitNumber:'', //許可證號碼 brand:'', //品牌 m1:'N', //贈送M1 - months:'', // 保養月數 + months:12, // 保養月數 cycle:'', // 保養週期 method:'', //保養方式 checkYear:'', //竣工檢查年度 @@ -140,7 +141,6 @@ const pricereviewCreate = ()=>{ const price = this.elevators[idx].price; const qty = this.elevators[idx].qty; const sale_price = this.elevators[idx].sale_price; - this.total_spec ++; this.elevators.push({ id: this.total_spec, @@ -166,6 +166,15 @@ const pricereviewCreate = ()=>{ removeElevator(id){ if(!confirm('確定刪除該電梯?')) return; this.elevators = this.elevators.filter(elevator=> elevator.id != id) + const issetElevators = []; + this.elevators.forEach(elevator=>{ + issetElevators.push(elevator.id); + }) + this.otherOptions.forEach(option=>{ + option.toElevator = option.toElevator.filter(el=>{ + return issetElevators.includes(el.id) + }) + }) }, openCreateOtherOptionFn(){ this.modalShow.other = true @@ -179,6 +188,7 @@ const pricereviewCreate = ()=>{ name: this.modalOtherOptionInfo.name, price: this.modalOtherOptionInfo.price, num: this.modalOtherOptionInfo.num, + memo: this.modalOtherOptionInfo.memo, toElevator:[], }) this.modalOtherOptionInfo = { @@ -186,6 +196,7 @@ const pricereviewCreate = ()=>{ name: '', price: 0, num: '', + memo: '', } this.hideCreateOtherOptionModal(); }, @@ -295,11 +306,29 @@ const pricereviewCreate = ()=>{ console.error("Error message:", error); } }, + async getElevatorPrice(idx){ + const spec = this.elevators[idx].spec + const person = this.elevators[idx].person + const stop = this.elevators[idx].stop + const weight = this.elevators[idx].weight + const speed = this.elevators[idx].speed + const m1 = this.elevators[idx].m1 + const method = this.elevators[idx].method + const cycle = this.elevators[idx].cycle + try{ + const res = await axios.get('./api/getElevatorPrice.php', {params: {spec: spec, person:person, weight: weight, stop: stop, speed: speed, m1: m1, method: method, cycle:cycle}}) + this.elevators[idx].price = res.data; + console.log(res.data); + }catch (error) { + console.error("Error message:", error); + } + }, save(){ const form = new FormData(); form.append('vol_no', this.vol_no); form.append('apply_key', this.apply_key); form.append('customer', this.customer); + form.append('brand', this.brand); form.append('address', this.address); form.append('case_name', this.case_name); form.append('brand', this.brand); @@ -315,10 +344,12 @@ const pricereviewCreate = ()=>{ form.append('keep_rate', this.keep_rate); form.append('warranty_rate', this.warranty_rate); form.append('remark', this.remark); - form.append('creater', this.user_id); + form.append('creater', user_id); form.append('pay_method', this.pay_method); form.append('status', 'Y1'); + form.append('total_price', this.totalPrice); + form.append('total_sale_price', this.totalSalePrice); form.append('elevators', JSON.stringify(this.elevators)); form.append('otherOptions', JSON.stringify(this.otherOptions)); @@ -332,7 +363,49 @@ const pricereviewCreate = ()=>{ }) }, submit(){ + const form = new FormData(); + form.append('vol_no', this.vol_no); + form.append('apply_key', this.apply_key); + form.append('customer', this.customer); + form.append('brand', this.brand); + form.append('address', this.address); + form.append('case_name', this.case_name); + form.append('brand', this.brand); + form.append('num', this.totalElevatorsNum); + form.append('salesman', this.salesman); + form.append('contract_begin_date', this.startDate); + form.append('contract_end_date', this.endDate); + form.append('contract_kind', this.contract_status); + form.append('progress_status', this.progress_status); + form.append('serviceFee', this.serviceFee); + form.append('penalty', this.penalty); + form.append('deposit_rate', this.deposit_rate); + form.append('keep_rate', this.keep_rate); + form.append('warranty_rate', this.warranty_rate); + form.append('remark', this.remark); + form.append('creater', user_id); + form.append('pay_method', this.pay_method); + form.append('status', 'YS'); + form.append('total_price', this.totalPrice); + form.append('total_sale_price', this.totalSalePrice); + + form.append('elevators', JSON.stringify(this.elevators)); + form.append('otherOptions', JSON.stringify(this.otherOptions)); + + axios.post('./api/postElevatorPricereview.php', form).then(res=>{ + console.log(res.data); + if(res.data == 'success'){ + alert("送審成功!"); + // window.location.reload(); + // window.location.href = './pricereview-index.php?' + token; + } + }) + }, + async getUsername(user_id){ + if(user_id == '') return '---' + const res = await axios.get('./api/getUsername.php', {params: {user_id: user_id}}) + return res.data ; }, } } \ No newline at end of file diff --git a/wms/cont/pricereviewCreate.php b/wms/cont/pricereviewCreate.php index 27174458..e8eaf216 100644 --- a/wms/cont/pricereviewCreate.php +++ b/wms/cont/pricereviewCreate.php @@ -13,8 +13,90 @@ $stmt->bindParam(':vol_no', $vol_no); $stmt->execute(); $hope_customer = $stmt->fetch(PDO::FETCH_ASSOC); -$apply_key = getApplyKey(date('ym'), 'cmea_apply_key'); -echo $apply_key; + +$sql_str = "SELECT * FROM con_maintance_examine_apply WHERE vol_no = :vol_no ORDER BY create_at DESC LIMIT 1"; +$stmt = $conn->prepare($sql_str); +$stmt->bindParam(':vol_no', $vol_no); +$stmt->execute(); +$apply = $stmt->fetch(PDO::FETCH_ASSOC); +if($apply['status'] == 'D'){ + echo ""; +} +if($apply['status'] == 'YS'){ + echo ""; +} +if($apply['status'] == 'YY' || $apply['status'] == 'YN'){ + echo ""; +} + +$apply_key = $apply ? $apply['apply_key'] : getApplyKey(date('ym'), 'cmea_apply_key'); + +$sql_str = "SELECT * FROM con_maintance_examine_clear WHERE apply_key = :apply_key ORDER BY created_at ASC"; +$stmt = $conn->prepare($sql_str); +$stmt->bindParam(':apply_key', $apply_key); +$stmt->execute(); +$elevators = $stmt->fetchAll(PDO::FETCH_ASSOC); +$hope_elevators = []; +$total_spec = 0; +foreach($elevators as $elevator){ + if($elevator['item_no'] > $total_spec){ + $total_spec = $elevator['item_no']; + } + if($elevator['cmstatus'] == 'D') continue; + $hope_elevators[] = [ + 'id'=> $elevator['item_no'], + 'spec'=> $elevator['spec'], + 'person'=> $elevator['persons'], + 'weight'=> $elevator['weight'], + 'stop'=> $elevator['stop'], + 'speed'=> $elevator['speed'], + 'permitNumber'=> $elevator['register_code'], + 'brand'=> $elevator['elevator_brand'], + 'm1'=> $elevator['is_m1_bundle'], + 'months'=> $elevator['maintain_months'], + 'cycle'=> $elevator['maintain_period'], + 'method'=> $elevator['maintain_method'], + 'checkYear'=> $elevator['useful_years'], + 'lastDate'=> $elevator['last_check_date'], + 'yearCheckFee'=> $elevator['annual_survey_expense'], + 'price'=> $elevator['stand_price'], + 'qty'=> $elevator['elevator_num'], + 'sale_price'=> $elevator['contract_price'], + ]; + +} + +$sql_str = "SELECT * FROM pricereview_maintain_item WHERE (mid, item_group) = (:apply_key, 'E') ORDER BY id ASC"; +$stmt = $conn->prepare($sql_str); +$stmt->bindParam(':apply_key', $apply_key); +$stmt->execute(); +$items = $stmt->fetchAll(PDO::FETCH_ASSOC); +$otherOptions = []; +$otherOptionKey = 0; +foreach($items as $item){ + if($item['item_no'] > $otherOptionKey){ + $otherOptionKey = (int)$item['item_no']; + } + if($item['option_relate_spec']!= 0 ){ + + } + $toElevator = $item['option_relate_spec']==0 ? [] : [[ + 'id'=>$item['option_relate_spec'], + 'model'=> array_values(array_filter($hope_elevators, fn($val)=> $val['id'] == $item['option_relate_spec']))[0]['spec'], + ]]; + $otherOptions[] = [ + 'id'=> $item['item_no'], + 'pr_no'=> $item['price_id'], + 'name'=> $item['item_spec'], + 'price' => $item['item_unit_price'], + 'num'=> $item['item_qty'], + 'memo'=> $item['memo'], + 'toElevator'=>$toElevator, + ]; +} + + + function getApplyKey($p_yyyymm, $seq_name){ if (empty($p_yyyymm) || empty($seq_name)) return null; global $conn; @@ -78,11 +160,11 @@ function getApplyKey($p_yyyymm, $seq_name){ 電梯品牌 - + 電梯數量 營業員 - + 當前契約期限結束 @@ -106,6 +188,7 @@ function getApplyKey($p_yyyymm, $seq_name){ + 請選擇契約性質 付款方式 @@ -117,13 +200,23 @@ function getApplyKey($p_yyyymm, $seq_name){ + 請選擇付款方式 案件名稱 - + + + 請填寫案件名稱 + 合約開始日期 - + + + 請填寫合約開始日期 + 合約結束日期 - + + + 請填寫合約結束日期 + @@ -136,7 +229,7 @@ function getApplyKey($p_yyyymm, $seq_name){ - + @@ -179,28 +272,26 @@ function getApplyKey($p_yyyymm, $seq_name){ 電梯 - - - 載重(KG) - + 停數 - + 速度(m/min) - @@ -215,7 +306,7 @@ function getApplyKey($p_yyyymm, $seq_name){ 人乘 - @@ -296,7 +387,7 @@ function getApplyKey($p_yyyymm, $seq_name){ 保養方式 - @@ -305,7 +396,7 @@ function getApplyKey($p_yyyymm, $seq_name){ 贈送M1 - @@ -315,6 +406,7 @@ function getApplyKey($p_yyyymm, $seq_name){ 公司發布價(月) + 公司無提供此規格牌價 保養月數 @@ -350,6 +442,7 @@ function getApplyKey($p_yyyymm, $seq_name){ 單價 數量 複價 + 備註 所屬電梯 功能 @@ -364,10 +457,11 @@ function getApplyKey($p_yyyymm, $seq_name){ - + 請輸入正整數 + 小計 - + @@ -481,5 +575,26 @@ function getApplyKey($p_yyyymm, $seq_name){ const progress_status = ''; const user_id = ''; const user_name = ''; + const progress_remark = ``; + + const memo = ``; + + const contract_kind = ''; + const payment_kind = ''; + const case_name = ''; + const contract_begin_date = ''; + const contract_end_date = ''; + + const total_spec = ''; + const hope_elevators = [...]; + const otherOptionKey = ''; + const otherOptions = [...]; + const token = ''; + + const penalty = ''; + const deposit_rate = ''; + const keep_rate = ''; + const warranty_rate = ''; + const service_fee = ''; \ No newline at end of file diff --git a/wms/cont/window-modal/modalElevaotr.php b/wms/cont/window-modal/modalElevaotr.php index 045362b7..602e7c86 100644 --- a/wms/cont/window-modal/modalElevaotr.php +++ b/wms/cont/window-modal/modalElevaotr.php @@ -110,7 +110,7 @@ 保養方式 - + - + + diff --git a/wms/contract/js/alpine.js b/wms/contract/js/alpine.js index f94fcb91..7de02def 100644 --- a/wms/contract/js/alpine.js +++ b/wms/contract/js/alpine.js @@ -246,7 +246,7 @@ const contractDownload = () => { { editshow: false, origin: true, - text: '交貨期限及甲方配合事項:
乙方應於接獲甲方圖色確認第180日(應於合約簽訂日起兩年內),將本工程所需之全部設備、器材 運抵工地,甲方應提供適當的場所供乙方貯放設備、器材。', + text: '交貨期限及甲方配合事項:
乙方應於接獲甲方圖色確認第180日(應於合約簽訂日起兩年內),將本工程所需之全部設備、器材運抵工地,甲方應提供適當的場所供乙方貯放設備、器材。於指定出貨日期,且乙方備妥材料後,如甲方向後延展出貨日期,如延展日期逾三個月,乙方得酌收額外增生之倉儲保管費用。', type: 'title', deleted: false, id: 5, diff --git a/wms/mkt/assets/js/pricereviewAlpine.js b/wms/mkt/assets/js/pricereviewAlpine0311.js similarity index 98% rename from wms/mkt/assets/js/pricereviewAlpine.js rename to wms/mkt/assets/js/pricereviewAlpine0311.js index 255c8251..8208b859 100644 --- a/wms/mkt/assets/js/pricereviewAlpine.js +++ b/wms/mkt/assets/js/pricereviewAlpine0311.js @@ -988,8 +988,6 @@ const pricereviewCheck = ()=>{ this.demolishOptions = items.filter(item=> item.item_group =='C'); this.maintainOptions = items.filter(item=> item.item_group =='D'); this.otherOptions = items.filter(item=> item.item_group =='E'); - console.log("optionnnn=>", this.options); - console.log(this.elevators); this.elevators.forEach((elevator, idx)=>{ this.options.forEach(option=>{ if(option.option_relate_spec == elevator.item_no){ @@ -1071,10 +1069,7 @@ const pricereviewCheck = ()=>{ } } } - - this.getElevatorMi(idx, spec, person, stop, open, speed, elevator.item_weight) - }); this.sign1 = this.getUsername(sign1) this.sign2 = this.getUsername(sign2) @@ -1170,38 +1165,38 @@ const pricereviewCheck = ()=>{ mid: mid, user_id: user_id, reviewcomment:'', - optionsTotalPrice(){ + get optionsTotalPrice(){ return this.options.reduce((total, option) => { return total + (option.item_qty * option.item_unit_price); }, 0); }, - otherOptionsTotalPrice(){ + get otherOptionsTotalPrice(){ return this.otherOptions.reduce((total, option) => { return total + (option.item_qty * option.item_unit_price); }, 0); }, - maintainOptionsTotalPrice(){ + get maintainOptionsTotalPrice(){ return this.maintainOptions.reduce((total, option) => { return total + (option.item_qty * option.item_unit_price); }, 0); }, - demolishOptionsTotalPrice(){ + get demolishOptionsTotalPrice(){ return this.demolishOptions.reduce((total, option) => { return total + (option.item_qty * option.item_unit_price); }, 0); }, - totalScale(){ + get totalScale(){ return this.pays.reduce((total, option) => { return total + Number(option.pay_scale ); }, 0); }, - totalElevatorsPrice(){ + get totalElevatorsPrice(){ return this.elevators.reduce((total, elevator) => { return total + (elevator.item_qty * elevator.price); }, 0); }, - totalStandardPrice(){ - return this.totalElevatorsPrice() + this.otherOptionsTotalPrice() + this.optionsTotalPrice() + this.maintainOptionsTotalPrice() + this.demolishOptionsTotalPrice(); + get totalStandardPrice(){ + return this.totalElevatorsPrice + this.otherOptionsTotalPrice + this.optionsTotalPrice + this.maintainOptionsTotalPrice + this.demolishOptionsTotalPrice; }, check(sign, status, user_id = this.user_id ){ console.log(sign); diff --git a/wms/mkt/pricereviewCheck.php b/wms/mkt/pricereviewCheck.php index 5eec5566..48c64625 100644 --- a/wms/mkt/pricereviewCheck.php +++ b/wms/mkt/pricereviewCheck.php @@ -264,7 +264,7 @@ function getSignerName($signer){ - +
@@ -409,7 +409,7 @@ function getSignerName($signer){ 小計 - + @@ -449,7 +449,7 @@ function getSignerName($signer){ 小計 - + @@ -457,7 +457,7 @@ function getSignerName($signer){ - +
@@ -489,7 +489,7 @@ function getSignerName($signer){ @@ -497,7 +497,7 @@ function getSignerName($signer){
保固延長
小計 - +
- +
@@ -529,7 +529,7 @@ function getSignerName($signer){ @@ -671,7 +671,7 @@ function getSignerName($signer){ - + @@ -707,12 +707,12 @@ function getSignerName($signer){ - + - + @@ -935,6 +935,7 @@ function getSignerName($signer){ const is_renovate = ''; + const user_id = ''; const sign1 = ''; @@ -946,4 +947,6 @@ function getSignerName($signer){ const currentSignId = ''; const token = ''; const form_key = ''; + + console.log(is_renovate); \ No newline at end of file diff --git a/wms/mkt/pricereviewCreate.php b/wms/mkt/pricereviewCreate.php index 72d58e0e..2860cc2c 100644 --- a/wms/mkt/pricereviewCreate.php +++ b/wms/mkt/pricereviewCreate.php @@ -376,7 +376,7 @@ function convertDateTimeFormat($dateTimeStr) { - +
拆梯價格
小計 - +
合計
價率%(B/A)
預定成交日