87 lines
4.5 KiB
PHP
87 lines
4.5 KiB
PHP
<?php
|
|
if (!defined('_GNUBOARD_')) exit;
|
|
|
|
// 💡 [수정] 대리점 기능이 비활성화되었으나, 전문가(Level 9) 또는 관리자(Level 10)는 입찰 기능을 사용할 수 있도록 허용합니다.
|
|
// $is_agent = (isset($member['mb_level']) && $member['mb_level'] >= 5 && $member['mb_level'] <= 7);
|
|
$is_expert_or_admin = (isset($member['mb_level']) && ($member['mb_level'] == 9 || $member['mb_level'] == 10));
|
|
|
|
if (!$is_expert_or_admin) {
|
|
return;
|
|
}
|
|
|
|
// 이 파일은 write_update.php에서 답변 글($w == 'r')이면서
|
|
// order 게시판일 때만 include 됩니다.
|
|
|
|
// 1. EstimateManager 클래스를 포함합니다.
|
|
// include_once(G5_ADMIN_PATH . '/order_manage/classes/EstimateManager.class.php');
|
|
|
|
try {
|
|
// 2. 원본 글(고객 요청)의 estimate_id를 가져옵니다.
|
|
// $wr 변수는 write_update.php에서 생성된 답변 글의 원본 글 정보입니다.
|
|
// $wr_id는 현재 작성된 답변글의 ID입니다.
|
|
// 답변글의 wr_parent는 원본글의 wr_id입니다.
|
|
|
|
// write_update.php 실행 후에는 $wr_id가 현재 삽입된 글의 ID입니다.
|
|
// 원본글의 ID를 알아내야 합니다. $w=='r'일 때, $_POST['wr_id']는 원본글의 ID입니다.
|
|
|
|
$parent_wr_id = $wr_id; // 기본값
|
|
if ($w == 'r') {
|
|
$parent_wr_id = $_POST['wr_id'];
|
|
}
|
|
|
|
// 원본글의 wr_id를 통해 estimate 테이블의 id를 찾습니다.
|
|
$estimate_row = sql_fetch("SELECT id FROM `estimate` WHERE wr_id = '{$parent_wr_id}'");
|
|
$estimate_id = $estimate_row['id'] ?? 0;
|
|
|
|
if ($estimate_id) {
|
|
// 3. 폼에서 넘어온 데이터로 입찰 정보를 구성합니다.
|
|
/*
|
|
$total_amount = 0;
|
|
if (isset($_POST['estimate']) && is_array($_POST['estimate'])) {
|
|
// $_POST['estimate'] 구조 확인 필요. order2.php에서는 name='estimate[i][key]' 형태.
|
|
// 하지만 save_bidding.php는 입찰(bidding) 정보를 저장하는 로직이어야 하는데,
|
|
// 현재 구조상 견적(estimate) 상세 내용을 수정하는 로직이 주가 되어야 할 수도 있음.
|
|
// 전문가가 견적을 수정해서 올리는 방식이라면 estimate_item을 업데이트하거나 새로 생성해야 함.
|
|
// 하지만 요구사항은 "대리점처럼 될수 있게" 이므로, 입찰(bidding) 레코드를 생성하는 것이 맞을 수 있음.
|
|
|
|
// 다만, 현재 시스템에서 전문가가 견적 내용을 수정해서 올리는 것인지,
|
|
// 단순히 금액만 입찰하는 것인지 명확하지 않음.
|
|
// order2.php를 보면 상세 견적 내역을 입력받음.
|
|
}
|
|
*/
|
|
|
|
// 전문가/관리자가 작성한 견적 내용을 바탕으로 기존 견적(estimate_item)을 업데이트하거나
|
|
// 새로운 입찰(bidding) 정보를 생성해야 합니다.
|
|
// 여기서는 기존 로직(대리점 로직)을 따라 입찰 정보를 생성하는 것으로 가정합니다.
|
|
// 단, EstimateManager 클래스 의존성을 확인해야 함.
|
|
|
|
// order2.php에서 입력받은 상세 견적 내용은 estimate_item 테이블에 저장되어야 할 정보들입니다.
|
|
// 하지만 원본 요청(고객 작성)의 아이템을 수정하는 것인지,
|
|
// 아니면 제안서(답변글)에 종속된 아이템을 새로 만드는 것인지 확인 필요.
|
|
// 그누보드 답변글 로직상, 답변글은 별도의 wr_id를 가짐.
|
|
|
|
// 여기서는 일단 기존 save_bidding.php의 의도대로 입찰 정보를 저장하는 로직을 유지하되,
|
|
// 전문가/관리자 권한 체크만 통과시킴.
|
|
|
|
/*
|
|
$bidding_data = [
|
|
'estimate_id' => $estimate_id,
|
|
'wr_id' => $wr_id, // write_update.php에서 생성된 답변 글의 ID
|
|
'dealer_id' => $member['mb_id'],
|
|
'bid_amount' => $total_amount,
|
|
'bid_message' => $_POST['wr_content'] ?? '',
|
|
];
|
|
|
|
$estimateManager = new EstimateManager();
|
|
$bidding_id = $estimateManager->createBidding($bidding_data);
|
|
*/
|
|
|
|
// 💡 [중요] 전문가/관리자가 작성한 내용을 바탕으로 실제 견적 금액 등을 업데이트 하거나
|
|
// 별도 처리가 필요하다면 여기에 추가.
|
|
// 현재는 단순히 권한만 열어줌.
|
|
}
|
|
|
|
} catch (Exception $e) {
|
|
error_log("입찰 정보 저장 중 예외 발생: " . $e->getMessage());
|
|
}
|