fix : 3단결제 체크 "최소 결재자는 본인 외 2명이상 필수"

마지막이 결재자 인지 "결재선의 마지막은 결재자이어야 함"
      결재자 있는지 "결재자는 필수입니다."
      관련 validation 처리 완료
This commit is contained in:
Yesol Choi
2025-06-06 12:24:57 +09:00
parent 1e5acf790c
commit 5283d34126
2 changed files with 139 additions and 80 deletions

View File

@@ -94,70 +94,101 @@ const cancel = () => {
router.push('/app/contractManagement') router.push('/app/contractManagement')
} }
const validation = () => {
notyf.dismissAll()
const resultGu = apprLine.value.filter((item,index)=> index != 0 && !item.lineclsf)
if(resultGu.length > 0){
console.log("resultGu",resultGu)
notyf.error("결재선 구분값을 입력해주세요")
return false
}
if(apprLine.value.length < 2){
notyf.error("결재선은 본인 외 2명이상 필수입니다.")
return false
}
const result = apprLine.value.filter((item)=> item.lineclsf === 'A' )
if(result.length > 1){
notyf.error("결재는 한 명입니다.")
return false
}
const resultLastItem = apprLine.value[apprLine.value.length-1].lineclsf
if(resultLastItem != 'A'){
notyf.error("결재선의 마지막은 결재자이어야 함")
return false
}
return true
}
const loading = ref(false) const loading = ref(false)
const createChit = async () => { const createChit = async () => {
let res = null let res = null
try{ try{
loading.value = true loading.value = true
const createParams = { if (validation()) {
contNo : params.contNo, //"CONT-0000000005", const createParams = {
bldat : '20250602',//params.regSdt.replace("-",""), // "20250501", contNo: params.contNo, //"CONT-0000000005",
budat : '20250610',//params.regSdt2.replace("-",""), // "20250502", bldat: '20250602',//params.regSdt.replace("-",""), // "20250501",
waers : "KRW", //currencyCode.value, //"KRW", budat: '20250610',//params.regSdt2.replace("-",""), // "20250502",
bktxt : params.bktxt,//"전표 생성 테스트1", waers: "KRW", //currencyCode.value, //"KRW",
lifnr : params.lifnr, //999-99-99999", bktxt: params.bktxt,//"전표 생성 테스트1",
wrbtr : "1203", //formattedNumber.value, //!!!!!수정필요 "1203", lifnr: params.lifnr, //999-99-99999",
mwskz : "V4", //taxCode.value, //"V4", wrbtr: "1203", //formattedNumber.value, //!!!!!수정필요 "1203",
gsber : '1000', //affiliationCode.value, //무슨 값인지 모름 gsber bukrs bupla 같다고 함 1000 mwskz: "V4", //taxCode.value, //"V4",
bupla : '1000', //affiliationCode.value, //1000 gsber: '1000', //affiliationCode.value, //무슨 값인지 모름 gsber bukrs bupla 같다고 함 1000
zterm : 'PF00', //params.zterm, //!!!!!!어떤 값인지 모름 PF00 bupla: '1000', //affiliationCode.value, //1000
banks : 'KR', //params.banks , //어떤 값인지 모름 KR zterm: 'PF00', //params.zterm, //!!!!!!어떤 값인지 모름 PF00
bankl : '012', //params.bankl, //012 banks: 'KR', //params.banks , //어떤 값인지 모름 KR
bankn : '3510876657453', //params.bankn, //3510876657453 bankl: '012', //params.bankl, //012
hkont : '5366010', //params.hkont,//G/L 계정 5366010 bankn: '3510876657453', //params.bankn, //3510876657453
wrbtrS : formattedNumber.value, //1102 hkont: '5366010', //params.hkont,//G/L 계정 5366010
kostl : "12330", //!!!!!!12330 wrbtrS: formattedNumber.value, //1102
projk : selectCostCode.value, //빈값 kostl: "12330", //!!!!!!12330
trtGubun : '11', //params.trtGubun,//!!!!!!어떤 값인지 모름 11 projk: selectCostCode.value, //빈값
txBillSeq : '202503231', //params.txBillSeq,//!!!!!!어떤 값인지 모름 202503231 trtGubun: '11', //params.trtGubun,//!!!!!!어떤 값인지 모름 11
slipAtts: pbAtts.value.map(req => ({ txBillSeq: '202503231', //params.txBillSeq,//!!!!!!어떤 값인지 모름 202503231
logiFnm: req.logiFnm, slipAtts: pbAtts.value.map(req => ({
data: req.data})),//첨부파일 데이터, logiFnm: req.logiFnm,
zwf0011t : { data: req.data
wkftx : "결재 테스트11", //!!!!!!어떤 값인지 모름 })),//첨부파일 데이터,
apprs : [{ zwf0011t: {
label: '결재', wkftx: "결재 테스트11", //!!!!!!어떤 값인지 모름
value: apprLine.value.map((req) => ({ apprs: [{
lineclsf : req.lineclsf, label: '결재',
bname : req.bname, value: apprLine.value.map((req) => ({
abscd : req.abscd lineclsf: req.lineclsf,
})) bname: req.bname,
}] abscd: req.abscd
} }))
}]
}
// waers : currencyCode.value, //"KRW", // waers : currencyCode.value, //"KRW",
// bktxt : params.bktxt,//"전표 생성 테스트1", // bktxt : params.bktxt,//"전표 생성 테스트1",
// lifnr : params.lifnr, //999-99-99999", // lifnr : params.lifnr, //999-99-99999",
// wrbtr : formattedNumber.value, //수정필요 "1203", // wrbtr : formattedNumber.value, //수정필요 "1203",
// mwskz : taxCode.value, //"V4", // mwskz : taxCode.value, //"V4",
// gsber : affiliationCode.value, //무슨 값인지 모름 gsber bukrs bupla 같다고 함 1000 // gsber : affiliationCode.value, //무슨 값인지 모름 gsber bukrs bupla 같다고 함 1000
// bupla : affiliationCode.value, //1000 // bupla : affiliationCode.value, //1000
// zterm : params.zterm, //어떤 값인지 모름 PF00 // zterm : params.zterm, //어떤 값인지 모름 PF00
// banks : params.banks , //어떤 값인지 모름 KR // banks : params.banks , //어떤 값인지 모름 KR
// bankl : params.bankl, //012 // bankl : params.bankl, //012
// bankn : params.bankn, //3510876657453 // bankn : params.bankn, //3510876657453
// hkont : params.hkont,//G/L 계정 5366010 // hkont : params.hkont,//G/L 계정 5366010
// wrbtrS : formattedNumber.value, //1102 // wrbtrS : formattedNumber.value, //1102
// kostl : "12330", //12330 // kostl : "12330", //12330
// projk : selectCostCode.value, //빈값 // projk : selectCostCode.value, //빈값
// trtGubun : params.trtGubun,//어떤 값인지 모름 11 // trtGubun : params.trtGubun,//어떤 값인지 모름 11
// txBillSeq : params.txBillSeq,//어떤 값인지 모름 202503231 // txBillSeq : params.txBillSeq,//어떤 값인지 모름 202503231
} }
notyf.dismissAll() notyf.dismissAll()
res = await saveTempSlip(createParams) res = await saveTempSlip(createParams)
if(res.request.status == '200'){ if (res.request.status == '200') {
notyf.primary('등록 되었습니다.') notyf.primary('전표가 등록 되었습니다.')
router.push({path: '/app/priceManagement'}) router.push({path: '/app/priceManagement'})
}
} }
}catch(e){ }catch(e){
notyf.error(e.message) notyf.error(e.message)

View File

@@ -98,7 +98,7 @@ const getDetailList = (item) => {
params.slipAtts = item.slipAtts//첨부파일 params.slipAtts = item.slipAtts//첨부파일
console.log("params.slipAtts",params.slipAtts) console.log("params.slipAtts",params.slipAtts)
apprLine.value = item.zwf0011t.apprs[0].value apprLine.value = item.zwf0011t.apprs[0].value
console.log("apprsList.value",apprLine.value) console.log("apprsList.value 여기 결재선 들어옴",apprLine.value)
} }
function onInput(event) { function onInput(event) {
@@ -115,6 +115,33 @@ const router = useRouter()
const cancel = () => { const cancel = () => {
router.push('/app/contractManagement') router.push('/app/contractManagement')
} }
const validation = () => {
notyf.dismissAll()
const resultGu = apprLine.value.filter((item,index)=> index != 0 && !item.lineclsf)
if(resultGu.length > 0){
console.log("resultGu",resultGu)
notyf.error("결재선 구분값을 입력해주세요")
return false
}
if(apprLine.value.length < 2){
notyf.error("결재선은 본인 외 2명이상 필수입니다.")
return false
}
const result = apprLine.value.filter((item)=> item.lineclsf === 'A' )
if(result.length > 1){
notyf.error("결재는 한 명입니다.")
return false
}
const resultLastItem = apprLine.value[apprLine.value.length-1].lineclsf
if(resultLastItem != 'A'){
notyf.error("결재선의 마지막은 결재자이어야 함")
return false
}
return true
}
const loading = ref(false) const loading = ref(false)
@@ -122,26 +149,28 @@ const updateChit = async () => {
let res = null let res = null
try{ try{
loading.value = true loading.value = true
const createParams = { if (validation()){
contNo : params.contNo, //"CONT-0000000005", const createParams = {
zwf0011t : { contNo : params.contNo, //"CONT-0000000005",
belnr: "0605145807", //!!!!!!!뭔 값인지 모름 zwf0011t : {
wkfid: "FI2025900020", //!!!!!!!뭔 값인지 모름 belnr: "0605145807", //!!!!!!!뭔 값인지 모름
apprs : [{ wkfid: "FI2025900020", //!!!!!!!뭔 값인지 모름
label: '결재', apprs : [{
value: apprLine.value.map((req) => ({ label: '결재',
lineclsf : req.lineclsf, value: apprLine.value.map((req) => ({
bname : req.bname, lineclsf : req.lineclsf,
abscd : req.abscd bname : req.bname,
})) abscd : req.abscd
}] }))
}]
}
}
notyf.dismissAll()
res = await updateTempSlip(createParams)
if(res.request.status == '200'){
notyf.primary('결재선이 수정 되었습니다.')
router.push({path: '/app/priceManagement'})
} }
}
notyf.dismissAll()
res = await updateTempSlip(createParams)
if(res.request.status == '200'){
notyf.primary('등록 되었습니다.')
router.push({path: '/app/priceManagement'})
} }
}catch(e){ }catch(e){
notyf.error(e.message) notyf.error(e.message)
@@ -216,7 +245,6 @@ const isDuplicate = (person: Person) =>{
watch( watch(
selectUser, selectUser,
(newPersons) => { (newPersons) => {
console.log("newPersons",newPersons)
if (Array.isArray(newPersons) && newPersons.length > 0) { if (Array.isArray(newPersons) && newPersons.length > 0) {
const filtered = newPersons.filter((p) => !isDuplicate(p)) const filtered = newPersons.filter((p) => !isDuplicate(p))
apprLine.value = [...apprLine.value, ...filtered] apprLine.value = [...apprLine.value, ...filtered]
@@ -230,7 +258,7 @@ const onDocDelete = (index: number) => {
if(apprLine.value.length-1 !== params.flexColumn.length if(apprLine.value.length-1 !== params.flexColumn.length
|| (params.flexColumn.length == 8 && apprLine.value.length-1 == params.flexColumn.length)) || (params.flexColumn.length == 8 && apprLine.value.length-1 == params.flexColumn.length))
{ {console.log("삭제 index 접근함")
apprLine.value.splice(index, 1) apprLine.value.splice(index, 1)
} }
} }