QCast Front #886 견적서 OPEN 제품 단가필드에 OPEN 텍스트 추가
This commit is contained in:
parent
2e86c793c3
commit
7ff52a7b19
@ -13,7 +13,7 @@ import dayjs from 'dayjs'
|
||||
import { useCommonCode } from '@/hooks/common/useCommonCode'
|
||||
import { useEstimateController } from '@/hooks/floorPlan/estimate/useEstimateController'
|
||||
import { SessionContext } from '@/app/SessionProvider'
|
||||
import Select, {components} from 'react-select'
|
||||
import Select, { components } from 'react-select'
|
||||
import { convertNumberToPriceDecimal, convertNumberToPriceDecimalToFixed } from '@/util/common-utils'
|
||||
import ProductFeaturesPop from './popup/ProductFeaturesPop'
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
@ -504,7 +504,8 @@ export default function Estimate({}) {
|
||||
saleStoreId: estimateContextState.sapSaleStoreId,
|
||||
sapSalesStoreCd: estimateContextState.sapSalesStoreCd,
|
||||
docTpCd: estimateContextState.estimateType,
|
||||
secSapSalesStoreCd:(estimateContextState.secSapSalesStoreCd?.length > 0 && showPriceCd === 'QSP_PRICE')? estimateContextState.secSapSalesStoreCd :'',
|
||||
secSapSalesStoreCd:
|
||||
estimateContextState.secSapSalesStoreCd?.length > 0 && showPriceCd === 'QSP_PRICE' ? estimateContextState.secSapSalesStoreCd : '',
|
||||
priceCd: showPriceCd,
|
||||
itemIdList: estimateContextState.itemList.filter((item) => item.delFlg === '0' && item.paDispOrder === null),
|
||||
}
|
||||
@ -1220,19 +1221,17 @@ export default function Estimate({}) {
|
||||
const [agencyCustList, setAgencyCustList] = useState([])
|
||||
useEffect(() => {
|
||||
// 952 - 2차점 특가 sapSalesStoreCd
|
||||
if(estimateContextState?.sapSalesStoreCd && session?.storeLvl === '1') {
|
||||
if (estimateContextState?.sapSalesStoreCd && session?.storeLvl === '1') {
|
||||
const param = {
|
||||
sapSalesStoreCd: estimateContextState.sapSalesStoreCd,
|
||||
}
|
||||
const apiUrl = `api/estimate/agency-cust-list?${queryStringFormatter(param)}`
|
||||
get({ url: apiUrl }).then((res) => {
|
||||
if (isNotEmptyArray(res?.data)) {
|
||||
setAgencyCustList(res?.data);
|
||||
setAgencyCustList(res?.data)
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
}, [estimateContextState?.sapSalesStoreCd])
|
||||
return (
|
||||
<div className="sub-content estimate">
|
||||
@ -1381,11 +1380,16 @@ export default function Estimate({}) {
|
||||
<div className="form-flex-wrap">
|
||||
<div className="radio-wrap">
|
||||
{/*pkgRank is null, empty 인 경우 : 사용불가, 이전에 등록된 경우 사용가능, style로 제어*/}
|
||||
<div className="d-check-radio light mr10" style={{display:
|
||||
(isNotEmptyArray(storePriceList) > 0
|
||||
&& storePriceList[0].pkgRank !== null
|
||||
&& storePriceList[0].pkgRank !== ''
|
||||
|| estimateContextState?.estimateType === 'YJSS') ? "" : "none"}}>
|
||||
<div
|
||||
className="d-check-radio light mr10"
|
||||
style={{
|
||||
display:
|
||||
(isNotEmptyArray(storePriceList) > 0 && storePriceList[0].pkgRank !== null && storePriceList[0].pkgRank !== '') ||
|
||||
estimateContextState?.estimateType === 'YJSS'
|
||||
? ''
|
||||
: 'none',
|
||||
}}
|
||||
>
|
||||
<input
|
||||
type="radio"
|
||||
name="estimateType"
|
||||
@ -1415,35 +1419,37 @@ export default function Estimate({}) {
|
||||
<label htmlFor="YJOD">{getMessage('estimate.detail.estimateType.yjod')}</label>
|
||||
</div>
|
||||
</div>
|
||||
{ (session?.storeLvl === '1' && agencyCustList.length > 0 )? (
|
||||
<div className="form-flex-select ml10">
|
||||
<label htmlFor="">{getMessage('estimate.detail.agency')}</label>
|
||||
<div className="select-wrap" style={{ width: '400px' }}>
|
||||
<Select
|
||||
id="agencyName"
|
||||
instanceId="agencyName"
|
||||
className="react-select-custom"
|
||||
classNamePrefix="custom"
|
||||
placeholder="Select"
|
||||
options={agencyCustList}
|
||||
onChange={(e) => {
|
||||
if (isObjectNotEmpty(e)) {
|
||||
setEstimateContextState({ secSapSalesStoreCd: e.sapSalesStoreCd })
|
||||
} else {
|
||||
setEstimateContextState({ secSapSalesStoreCd: '' })
|
||||
}
|
||||
}}
|
||||
getOptionLabel={(x) => x.sapSalesStoreNm}
|
||||
getOptionValue={(x) => x.sapSalesStoreCd}
|
||||
isClearable={true}
|
||||
isSearchable={true}
|
||||
value={agencyCustList.filter(function (option) {
|
||||
return option.sapSalesStoreCd === estimateContextState.secSapSalesStoreCd
|
||||
})}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
) : ('')}
|
||||
{session?.storeLvl === '1' && agencyCustList.length > 0 ? (
|
||||
<div className="form-flex-select ml10">
|
||||
<label htmlFor="">{getMessage('estimate.detail.agency')}</label>
|
||||
<div className="select-wrap" style={{ width: '400px' }}>
|
||||
<Select
|
||||
id="agencyName"
|
||||
instanceId="agencyName"
|
||||
className="react-select-custom"
|
||||
classNamePrefix="custom"
|
||||
placeholder="Select"
|
||||
options={agencyCustList}
|
||||
onChange={(e) => {
|
||||
if (isObjectNotEmpty(e)) {
|
||||
setEstimateContextState({ secSapSalesStoreCd: e.sapSalesStoreCd })
|
||||
} else {
|
||||
setEstimateContextState({ secSapSalesStoreCd: '' })
|
||||
}
|
||||
}}
|
||||
getOptionLabel={(x) => x.sapSalesStoreNm}
|
||||
getOptionValue={(x) => x.sapSalesStoreCd}
|
||||
isClearable={true}
|
||||
isSearchable={true}
|
||||
value={agencyCustList.filter(function (option) {
|
||||
return option.sapSalesStoreCd === estimateContextState.secSapSalesStoreCd
|
||||
})}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
''
|
||||
)}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@ -1932,16 +1938,12 @@ export default function Estimate({}) {
|
||||
}
|
||||
}}
|
||||
menuPlacement={'auto'}
|
||||
getOptionLabel={(x) => x.itemName + " (" + x.itemNo + ")"}
|
||||
getOptionLabel={(x) => x.itemName + ' (' + x.itemNo + ')'}
|
||||
getOptionValue={(x) => x.itemNo}
|
||||
components={{
|
||||
SingleValue:({children, ...props}) =>{
|
||||
return (
|
||||
<components.SingleValue{...props}>
|
||||
{props.data.itemName}
|
||||
</components.SingleValue>
|
||||
)
|
||||
}
|
||||
SingleValue: ({ children, ...props }) => {
|
||||
return <components.SingleValue {...props}>{props.data.itemName}</components.SingleValue>
|
||||
},
|
||||
}}
|
||||
isClearable={false}
|
||||
isDisabled={!!item?.paDispOrder}
|
||||
@ -1962,16 +1964,12 @@ export default function Estimate({}) {
|
||||
placeholder="Select"
|
||||
options={cableItemList}
|
||||
menuPlacement={'auto'}
|
||||
getOptionLabel={(x) => x.clRefChr3 + " (" + x.clRefChr1 + ")"}
|
||||
getOptionLabel={(x) => x.clRefChr3 + ' (' + x.clRefChr1 + ')'}
|
||||
getOptionValue={(x) => x.clRefChr1}
|
||||
components={{
|
||||
SingleValue:({children, ...props}) =>{
|
||||
return (
|
||||
<components.SingleValue{...props}>
|
||||
{props.data.clRefChr3}
|
||||
</components.SingleValue>
|
||||
)
|
||||
}
|
||||
SingleValue: ({ children, ...props }) => {
|
||||
return <components.SingleValue {...props}>{props.data.clRefChr3}</components.SingleValue>
|
||||
},
|
||||
}}
|
||||
isClearable={false}
|
||||
isDisabled={true}
|
||||
@ -2027,7 +2025,11 @@ export default function Estimate({}) {
|
||||
<input
|
||||
type="text"
|
||||
className="input-light al-r"
|
||||
value={convertNumberToPriceDecimal(item?.showSalePrice === '0' ? null : item?.salePrice?.replaceAll(',', ''))}
|
||||
value={
|
||||
item.openFlg === '1'
|
||||
? 'OPEN'
|
||||
: convertNumberToPriceDecimal(item?.showSalePrice === '0' ? null : item?.salePrice?.replaceAll(',', ''))
|
||||
}
|
||||
disabled={
|
||||
item.openFlg === '1'
|
||||
? true
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user