first commit 2
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
<?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());
|
||||
}
|
||||
Reference in New Issue
Block a user