diff --git a/src/app/floor-plan/FloorPlanProvider.js b/src/app/floor-plan/FloorPlanProvider.js
index 1e5c536d..a9595aa5 100644
--- a/src/app/floor-plan/FloorPlanProvider.js
+++ b/src/app/floor-plan/FloorPlanProvider.js
@@ -21,6 +21,8 @@ const defaultEstimateData = {
fileList: [],
fileFlg: '0', //후일 자료 제출 (체크 1 노체크 0)
priceCd: '',
+ pricingFlag: false, // 가격 처리 플래그 추가
+
}
/**
diff --git a/src/components/estimate/Estimate.jsx b/src/components/estimate/Estimate.jsx
index 9a3dd74d..2fe098cf 100644
--- a/src/components/estimate/Estimate.jsx
+++ b/src/components/estimate/Estimate.jsx
@@ -507,6 +507,7 @@ export default function Estimate({}) {
icon: 'warning',
confirmFn: () => {
handlePricing(showPriceCd)
+ setEstimateContextState({ pricingFlag:true })
},
})
}
@@ -1437,7 +1438,7 @@ export default function Estimate({}) {
onChange={(e) => {
//주문분류
setHandlePricingFlag(true)
- setEstimateContextState({ estimateType: e.target.value })
+ setEstimateContextState({ estimateType: e.target.value, setEstimateContextState })
}}
/>
diff --git a/src/components/fabric/QPolygon.js b/src/components/fabric/QPolygon.js
index 264d62d1..ebf4e625 100644
--- a/src/components/fabric/QPolygon.js
+++ b/src/components/fabric/QPolygon.js
@@ -721,8 +721,7 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, {
}
// Ray casting 알고리즘
- if (((yi > testY) !== (yj > testY)) &&
- (testX < (xj - xi) * (testY - yi) / (yj - yi) + xi)) {
+ if (yi > testY !== yj > testY && testX < ((xj - xi) * (testY - yi)) / (yj - yi) + xi) {
inside = !inside
}
}
@@ -739,7 +738,7 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, {
// 벡터의 외적을 계산하여 점이 선분 위에 있는지 확인
const crossProduct = Math.abs(dxPoint * dySegment - dyPoint * dxSegment)
-
+
if (crossProduct > tolerance) {
return false
}
@@ -747,7 +746,7 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, {
// 점이 선분의 범위 내에 있는지 확인
const dotProduct = dxPoint * dxSegment + dyPoint * dySegment
const squaredLength = dxSegment * dxSegment + dySegment * dySegment
-
+
return dotProduct >= 0 && dotProduct <= squaredLength
},
setCoords: function () {
diff --git a/src/hooks/floorPlan/estimate/useEstimateController.js b/src/hooks/floorPlan/estimate/useEstimateController.js
index 9acb79f7..4cbe4521 100644
--- a/src/hooks/floorPlan/estimate/useEstimateController.js
+++ b/src/hooks/floorPlan/estimate/useEstimateController.js
@@ -167,13 +167,34 @@ export const useEstimateController = (planNo, flag) => {
})
}
- //견적서 저장
+
const handleEstimateSubmit = async () => {
+ if(estimateContextState.pricingFlag) {
+ await handleEstimateSubmitCore();
+ }else {
+ swalFire({
+ text: getMessage('estimate.detail.save.pricingFlag'),
+ type: 'confirm',
+ icon: 'warning',
+ confirmFn: async () => {
+ await handleEstimateSubmitCore();
+
+ },
+ denyFn: () => false
+ })
+ return false
+ }
+ }
+ //견적서 저장
+ const handleEstimateSubmitCore = async () => {
//0. 필수체크
let flag = true
let originFileFlg = false
let fileFlg = true
let itemFlg = true
+
+
+
if (estimateData?.charger === null || estimateData?.charger?.trim().length === 0) {
flag = false
setIsGlobalLoading(false)
@@ -355,6 +376,8 @@ export const useEstimateController = (planNo, flag) => {
}
const realSave = async (fileList) => {
+
+ setEstimateContextState({pricingFlag: false})
//첨부파일저장끝
let option = []
diff --git a/src/locales/ja.json b/src/locales/ja.json
index ed372e18..5cd08828 100644
--- a/src/locales/ja.json
+++ b/src/locales/ja.json
@@ -993,10 +993,10 @@
"estimate.detail.docPopup.title": "見積書出力オプションの設定",
"estimate.detail.docPopup.explane": "ダウンロードする文書オプションを選択し、[見積書出力]ボタンをクリックします。",
"estimate.detail.docPopup.schUnitPriceFlg": "ダウンロードファイル",
- "estimate.detail.docPopup.schUnitPriceFlg.excelFlg0": "仕切用Excel",
+ "estimate.detail.docPopup.schUnitPriceFlg.excelFlg0": "見積書Excel",
"estimate.detail.docPopup.schUnitPriceFlg.excelFlg1": "定価用Excel",
- "estimate.detail.docPopup.schUnitPriceFlg.excelFlg2": "見積書",
- "estimate.detail.docPopup.schUnitPriceFlg.pdfFlg0": "仕切用PDF",
+ "estimate.detail.docPopup.schUnitPriceFlg.excelFlg2": "旧見積書書式",
+ "estimate.detail.docPopup.schUnitPriceFlg.pdfFlg0": "見積書PDF",
"estimate.detail.docPopup.schUnitPriceFlg.pdfFlg1": "定価用PDF",
"estimate.detail.docPopup.schDisplayFlg": "見積提出書の表示名",
"estimate.detail.docPopup.schDisplayFlg.schDisplayFlg0": "販売店名",
@@ -1034,6 +1034,7 @@
"estimate.detail.save.requiredItemId": "製品を選択してください。",
"estimate.detail.save.requiredAmount": "数量は0より大きい値を入力してください。",
"estimate.detail.save.requiredSalePrice": "単価は0より大きい値を入力してください。",
+ "estimate.detail.save.pricingFlag": "設定した価格見積が作成されます。このまま進めてよろしいですか?",
"estimate.detail.reset.alertMsg": "初期化されました。",
"estimate.detail.reset.confirmMsg": "保存した見積情報が初期化され、最近保存された図面情報が反映されます。本当に初期化しますか?",
"estimate.detail.lock.alertMsg": "見積もりを[ロック]すると変更できません。
見積もりを修正するには、ロックを解除してください。",
diff --git a/src/locales/ko.json b/src/locales/ko.json
index c0cd43af..19864ac4 100644
--- a/src/locales/ko.json
+++ b/src/locales/ko.json
@@ -1034,6 +1034,7 @@
"estimate.detail.save.requiredItemId": "제품을 선택해주세요.",
"estimate.detail.save.requiredAmount": "수량은 0보다 큰값을 입력해주세요.",
"estimate.detail.save.requiredSalePrice": "단가는 0보다 큰값을 입력해주세요.",
+ "estimate.detail.save.pricingFlag": "설정한 가격 견적이 작성됩니다. 이대로 진행해도 괜찮으시겠습니까?",
"estimate.detail.reset.alertMsg": "초기화 되었습니다.",
"estimate.detail.reset.confirmMsg": "수기 변경(저장)한 견적 정보가 초기화되고 최근 저장된 도면정보가 반영됩니다. 정말로 초기화하시겠습니까?",
"estimate.detail.lock.alertMsg": "견적서를 [잠금]하면 수정할 수 없습니다.
견적서를 수정하려면 잠금해제를 하십시오.",