diff --git a/src/app/api/image/estimate-image-copy/route.js b/src/app/api/image/estimate-image-copy/route.js
new file mode 100644
index 00000000..720dd5f0
--- /dev/null
+++ b/src/app/api/image/estimate-image-copy/route.js
@@ -0,0 +1,42 @@
+import { NextResponse } from 'next/server'
+import { S3Client, CopyObjectCommand } from '@aws-sdk/client-s3'
+import sharp from 'sharp'
+import { v4 as uuidv4 } from 'uuid'
+const Bucket = process.env.AMPLIFY_BUCKET
+const s3 = new S3Client({
+ region: process.env.AWS_REGION,
+ credentials: {
+ accessKeyId: process.env.AWS_ACCESS_KEY_ID,
+ secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
+ },
+})
+
+export async function POST(req) {
+ try {
+ const { objectNo, planNo, newObjectNo, newPlanNo } = await req.json()
+
+ const responseArray = []
+
+ const copyCommand = new CopyObjectCommand({
+ Bucket,
+ CopySource: encodeURI(`${Bucket}/Drawing/${objectNo}_${planNo}_1.png`),
+ Key: `Drawing/${newObjectNo}_${newPlanNo}_1.png`,
+ })
+
+ const response = await s3.send(copyCommand)
+
+ const copyCommand2 = new CopyObjectCommand({
+ Bucket,
+ CopySource: encodeURI(`${Bucket}/Drawing/${objectNo}_${planNo}_2.png`),
+ Key: `Drawing/${newObjectNo}_${newPlanNo}_2.png`,
+ })
+
+ const response2 = await s3.send(copyCommand2)
+
+ responseArray.push(response, response2)
+ return NextResponse.json({ message: '견적서 이미지 복사 성공', responseArray }, { status: 200 })
+ } catch (error) {
+ console.error(error)
+ return NextResponse.json({ message: '견적서 이미지 복사 실패' }, { status: 500 })
+ }
+}
diff --git a/src/components/estimate/Estimate.jsx b/src/components/estimate/Estimate.jsx
index 7237e056..9a60fd0e 100644
--- a/src/components/estimate/Estimate.jsx
+++ b/src/components/estimate/Estimate.jsx
@@ -1281,7 +1281,7 @@ export default function Estimate({}) {
{getMessage('estimate.detail.objectNo')}
- {currentObjectNo} (Plan No: {planNo})
+ {currentObjectNo} (Plan No: {currentPid})
diff --git a/src/hooks/floorPlan/estimate/useEstimateController.js b/src/hooks/floorPlan/estimate/useEstimateController.js
index ae37c8db..64ff13e9 100644
--- a/src/hooks/floorPlan/estimate/useEstimateController.js
+++ b/src/hooks/floorPlan/estimate/useEstimateController.js
@@ -13,6 +13,8 @@ import { useSwal } from '@/hooks/useSwal'
// Constants
const ESTIMATE_API_ENDPOINT = '/api/estimate' // API 엔드포인트 정의
+import Config from '@/config/config.export'
+
// Helper functions
const updateItemInList = (itemList, dispOrder, updates) => {
return itemList.map((item) => (item.dispOrder === dispOrder ? { ...item, ...updates } : item))
@@ -464,11 +466,13 @@ export const useEstimateController = (planNo, flag) => {
setIsGlobalLoading(true)
await promisePost({ url: '/api/estimate/save-estimate-copy', data: params })
- .then((res) => {
+ .then(async (res) => {
setIsGlobalLoading(false)
if (res.status === 201) {
if (isObjectNotEmpty(res.data)) {
let newObjectNo = res.data.objectNo
+ const copyImage = await handleEstimateImageCopy(params.objectNo, params.planNo, newObjectNo, '1')
+
swalFire({
text: getMessage('estimate.detail.estimateCopyPopup.copy.alertMessage'),
type: 'alert',
@@ -489,6 +493,14 @@ export const useEstimateController = (planNo, flag) => {
})
}
+ const handleEstimateImageCopy = async (objectNo, planNo, newObjectNo, newPlanNo) => {
+ await promisePost({ url: `${Config().baseUrl}/api/image/estimate-image-copy`, data: { objectNo, planNo, newObjectNo, newPlanNo } }).then(
+ (res) => {
+ return res
+ },
+ )
+ }
+
const handleDeleteEstimate = async (canvasStatus) => {
try {
setIsGlobalLoading(true)
diff --git a/src/locales/ja.json b/src/locales/ja.json
index 16d4f6cd..3b6962c6 100644
--- a/src/locales/ja.json
+++ b/src/locales/ja.json
@@ -689,12 +689,12 @@
"join.sub2.fax_placeholder": "00 0000 0000",
"join.sub2.category": "部署名",
"join.btn.login_page": "ログイン画面に移動",
- "join.btn.approval_request": "ID承認要求",
+ "join.btn.approval_request": "ID申請",
"join.complete.title": "HANASYS設計ログインID発行申請完了",
"join.complete.contents": "※申請したIDが承認されると、担当者情報に入力したEメールアドレスにログイン関連案内メールが送信されます。",
"join.complete.email_comment": "担当者のメールアドレス",
"join.validation.check1": "{0}形式を確認してください。",
- "join.complete.save.confirm": "ハンファジャパンの担当者にID承認が要求された場合、これ以上情報を修正することはできません。申請しますか?",
+ "join.complete.save.confirm": "ID申請を完了後は申請情報の修正が出来ません。申請しますか?",
"stuff.gridHeader.lastEditDatetime": "更新日時",
"stuff.gridHeader.objectNo": "物件番号",
"stuff.gridHeader.planTotCnt": "プラン数",