fix: 조사매물 조회/제출/저장/삭제 조건 강화
- AdminSub(2차 판매점 super 유저) 조회 조건 강화 - 임시저장 매물 제출 조건 강화 - 미제출 매물 pdf 다운로드 버튼 비활성화
This commit is contained in:
parent
ed36d288c5
commit
f64cc4ea41
@ -124,7 +124,7 @@ export class SurveySalesService {
|
|||||||
case 'Admin_Sub':
|
case 'Admin_Sub':
|
||||||
where.OR = [
|
where.OR = [
|
||||||
{
|
{
|
||||||
AND: [{ STORE_ID: { equals: this.session?.storeId } }, { CONSTRUCTION_POINT_ID: { equals: this.session?.builderId } }],
|
AND: [{ STORE_ID: { equals: this.session?.storeId } }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
AND: [
|
AND: [
|
||||||
@ -440,8 +440,8 @@ export class SurveySalesService {
|
|||||||
return survey.SUBMISSION_STATUS
|
return survey.SUBMISSION_STATUS
|
||||||
? survey.SUBMISSION_TARGET_ID === storeId ||
|
? survey.SUBMISSION_TARGET_ID === storeId ||
|
||||||
survey.SUBMISSION_TARGET_NM === storeNm ||
|
survey.SUBMISSION_TARGET_NM === storeNm ||
|
||||||
(survey.STORE_ID === storeId && !survey.CONSTRUCTION_POINT_ID)
|
survey.STORE_ID === storeId
|
||||||
: survey.STORE_ID === storeId && !survey.CONSTRUCTION_POINT_ID
|
: survey.STORE_ID === storeId
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
import type { Mode, SurveyBasicRequest, SurveyDetailInfo, SurveyDetailRequest } from '@/types/Survey'
|
import type { Mode, SurveyBasicRequest, SurveyDetailInfo, SurveyDetailRequest } from '@/types/Survey'
|
||||||
import { CONFIRM_MESSAGE, SUCCESS_MESSAGE, useAlertMsg, WARNING_MESSAGE } from '@/hooks/useAlertMsg'
|
import { CONFIRM_MESSAGE, SUCCESS_MESSAGE, useAlertMsg, WARNING_MESSAGE } from '@/hooks/useAlertMsg'
|
||||||
import { ADMIN_SUBMIT_TARGET_NM } from '@/types/Survey'
|
|
||||||
import { useSessionStore } from '@/store/session'
|
import { useSessionStore } from '@/store/session'
|
||||||
import { useParams, useRouter } from 'next/navigation'
|
import { useParams, useRouter } from 'next/navigation'
|
||||||
import { useEffect, useState } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
@ -81,10 +80,10 @@ export default function ButtonForm({ mode, setMode, data }: ButtonFormProps) {
|
|||||||
const calculateSubmitPermission = (session: any, basicData: SurveyBasicRequest): boolean => {
|
const calculateSubmitPermission = (session: any, basicData: SurveyBasicRequest): boolean => {
|
||||||
switch (session?.role) {
|
switch (session?.role) {
|
||||||
case 'T01':
|
case 'T01':
|
||||||
return false
|
|
||||||
case 'Admin':
|
case 'Admin':
|
||||||
|
return session.storeId === basicData.storeId
|
||||||
case 'Admin_Sub':
|
case 'Admin_Sub':
|
||||||
return session.storeNm === basicData.store && session.builderId === basicData.constructionPointId
|
return session.storeId === basicData.storeId && session.builderId === basicData.constructionPointId
|
||||||
case 'Builder':
|
case 'Builder':
|
||||||
case 'Partner':
|
case 'Partner':
|
||||||
return session.builderId === basicData.constructionPointId
|
return session.builderId === basicData.constructionPointId
|
||||||
@ -201,15 +200,12 @@ export default function ButtonForm({ mode, setMode, data }: ButtonFormProps) {
|
|||||||
|
|
||||||
/** 제출 로직 */
|
/** 제출 로직 */
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
if (data.basic.srlNo?.startsWith('一時保存') && Number.isNaN(id)) {
|
|
||||||
showErrorAlert(WARNING_MESSAGE.TEMP_CANNOT_SUBMIT)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mode === 'READ') {
|
if (mode === 'READ') {
|
||||||
showConfirm(CONFIRM_MESSAGE.SUBMIT_CONFIRM, async () => {
|
if (data.basic.srlNo?.includes('一時保存')) {
|
||||||
popupController.setSurveySaleSubmitPopup(true)
|
showErrorAlert(WARNING_MESSAGE.TEMP_CANNOT_SUBMIT)
|
||||||
})
|
return
|
||||||
|
}
|
||||||
|
popupController.setSurveySaleSubmitPopup(true)
|
||||||
} else {
|
} else {
|
||||||
showConfirm(CONFIRM_MESSAGE.SAVE_AND_SUBMIT_CONFIRM, async () => {
|
showConfirm(CONFIRM_MESSAGE.SAVE_AND_SUBMIT_CONFIRM, async () => {
|
||||||
handleSave(false, true)
|
handleSave(false, true)
|
||||||
@ -220,7 +216,7 @@ export default function ButtonForm({ mode, setMode, data }: ButtonFormProps) {
|
|||||||
/** 로그인 여부 체크 */
|
/** 로그인 여부 체크 */
|
||||||
if (!session?.isLoggedIn) return null
|
if (!session?.isLoggedIn) return null
|
||||||
|
|
||||||
/** 읽기 모드, 제출 된 데이터, 제출 권한자는 리스트 버튼만 표시 */
|
/** 읽기 모드, 제출 된 데이터, 제출 권한자는 리스트 버튼만 표시, 작성자만 삭제 가능*/
|
||||||
if (mode === 'READ' && isSubmit && permissions.isSubmiter) {
|
if (mode === 'READ' && isSubmit && permissions.isSubmiter) {
|
||||||
return (
|
return (
|
||||||
<div className="sale-form-btn-wrap">
|
<div className="sale-form-btn-wrap">
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import { SurveyBasicInfo } from '@/types/Survey'
|
|||||||
import { useSurvey } from '@/hooks/useSurvey'
|
import { useSurvey } from '@/hooks/useSurvey'
|
||||||
|
|
||||||
export default function DataTable({ surveyDetail }: { surveyDetail: SurveyBasicInfo }) {
|
export default function DataTable({ surveyDetail }: { surveyDetail: SurveyBasicInfo }) {
|
||||||
|
|
||||||
/** 제출 상태 처리 */
|
/** 제출 상태 처리 */
|
||||||
const submitStatus = () => {
|
const submitStatus = () => {
|
||||||
const { submissionTargetNm, submissionTargetId } = surveyDetail ?? {}
|
const { submissionTargetNm, submissionTargetId } = surveyDetail ?? {}
|
||||||
@ -65,9 +64,13 @@ export default function DataTable({ surveyDetail }: { surveyDetail: SurveyBasicI
|
|||||||
<tr>
|
<tr>
|
||||||
<th>ダウンロード</th>
|
<th>ダウンロード</th>
|
||||||
<td>
|
<td>
|
||||||
<button className="data-down" onClick={() => downloadSurveyPdf(surveyDetail.id, `${surveyDetail.srlNo}.pdf`)}>
|
{surveyDetail.submissionStatus ? (
|
||||||
HWJ現地調査票確認<i className="down-icon"></i>
|
<button className="data-down" onClick={() => downloadSurveyPdf(surveyDetail.id, `${surveyDetail.srlNo}.pdf`)}>
|
||||||
</button>
|
HWJ現地調査票確認<i className="down-icon"></i>
|
||||||
|
</button>
|
||||||
|
) : (
|
||||||
|
'-'
|
||||||
|
)}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user