1class CommonBizmatch { 2 /** 3 * ìë´ íì ì ë©ì¸ì§ ë° ì´ë©ì¼ ì ì¡ 4 * @param choiceNo 5 * @param userNo ìë´ ì ì²ì user no 6 * @param cnslUserNo ìë´ ëì user no 7 * @param callBackFunction 8 */ 9 confirmMailSend(choiceNo, userNo, cnslUserNo, callBackFunction = () => {}) { 10 try { 11 const apiList = [ 12 // ë©ì¸ì§ API 13 ezpmpcommonUtil.commonFunc.sendModificationMessage(choiceNo), 14 // ì´ë©ì¼ API 15 ezpmpcommonUtil.commonFunc.sendConfirmationMail(choiceNo, userNo, cnslUserNo) 16 ]; 17 18 const apiSuccess = (returnValueList) => { 19 if (!!returnValueList) { 20 const [ returnValue1, returnValue2 ] = returnValueList; 21 // ìëµ ì±ê³µ 22 if (returnValue1.responseCode === RESPONSVALUE.SUCCESS && returnValue2.responseCode === RESPONSVALUE.SUCCESS) { 23 callBackFunction(); 24 // ìëµ ì¤í¨ 25 } else if (returnValue1.responseCode === RESPONSVALUE.FAIL || returnValue2.responseCode === RESPONSVALUE.FAIL) { 26 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 27 // ê·¸ ì¸ 28 } else { 29 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 30 } 31 } 32 } 33 34 const apiFail = (returnValue) => { 35 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 36 } 37 38 const apiError = (returnValue) => { 39 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 40 } 41 42 ezpmpcommonUtil.apiCall.multCallApi(apiList, apiSuccess, apiFail, apiError, false); 43 } catch(e) { 44 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 45 } 46 47 } 48 49 /** 50 * ìë´ íì ë©ì¸ì§ ë°ì¡ 51 * @param userNo 52 * @param cnslUserNo 53 * @param msgLangCd 54 * @returns {Promise<*>|boolean} 55 */ 56 sendModificationMessage(choiceNo, msgLangCd = "KR") { 57 // ìë´ì¤ì¼ì¤ ìì¸ì íë²í¸ 목ë¡ì´ ì¡´ì¬íì§ ìì¼ë©´ ë©ì¸ì§ ë±ë¡ ë¶ê° 58 /*if (!meetingList || (!!meetingList && meetingList.length === 0)) { 59 return false; 60 }*/ 61 62 // 기ì ë¹ 63 let data = { 64 "projectCd": properties.projectCd, 65 "siteId": properties.siteId, 66 "meetingList": [{ 67 "choiceNo": choiceNo 68 }], // ì²ë¦¬ë 미í ì ë³´ ëª©ë¡ (choiceNo - ì¤ì¼ì¤ ë²í¸, histNo - ì´ë ¥ë²í¸) 69 "msgLangCd": msgLangCd // ë©ì¸ì§ ì¸ì´ ì½ë 70 }; 71 try { 72 return ezpmpcommonUtil.apiCall.callApiAxiosAsync(apiPaths.consultApi + `/message/meeting`, HTTPMETHOD.POST, data, 'json', false); 73 } catch (e) { 74 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 75 } 76 } 77 78 /** 79 * ìë´ íì í ë©ì¼ ë°ì¡ (ì ì²ì, ìë´ì¬ 모ë ë©ì¼ ë°ì¡) 80 * @param choiceNo ì¤ì¼ì¤ìì¸ì íë²í¸ 81 */ 82 sendConfirmationMail(choiceNo, userNo, cnslUserNo, langCd = "KR", cnslLangCd = "KR") { 83 let meetingEmailTitleApplicant = (langCd == 'KR' ? '미í íì ìë´' : 'The business meeting request is confirmed.'); 84 let meetingEmailTitleCounselor = (cnslLangCd == 'KR' ? '미í íì ìë´' : 'The business meeting request is confirmed.'); 85 let sendMailDataAboutApplicant = {}; 86 let sendMailDataAboutCounselor = {}; 87 88 try { 89 // request parameter 90 const pageInfo = { page: 0, size: 9999 }; 91 const mailInfo = { moveUrl: sessionStorage.getItem('siteDomain'), logo: sessionStorage.getItem("siteLogoUrl") }; 92 const apiParam1 = { 93 "searchProjectCd": properties.projectCd, 94 "searchSiteId": properties.siteId, 95 "searchDetailCd": 'EMA354,EMB354', 96 "searchDelYn": "N", 97 "searchUseYn": "Y", 98 "searchLangCd": langCd, 99 ...pageInfo 100 } 101 const apiParam2 = { 102 "searchProjectCd": properties.projectCd, 103 "searchSiteId": properties.siteId, 104 "searchDetailCd": 'EMA354,EMB354', 105 "searchDelYn": "N", 106 "searchUseYn": "Y", 107 "searchLangCd": cnslLangCd, 108 ...pageInfo 109 } 110 const apiParam3 = { 111 page: 0, 112 size: 9999, 113 projectCd: properties.projectCd, 114 siteId: properties.siteId, 115 searchChoiceNo: choiceNo, // 미í ìê° ì¡°ííë ¤ë ì¤ì¼ì¤ìì¸ì íë²í¸ 116 searchGmtNatCd: langCd, //GMT ìê°ì ì¡°íí ë ì¬ì©íë ì¸ì´ì½ë 117 searchLangCd: langCd 118 }; 119 const apiParam4 = { 120 page: 0, 121 size: 9999, 122 projectCd: properties.projectCd, 123 siteId: properties.siteId, 124 searchChoiceNo: choiceNo, // 미í ìê° ì¡°ííë ¤ë ì¤ì¼ì¤ìì¸ì íë²í¸ 125 searchGmtNatCd: cnslLangCd, //GMT ìê°ì ì¡°íí ë ì¬ì©íë ì¸ì´ì½ë 126 searchLangCd: cnslLangCd 127 }; 128 const apiList = [ 129 // ë©ì¼ ì 목 ì¡°í 130 ezpmpcommonUtil.apiCall.callApiAxiosAsync(apiPaths.categoryApi + "/tb/category/detail", HTTPMETHOD.GET, apiParam1, 'json', false), 131 ezpmpcommonUtil.apiCall.callApiAxiosAsync(apiPaths.categoryApi + "/tb/category/detail", HTTPMETHOD.GET, apiParam2, 'json', false), 132 // 미í ì ë³´ ì¡°í 133 ezpmpcommonUtil.apiCall.callApiAxiosAsync(apiPaths.consultApi + "/meeting-manage/" + userNo + "/meeting", HTTPMETHOD.GET, apiParam3), 134 ezpmpcommonUtil.apiCall.callApiAxiosAsync(apiPaths.consultApi + "/meeting-manage/" + cnslUserNo + "/meeting", HTTPMETHOD.GET, apiParam4) 135 ]; 136 137 const apiSuccess = (returnValueList) => { 138 if (!!returnValueList) { 139 const [ mailSubjectForApplicant, mailSubjectForCounselor, meetingManageForApplicant, meetingManageForCounselor ] = returnValueList; 140 // ìëµ ì±ê³µ 141 if (mailSubjectForApplicant.responseCode === RESPONSVALUE.SUCCESS && mailSubjectForCounselor.responseCode === RESPONSVALUE.SUCCESS 142 && meetingManageForApplicant.responseCode === RESPONSVALUE.SUCCESS && meetingManageForCounselor.responseCode === RESPONSVALUE.SUCCESS) { 143 try { 144 const dateInfo = meetingManageForApplicant.responseData.data.list[0]; 145 const userInfo = dateInfo.meetDetailInfoList[0]; 146 const cnslDateInfo = meetingManageForCounselor.responseData.data.list[0]; 147 const cnslUserInfo = cnslDateInfo.meetDetailInfoList[0]; 148 // ë©ì¸ì§ ì 목 149 const mailSubjectForApplicantData = mailSubjectForApplicant.responseData.data.listCategoryDetail.map(item => { 150 let subject = {}; 151 152 item.masterCd == 'EMA' ? subject.ema = item.value1 : subject.emb = item.value1; 153 154 return subject; 155 }); 156 const mailSubjectForCounselorData = mailSubjectForCounselor.responseData.data.listCategoryDetail.map(item => { 157 let subject = {}; 158 159 item.masterCd == 'EMA' ? subject.ema = item.value1 : subject.emb = item.value1; 160 161 return subject; 162 }); 163 164 165 // ì ì²ììê² ë©ì¼ ë°ì¡ 166 sendMailDataAboutApplicant.sendMailKeyValue = { 167 ...mailInfo, 168 event: siteNm, 169 subject1: mailSubjectForApplicantData.ema, 170 subject2: mailSubjectForApplicantData.emb, 171 //url: sessionStorage.getItem("addressToContact" + meetingDetail.reqDefaultLang), 172 detailDt: dateInfo.meetFrDate + " " + dateInfo.meetFrTime, 173 companyNm: !userInfo.meetCompanyNm ? '' : userInfo.meetCompanyNm, 174 fullNm: userInfo.meetFullNm 175 } 176 177 // ìë´ììê² ë©ì¼ ë°ì¡ 178 sendMailDataAboutCounselor.sendMailKeyValue = { 179 ...mailInfo, 180 event: siteNm, 181 subject1: mailSubjectForCounselorData.ema, 182 subject2: mailSubjectForCounselorData.emb, 183 //url: sessionStorage.getItem("addressToContact" + meetingDetail.cnslDefaultLang), 184 detailDt: cnslDateInfo.meetFrDateGmt + " " + cnslDateInfo.meetFrTimeGmt, 185 companyNm: !cnslUserInfo.meetCompanyNm ? '' : cnslUserInfo.meetCompanyNm, 186 fullNm: cnslUserInfo.meetFullNm 187 } 188 189 ezpmpcommonUtil.commonFunc.removeNullValues(sendM
189ailDataAboutApplicant.sendMailKeyValue); 190 ezpmpcommonUtil.commonFunc.removeNullValues(sendMailDataAboutCounselor.sendMailKeyValue); 191 192 sendMailDataAboutApplicant.senderNm = siteNm; 193 sendMailDataAboutCounselor.senderNm = siteNm; 194 195 const mailParam = { 196 projectCd: properties.projectCd 197 , siteId: properties.siteId 198 , langCd: langCd 199 , emailTypeCdForTemplate: "EMC354" 200 , emailTypeCdForSender: "EMC354" 201 , emailTitle: meetingEmailTitleApplicant 202 , sendTypeCd: "MDC001" 203 , keyValue: sendMailDataAboutApplicant.sendMailKeyValue 204 , senderNm: sendMailDataAboutApplicant.senderNm 205 }; 206 207 const cnslMailParam = { 208 projectCd: properties.projectCd 209 , siteId: properties.siteId 210 , langCd: cnslLangCd 211 , emailTypeCdForTemplate: "EMC354" 212 , emailTypeCdForSender: "EMC354" 213 , emailTitle: meetingEmailTitleCounselor 214 , sendTypeCd: "MDC001" 215 , keyValue: sendMailDataAboutCounselor.sendMailKeyValue 216 , senderNm: sendMailDataAboutCounselor.senderNm 217 }; 218 219 const mailList = [ 220 ezpmpcommonUtil.apiCall.callApiAxiosAsync(apiPaths.mailingApi + "/mailsend/single/" + userNo, HTTPMETHOD.POST, mailParam), 221 ezpmpcommonUtil.apiCall.callApiAxiosAsync(apiPaths.mailingApi+ "/mailsend/single/" + cnslUserNo, HTTPMETHOD.POST, cnslMailParam) 222 ]; 223 224 // success function 225 const mailSuccess = (returnValueList) => { 226 if (!!returnValueList) { 227 const [ returnValue1, returnValue2 ] = returnValueList; 228 // ìëµ ì±ê³µ 229 if (returnValue1.responseCode === RESPONSVALUE.SUCCESS && returnValue2.responseCode === RESPONSVALUE.SUCCESS) { 230 // ìëµ ì¤í¨ 231 } else if (returnValue1.responseCode === RESPONSVALUE.FAIL || returnValue2.responseCode === RESPONSVALUE.FAIL) { 232 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 233 // ê·¸ ì¸ 234 } else { 235 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 236 } 237 } 238 } 239 // fail function 240 const mailFail = (returnValue) => { 241 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 242 } 243 // error function 244 const mailError = (returnValue) => { 245 $.unblockUI(); 246 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 247 } 248 249 // multiCallApi 250 // api ì ë¶ í¸ì¶ í ì½ë°±í¨ì ì¤í 251 // axios list, callback(success), callback(fail), blockUI ì 무(boolean) 252 ezpmpcommonUtil.apiCall.multCallApi(mail
252List, mailSuccess, mailFail, mailError, false); 253 } catch(e) { 254 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 255 } 256 257 // ìëµ ì¤í¨ 258 } else if (returnValue1.responseCode === RESPONSVALUE.FAIL || returnValue2.responseCode === RESPONSVALUE.FAIL) { 259 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 260 // ê·¸ ì¸ 261 } else { 262 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 263 } 264 } 265 } 266 267 const apiFail = (returnValue) => { 268 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 269 } 270 271 const apiError = (returnValue) => { 272 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 273 } 274 275 ezpmpcommonUtil.apiCall.multCallApi(apiList, apiSuccess, apiFail, apiError, false); 276 } catch(e) { 277 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 278 } 279 } 280 281 /** 282 * meetFrDateTimeì meetToDateTime를 ì¡°í í callbackFunctionì ì¤í 283 * @param choiceNo 284 * @param callbackFunction 285 */ 286 searchDetailDt(choiceNo, callbackFunction = () => {}) { 287 try { 288 const apiParam = { 289 projectCd: properties.projectCd, 290 siteId: properties.siteId, 291 choiceNo: choiceNo 292 }; 293 294 return ezpmpcommonUtil.apiCall.callApiAxiosAsync(apiPaths.consultApi + "/meeting-manage/" + choiceNo, HTTPMETHOD.GET, apiParam) 295 .then((returnValue) => { 296 if (!!returnValue) { 297 // ìëµ ì±ê³µ 298 if (returnValue.responseCode === RESPONSVALUE.SUCCESS) { 299 const { meetFrDateTime, meetToDateTime } = returnValue.responseData.data; 300 301 callbackFunction(meetFrDateTime, meetToDateTime); 302 // ìëµ ì¤í¨ 303 } else if (returnValue.responseCode === RESPONSVALUE.FAIL) { 304 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 305 // ê·¸ ì¸ 306 } else { 307 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 308 } 309 } 310 }); 311 } catch(e) { 312 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 313 } 314 } 315 316 /** 317 * ìë´ ìë½ ë기 ë©ì¼ ë°ì¡ 318 * í´ë¹ ë©ì¼ í´ë¦ ì ë°ì ìëë°©ì´ ìë´ì ìë½íëë¡ ì ë 319 * ìë½ ì íì ëê¸°ë¡ ë³ê²½ë¨ 320 * @param userNo 321 * @param companyNm 322 * @param fullNm 323 * @param moveUrl 324 * @param inquiryUrl 325 * @param sendMailSubject 326 * @param sendMailSenderName 327 * @param callBackFunction 328 */ 329 sendAcceptWaitMail(userNo, companyNm, fullNm, moveUrl, inquiryUrl, sendMailSubject, sendMailSenderName, callBackFunction = () => {}) { 330 try { 331 const sendMailKeyValue = { 332 subject1: sendMailSubject, 333 subject2: siteNm, 334 event: siteNm, 335 companyNm: companyNm, 336 fullNm: fullNm, 337 moveUrl: moveUrl, 338 url: inquiryUrl 339 }; 340 const sendMailType = "MDC001"; 341 const sendMailTemplate = "EMC47799"; 342 343 ezpmpcommonUtil.commonFunc.sendMail(userNo, sendMailSubject, sendMailSenderName, sendMailKeyValue, sendMailTemplate, sendMailType, callBackFunction); 344 345 } catch(e) { 346 ezpmpcommonUtil.log.log("sendAcceptWaitMail", "ìì² ì¤í¨"); 347 } 348 } 349 350 /** 351 * ìë´ ìë½ ë기 ë©ì¼ ë°ì¡ (ë¤ì¤) 352 * @param listParam Array[Object] [{ userNo, companyNm, fullNm, moveUrl, inquiryUrl, sendMailSubject, sendMailSenderName }, ...] 353 * @param sendMailType 354 * @param callBackFunction 355 */ 356 sendAcceptWaitMultiMail(listParam, sendMailType = "MDC002", callBackFunction = () => {}) { 357 try { 358 // ì´ë©ì¼ í í릿 ì½ë 359 const sendMailTemplate = "EMC47799"; 360 // ë³´ë¼ ì´ë©ì¼ë¤ì langCd ëª©ë¡ 361 const langCdList = []; 362 // ì´ë©ì¼ ì ì¡ parameter 363 const mailParamList = []; 364 365 // langCd íì 366 listParam.forEach(mailParam => { 367 // langCdê° ìì ê²½ì° 368 if ((mailParam.langCd === undefined || mailParam.langCd === null) && !langCdList.includes(defaultLangCd)) { 369 langCdList.push(defaultLangCd); 370 // langCdê° ìì ê²½ì° 371 }
371 else if (!langCdList.includes(mailParam.langCd)) { 372 langCdList.push(mailParam.langCd); 373 } 374 }); 375 376 // í í릿 ê²ì í ì´ë©ì¼ ì ì¡ 377 ezpmpcommonUtil.commonFunc.getTemplateInfo(sendMailTemplate, langCdList, function(templateResult) { 378 listParam.forEach(mailParam => { 379 // langCd 380 let mailLangCd = mailParam.langCd ? mailParam.langCd : "KR"; 381 382 // í íë¦¿ì´ ìì´ì¼ ì ì¡ 383 // í´ë¹ langCdì í íë¦¿ì´ ìì¼ë©´ ì ì´ì ì ì¡ì´ ë¶ê°ë¥í¨ 384 if (templateResult.success[mailLangCd] !== undefined && templateResult.success[mailLangCd] !== null) { 385 const sendMailKeyValue = { 386 subject1: mailParam.sendMailSubject, 387 subject2: siteNm, 388 event: siteNm, 389 companyNm: mailParam.companyNm, 390 fullNm: mailParam.fullNm, 391 moveUrl: mailParam.moveUrl, 392 url: mailParam.inquiryUrl 393 }; 394 // mail api param 395 const apiParam = { 396 projectCd: properties.projectCd, 397 siteId: properties.siteId, 398 langCd: mailLangCd, 399 userNo: mailParam.userNo, 400 //emailTitle: mailParam.sendMailSubject, 401 emailTitle: templateResult.success[mailLangCd].tmplFileNm, 402 emailTypeCdForSender: sendMailTemplate, 403 emailTypeCdForTemplate: sendMailTemplate, 404 sendTypeCd: sendMailType, 405 keyValue: sendMailKeyValue, 406 senderNm: mailParam.sendMailSenderName 407 }; 408 409 mailParamList.push(apiParam); 410 } 411 }); 412 413 // ë©ì¼ ì ì¡ 414 ezpmpcommonUtil.commonFunc.sendMultiMail(mailParamList, callBackFunction); 415 }); 416 } catch(e) { 417 ezpmpcommonUtil.log.log("sendAcceptWaitMail", "ìì² ì¤í¨"); 418 } 419 } 420 421 /** 422 * ìë´ íì ë©ì¼ ë°ì¡ 423 * @param choiceNo 424 * @param userNo 425 * @param companyNo 426 * @param companyNm 427 * @param fullNm 428 * @param moveUrl 429 * @param inquiryUrl 430 * @param sendMailSubject 431 * @param sendMailSenderName 432 * @param callBackFunction 433 */ 434 sendConfirmMail(choiceNo, userNo, companyNo, companyNm, fullNm, moveUrl, inquiryUrl, sendMailSubject, sendMailSenderName, callBackFunction = () => {}) { 435 try { 436 if (choiceNo !== undefined && choiceNo !== null && choiceNo !== "") { 437 ezpmpcommonUtil.commonFunc.searchDetailDt(choiceNo, function(dateFr, dateTo) { 438 const sendMailKeyValue = { 439 subject1: sendMailSubject, 440 subject2: siteNm, 441 detailDt: dateFr + " ~ " + dateTo, 442 event: siteNm, 443 companyNm: companyNm, 444 fullNm: fullNm, 445 moveUrl: moveUrl, 446 calendarUrl: frontBaseUrl + "/" + properties.projectCd + "/" + properties.siteId + "/bizMatch/meeting/calendar.do?companyNo=" + companyNo, 447 url: inquiryUrl 448 }; 449 const sendMailType = "MDC001"; 450 const sendMailTemplate = "EMC34774"; 451 452 ezpmpcommonUtil.commonFunc.sendMail(userNo, sendMailSubject, sendMailSenderName, sendMailKeyValue, sendMailTemplate, sendMailType, callBackFunction); 453 }); 454 } else { 455 const sendMailKeyValue = { 456 subject1: sendMailSubject, 457 subject2: siteNm, 458 detailDt: "ë´ ì¤ì¼ì¤ íì¸", 459 event: siteNm, 460 companyNm: companyNm, 461 fullNm: fullNm, 462 moveUrl: moveUrl, 463 calendarUrl: frontBaseUrl + "/" + properties.projectCd + "/" + properties.siteId + "/bizMatch/meeting/calendar.do?companyNo=" + companyNo, 464 url: inquiryUrl 465 }; 466 const sendMailType = "MDC001"; 467 const sendMailTemplate = "EMC34774"; 468 469 ezpmpcommonUtil.commonFunc.sendMail(userNo, sendMailSubject, sendMailSenderName, sendMailKeyValue, sendMailTemplate, sendMailType, callBackFunction); 470 } 471 } catch(e) { 472 ezpmpcommonUtil.log.log("sendAcceptWaitMail", "ìì² ì¤í¨"); 473 } 474 } 475 476 /**
477 * ìë´ ìë½ ë기 ë©ì¼ ë°ì¡ (ì¬ë¬ê°) 478 * í´ë¹ ë©ì¼ í´ë¦ ì ë°ì ìëë°©ì´ ìë´ì ìë½íëë¡ ì ë 479 * ìë½ ì íì ëê¸°ë¡ ë³ê²½ë¨ 480 * @param listParam Array[Object] [{ choiceNo, userNo, companyNo, companyNm, fullNm, moveUrl, inquiryUrl, sendMailSubject, sendMailSenderName }, ...] 481 * @param sendMailType 482 * @param callBackFunction 483 */ 484 sendConfirmMultiMail(listParam, sendMailType = "MDC002", callBackFunction = () => {}) { 485 try { 486 // ì´ë©ì¼ í í릿 ì½ë 487 const sendMailTemplate = "EMC34774"; 488 // langCd ê¸°ë³¸ê° 489 const defaultLangCd = getCookie("lang") ? getCookie("lang").toUpperCase() : "KR"; 490 // ë³´ë¼ ì´ë©ì¼ë¤ì langCd ëª©ë¡ 491 const langCdList = []; 492 // ì´ë©ì¼ ì ì¡ parameter 493 const mailParamList = []; 494 // ë ì§ ì ë³´ 495 const detailDtApiList = []; 496 497 // langCd íì 498 listParam.forEach(mailParam => { 499 // langCdê° ìì ê²½ì° 500 if ((mailParam.langCd === undefined || mailParam.langCd === null) && !langCdList.includes(defaultLangCd)) { 501 langCdList.push(defaultLangCd); 502 // langCdê° ìì ê²½ì° 503 } else if (!langCdList.includes(mailParam.langCd)) { 504 langCdList.push(mailParam.langCd); 505 } 506 }); 507 508 // í í릿 ê²ì í ì´ë©ì¼ ì ì¡ 509 ezpmpcommonUtil.commonFunc.getTemplateInfo(sendMailTemplate, langCdList, function(templateResult) { 510 // parameter setting 511 listParam.forEach(mailParam => { 512 // langCd 513 let mailLangCd = mailParam.langCd ? mailParam.langCd : "KR"; 514 515 // í íë¦¿ì´ ìì´ì¼ ì ì¡ 516 // í´ë¹ langCdì í íë¦¿ì´ ìì¼ë©´ ì ì´ì ì ì¡ì´ ë¶ê°ë¥í¨ 517 if (templateResult.success[mailLangCd] !== undefined && templateResult.success[mailLangCd] !== null) { 518 // choiceNoê° ìë¤ë©´ detailDt를 ê²ìí´ì¼ í¨ 519 if (mailParam.choiceNo !== undefined && mailParam.choiceNo !== null && mailParam.choiceNo !== "") { 520 let detailDtApi = ezpmpcommonUtil.commonFunc.searchDetailDt(mailParam.choiceNo, function (dateFr, dateTo) { 521 // keyValue 522 const sendMailKeyValue = { 523 subject1: mailParam.sendMailSubject, 524 subject2: siteNm, 525 detailDt: dateFr + " ~ " + dateTo, 526 event: siteNm, 527 companyNm: mailParam.companyNm, 528 fullNm: mailParam.fullNm, 529 moveUrl: mailParam.moveUrl, 530 calendarUrl: frontBaseUrl + "/" + properties.projectCd + "/" + properties.siteId + "/bizMatch/meeting/calendar.do?companyNo=" + mailParam.companyNo, 531 url: mailParam.inquiryUrl 532 }; 533 // mail api param 534 const apiParam = { 535 projectCd: properties.projectCd, 536 siteId: properties.siteId, 537 userNo: mailParam.userNo, 538 langCd: mailLangCd, 539 //emailTitle: mailParam.sendMailSubject, 540 emailTitle: templateResult.success[mailLangCd].tmplFileNm, 541 emailTypeCdForSender: sendMailTemplate, 542 emailTypeCdForTemplate: sendMailTemplate, 543 sendTypeCd: sendMailType, 544 keyValue: sendMailKeyValue, 545 senderNm: mailParam.sendMailSenderName 546 }; 547 548 mailParamList.push(apiParam); 549 }); 550 551 detailDtApiList.push(detailDtApi); 552 // choiceNoê° ìë¤ë©´ detailDt를 ê²ìíì§ ìì 553 } else { 554 const sendMailKeyValue = { 555 subject1: mailParam.sendMailSubject, 556 subject2: siteNm, 557 detailDt: mailLangCd === "KR" ? "ë´ ì¤ì¼ì¤ íì¸" : "Check my schedule", 558 event: siteNm, 559 companyNm: mailParam.companyNm, 560 fullNm: mailParam.fullNm, 561 moveUrl: mailParam.moveUrl, 562 calendarUrl: frontBaseUrl + "/" + properties.projectCd + "/" + properties.siteId + "/bizMatch/meeting/calendar.do?companyNo=" + mailParam.companyNo, 563 url: mailParam.inquiryUrl 564 }; 565 // mail api param 566 const apiParam = { 567 projectCd: properties.projectCd, 568 siteId: properties.siteId, 569 userNo: mailParam.userNo, 570 langCd: mailLangCd, 571 //emailTitle: mailParam.sendMailSubject, 572 emailTitle: templateResult.success[mailLangCd].tmplFileNm, 573 emailTypeCdForSender: sendMailTemplate, 574 emailTypeCdForTemplate: sendMailTemplate, 575 sendTypeCd: sendMailType, 576 keyValue: sendMailKeyValue, 577 senderNm: mailParam.sendMailSenderName 578 }; 579 580 mailParamList.push(apiParam); 581 } 582 } 583 }); 584 585 if (detailDtApiList.length !== 0) { 586 Promise.all(detailDtApiList) 587 .then(() => { 588 ezpmpcommonUtil.commonFunc.sendMultiMail(mailParamList, callBackFunction); 589 }); 590 } else { 591 ezpmpcommonUtil.commonFunc.sendMultiMail(mailParamList, callBackFunction); 592 } 593 }); 594 // ë©ì¼ ì ì¡ 595 } catch(e) { 596 ezpmpcommonUtil.log.log("sendAcceptWaitMail", "ìì² ì¤í¨"); 597 } 598 } 599 600 /** 601 * 매ì¹ë¥ ê³ì° 602 * @param schdulNo 603 * @param companyNo 604 * @param cnslCompanyNo 605 * @param langCd 606 * @param typeNmList 607 * @param priorYn 608 * @param wishYn 609 */ 610 getMatchScore(schdulNo, companyNo, cnslCompanyNo, langCd, typeNmList = ["companyCategory", "companyDetailCategory", "interestCategoryCompany"], priorYn = "Y", wishYn = "Y") { 611 try { 612 const apiParam = { 613 projectCd: properties.projectCd, 614 siteId: properties.siteId, 615 langCd: langCd, 616 schdulNo: schdulNo, 617 companyNo: companyNo, 618 cnslCompanyNo: cnslCompanyNo, 619 typeNmList: typeNmList, 620 /*userPartCd: userPartCd,*/ 621 priorYn: priorYn, 622 wishYn: wishYn, 623 isExcludeStatusCdYn: "N" 624 }; 625 626 return ezpmpcommonUtil.apiCall.callApiAxiosAsync(apiPaths.consultApi + `/matching/single/batch`, HTTPMETHOD.POST, apiParam, 'json'); 627 } catch(e) { 628 ezpmpcommonUtil.log.log("getMatchScore", "ìì² ì¤í¨"); 629 } 630 } 631 632 /** 633 * 매ì¹ë¥ ê³ì° í ì ë°ì´í¸ 634 * @param schdulNo 635 * @param choiceNo 636 * @param companyNo 637 * @param cnslCompanyNo 638 * @param langCd 639 * @param typeNmList 640 * @param priorYn 641 * @param wishYn 642 * @param callbackFunction 643 */ 644 updateMatchScore(schdulNo, choiceNo, companyNo, cnslCompanyNo, langCd, typeNmList = ["companyCategory", "companyDetailCategory", "interestCategoryCompany"], priorYn = "Y", wishYn = "Y", callbackFunction = () => {}) { 645 ezpmpcommonUtil.commonFunc.getMatchScore(schdulNo, companyNo, cnslCompanyNo, langCd, typeNmList, priorYn, wishYn) 646 .then(returnValue => { 647 if (!!returnValue) { 648 // ìëµ ì±ê³µ 649 if (returnValue.responseCode === RESPONSVALUE.SUCCESS) { 650 if (returnValue.responseData.data.data.matchingList !== undefined 651 && returnValue.responseData.data.data.matchingList !== null 652 && returnValue.responseData.data.data.matchingList.length > 0) { 653 654 const { matchingScore } = returnValue.responseData.data.data.matchingList[0]; 655 656 try { 657 const apiParam = { 658 choiceNo: choiceNo, 659 matchingScore: matchingScore 660 }; 661 662 ezpmpcommonUtil.apiCall.callApi(apiPaths.consultApi + "/matching/single/update", HTTPMETHOD.POST, apiParam, function(returnValue) { 663 if (!!returnValue) { 664 // ìëµ ì±ê³µ 665 if (returnValue.responseCode === RESPONSVALUE.SUCCESS) { 666 callbackFunction(); 667 // ìëµ ì¤í¨ 668 } else if (returnValue.responseCode === RESPONSVALUE.FAIL) { 669 ezpmpcommonUtil.log.log("updateMatchScoreForUpdate", "ìì² ì¤í¨"); 670 // ê·¸ ì¸ 671 } else { 672 ezpmpcommonUtil.log.log("updateMatchScoreForUpdate", "ìì² ì¤í¨"); 673 } 674 } 675 }); 676 } catch(e) { 677 ezpmpcommonUtil.log.log("updateMatchScoreForUpdate", "ìì² ì¤í¨"); 678 } 679 } else { 680 callbackFunction(); 681 } 682 // ìëµ ì¤í¨ 683 } else if (returnValue.responseCode === RESPONSVALUE.FAIL) { 684 ezpmpcommonUtil.log.log("updateMatchScoreForGet", "ìì² ì¤í¨"); 685 // ê·¸ ì¸ 686 } else { 687 ezpmpcommonUtil.log.log("updateMatchScoreForGet", "ìì² ì¤í¨"); 688 } 689 } 690 }); 691 } 692 693 /** 694 * ì¤ì¼ì¤ ì¡°í 695 * @param autoMatchNotUseCheck 주ì 매ì¹ì ìºë¦°ëì 미í¬í¨ ìí¬ ì§ì ëí ì¬ë¶ 696 * @param callbackFunction 697 * @param failFunction 698 */
699 getSchedule(autoMatchNotUseCheck = true, callbackFunction = () => {}, failFunction = () => {}) { 700 try { 701 const schedulePage = 0; 702 const scheduleSize = 9999; 703 // request parameter 704 const apiParam = { 705 searchProjectCd: properties.projectCd, 706 searchSiteId: properties.siteId, 707 searchUseYn: "Y", 708 searchDelYn: "N", 709 page: schedulePage, 710 size: scheduleSize 711 }; 712 713 ezpmpcommonUtil.apiCall.callApiAxiosAsync(apiUrls.consultApi + "/tb/schdul", HTTPMETHOD.GET, apiParam, null, false) 714 .then(returnValue => { 715 if (!!returnValue) { 716 // ìëµ ì±ê³µ 717 if (returnValue.responseCode === RESPONSVALUE.SUCCESS) { 718 if (returnValue.responseData.data?.totalCount && returnValue.responseData.data?.totalCount > 0) { 719 const { schdulList } = returnValue.responseData.data; 720 721 if (schdulList?.length > 0) { 722 if (autoMatchNotUseCheck) { 723 let autoMatchNotUseSchdulList = schdulList.filter(schdul => schdul?.waitYn === "N"); 724 725 if (autoMatchNotUseSchdulList?.length > 0) { 726 callbackFunction(autoMatchNotUseSchdulList); 727 } else { 728 failFunction(); 729 } 730 } else { 731 callbackFunction(schdulList); 732 } 733 } else { 734 failFunction(); 735 } 736 } else { 737 failFunction(); 738 } 739 // ìëµ ì¤í¨ 740 } else if (returnValue.responseCode === RESPONSVALUE.FAIL) { 741 alert(bizMatchingErrorHandle(returnValue.responseData.data?.detailMessage)); 742 ezpmpcommonUtil.log.log("getSchedule", "ìì² ì¤í¨"); 743 // ê·¸ ì¸ 744 } else { 745 alert(bizMatchingErrorHandle(returnValue.responseData.data?.detailMessage)); 746 ezpmpcommonUtil.log.log("getSchedule", "ìì² ì¤í¨"); 747 } 748 } 749 }); 750 } catch(e) { 751 ezpmpcommonUtil.log.log("getSchedule", "ìì² ì¤í¨"); 752 } 753 } 754 755 /** 756 * ì§íí´ì¼í ì¼ì ì ê³ì°íì¬ ë°í 757 * @param autoMatchType ë§¤ì¹ íì (free: ìì¨, auto: 주ì ) 758 * @param dateCriterion ë ì§ ë¹êµ ê¸°ì¤ (apply: ì ì²ì¼, schdul: ì§íì¼) 759 * @param callback 760 * @param fail 761 */ 762 getNowSchedule(autoMatchType = null, dateCriterion = "apply", callback = () => {}, fail = () => {}) { 763 // validation ì²´í¬ì© 764 let dateCriterionList = ["apply", "schdul"]; 765 // ììì¼ ê¸°ì¤ 766 let startDateKey = "applyFrDt"; 767 // ì¢ ë£ì¼ ê¸°ì¤ 768 let endDateKey = "applyToDt"; 769 770 if (!dateCriterionList.includes(dateCriterion)) { 771 ezpmpcommonUtil.log.log("getNowSchedule", "ì못ë dateCriterion ë³ì"); 772 return; 773 } 774 775 // ììì¼ê³¼ ì¢ ë£ì¼ ê¸°ì¤ ì¤ì 776 switch (dateCriterion) { 777 case "apply": 778 startDateKey = "applyFrDt"; 779 endDateKey = "applyToDt"; 780 break; 781 case "schdul": 782 startDateKey = "schdulFrDt"; 783 endDateKey = "schdulToDt"; 784 break; 785 } 786 787 let getScheduleSuccess = (schdulList) => { 788 const nowDate = ezpmpcommonUtil.commonFunc.dateFormat(new Date(), "YYYYMMDD"); 789 let useSchdulList = schdulList; 790 // ì§íì¤ì¸ ì¼ìë§ íí°ë§ 791 let inRangeSchdulList = useSchdulList.filter((schdul, index) => { 792 let schdulStartDate = schdul?.[startDateKey]; 793 let schdulEndDate = schdul?.[endDateKey]; 794 795 return ezpmpcommonUtil.commonFunc.isDateInRange(nowDate, schdulStartDate, schdulEndDate); 796 }); 797 let useSchdulForType = { 798 "BTC001": null, 799 "BTC002": null, 800 "BTC003": null 801 } 802 let useSchdulRange = { 803 "BTC001": null, 804 "BTC002": null, 805 "BTC003": null 806 } 807 808 switch (autoMatchType) { 809 // 주ì 매ì¹ë§ ê°ì ¸ì¬ ê²½ì° 810 case "auto": 811 inRangeSchdulList = inRangeSchdulList.filter(schdul => schdul?.waitYn === "Y"); 812 break; 813 // ìì¨ ë§¤ì¹ë§ ê°ì ¸ì¬ ê²½ì° 814 case "free": 815 inRangeSchdulList = inRangeSchdulList.filter(schdul => schdul?.waitYn === "N"); 816 break; 817 } 818 819 if (inRangeSchdulList?.length > 1) { 820 let checkIdx = 0; 821 let checkRange = 9999; 822 823 for (let i = 0; i < inRangeSchdulList.length; i++) { 824 let schdulStartDate; 825 let schdulEndDate; 826 let schdulRange; 827 828 // ììì¼ê³¼ ì¢ ë£ì¼ ê¸°ë¡ 829 schdulStartDate = inRangeSchdulList[i]?.[startDateKey];
830 schdulEndDate = inRangeSchdulList[i]?.[endDateKey]; 831 832 // ì¼ìê° ìë ì¼ì ì´ í¬í¨ëìì¼ë©´ ì²ë¦¬ ì¤í¨ ë¡ì§ ë¶ê¸° 833 if (!schdulStartDate || !schdulEndDate) { 834 ezpmpcommonUtil.log.log("getNowSchedule", "ì¼ì ì ë³´ ìì"); 835 fail(); 836 return; 837 } 838 839 // ë ì§ ì°¨ì´ ê¸°ë¡ 840 schdulRange = ezpmpcommonUtil.commonFunc.diffDay(nowDate, schdulStartDate); 841 842 // ë§ì½ ì¼ì ì ììì¼ì´ 기ë¡ë ê°ë³´ë¤ ë ê°ê¹ë¤ë©´ ì¬í ë¹ 843 // 첫ë²ì§¸êº¼ë ê·¸ë¥ ë£ì 844 if (i === 0 || schdulRange < checkRange) { 845 checkIdx = i; 846 } 847 848 // ì¨/ì¤íë¼ì¸ ì íë³ë¡ ì¬ì©í ì¼ì ì ì ì¥ 849 // íì¬ ììì¼ì´ ë ê°ê¹ì´ ë ì§ ê¸°ì¤ 850 switch (inRangeSchdulList[i].consultingTypeCd) { 851 // ì¨ë¼ì¸ 852 case "BTC001": 853 if (!useSchdulRange["BTC001"] || schdulRange < useSchdulRange["BTC001"]) { 854 useSchdulForType["BTC001"] = inRangeSchdulList[i]; 855 useSchdulRange["BTC001"] = schdulRange; 856 } 857 break; 858 // ì¤íë¼ì¸ 859 case "BTC002": 860 if (!useSchdulRange["BTC002"] || schdulRange < useSchdulRange["BTC002"]) { 861 useSchdulForType["BTC002"] = inRangeSchdulList[i]; 862 useSchdulRange["BTC002"] = schdulRange; 863 } 864 break; 865 // ì¨/ì¤íë¼ì¸ 866 case "BTC003": 867 if (!useSchdulRange["BTC001"] || schdulRange < useSchdulRange["BTC001"]) { 868 useSchdulForType["BTC001"] = inRangeSchdulList[i]; 869 useSchdulRange["BTC001"] = schdulRange; 870 } 871 if (!useSchdulRange["BTC002"] || schdulRange < useSchdulRange["BTC002"]) { 872 useSchdulForType["BTC002"] = inRangeSchdulList[i]; 873 useSchdulRange["BTC002"] = schdulRange; 874 } 875 if (!useSchdulRange["BTC003"] || schdulRange < useSchdulRange["BTC003"]) { 876 useSchdulForType["BTC003"] = inRangeSchdulList[i]; 877 useSchdulRange["BTC003"] = schdulRange; 878 } 879 break; 880 } 881 } 882 883 callback(inRangeSchdulList[checkIdx], useSchdulForType); 884 } else if (inRangeSchdulList?.length === 1) { 885 useSchdulForType[inRangeSchdulList[0].consultingTypeCd] = inRangeSchdulList[0]; 886 callback(inRangeSchdulList[0], useSchdulForType); 887 } else { 888 fail(); 889 } 890 }; 891 let getScheduleFail = () => { 892 fail(); 893 }; 894
895 this.getSchedule(false, getScheduleSuccess, getScheduleFail); 896 } 897 898 /** 899 * ìºë¦°ë ì¼ì í ë§ë¤ê¸° 900 * @param calendarTabId ìºë¦°ë í element id 901 * @param applyDateCheck ì ì² ê¸°ê° íì¸ (true: ì ì² ê¸°ê°ì¸ì§ íì¸í¨, false: íì¸íì§ ìì) 902 * @param autoMatchNotUseCheck 주ì 매ì¹ì ìºë¦°ëì 미í¬í¨ ìí¬ ì§ì ëí ì¬ë¶ 903 * @param callbackFunction 904 * @param failFunction 905 */ 906 createCalendarTab(calendarTabId, applyDateCheck = true, autoMatchNotUseCheck = true, callbackFunction = () => {}, failFunction = () => {}) { 907 const calendarTab = document.getElementById(calendarTabId); 908 909 if (calendarTab) { 910 // í 그리기 911 const createFunction = (schdulList) => { 912 // íì±íë ì¤ì¼ì¤ ë²í¸ 913 let activeSchdulNo; 914 915 calendarTab.innerHTML = ""; 916 917 schdulList.map((schedule, idx) => { 918 let today = ezpmpcommonUtil.commonFunc.getDate(); 919 // ì¤ì¼ì¤ì ììì¼ê³¼ ì¢ ë£ì¼ ì¬ì´ì ìì ê²½ì° ì§í 920 if (!applyDateCheck 921 || (ezpmpcommonUtil.commonFunc.isBforeDate(schedule.applyFrDt, today) && ezpmpcommonUtil.commonFunc.isAfterDate(schedule.applyToDt, today)) 922 || ezpmpcommonUtil.commonFunc.isSameDate(schedule.applyFrDt, today) 923 || ezpmpcommonUtil.commonFunc.isSameDate(schedule.applyToDt, today)) { 924 925 // li 926 let tabLiParam = { 927 "elementType": "li", 928 "elementData": { 929 "id": "schdulNo_" + schedule.schdulNo, 930 "class": !activeSchdulNo ? ["active"] : "", 931 "name": "scheduleNo", 932 "value": schedule.schdulNo, 933 "data-tab": schedule.consultingTypeCd, 934 "data-disp-conf-only": schedule.dispConfOnly, 935 "data-wait-yn": schedule.waitYn 936 } 937 }; 938 // a 939 let tabAParam = { 940 "elementType": "a", 941 "elementData": { 942 "href": "javascript:void(0);", 943 "text": schedule.schdulName 944 } 945 } 946 947 let tabLi = ezpmpcommonUtil.commonFunc.createElementParam(tabLiParam); 948 let tabA = ezpmpcommonUtil.commonFunc.createElementParam(tabAParam); 949 950 tabLi.append(tabA); 951 calendarTab.append(tabLi); 952 953 if (!activeSchdulNo) { 954 activeSchdulNo = schedule.schdulNo; 955 } 956 } 957 }); 958 959 if (activeSchdulNo) { 960 callbackFunction(schdulList, activeSchdulNo); 961 } else { 962 failFunction(); 963 } 964 }; 965 966 ezpmpcommonUtil.commonFunc.getSchedule(autoMatchNotUseCheck, createFunction, failFunction) 967 } else { 968 failFunction(); 969 ezpmpcommonUtil.log.log("createCalendarTab", "ìì²ë element를 ì°¾ì ì ìì"); 970 } 971 } 972 973 /** 974 * ìºë¦°ë ì¼ì í ë§ë¤ê¸° 975 * @param calendarParams (Object) 976 * schdulNo (Number) ì¤ì¼ì¤ ë²í¸ 977 * detailNo (Number) ì¼ì íì íìí íì¬ ì¼ì ì ìê° ë²í¸ 978 * applicantUserNo (Number) ì ì²ì ì ì ë²í¸ 979 * counselorUserNo (Number) ìë´ì ì ì ë²í¸ 980 * timeElementId (String) ì¼ìª½ ìê° ì ë³´ element id 981 * subTitleElementId (String) ë ì§ ìì ìë ê¸°ê° ì ë³´ element id 982 * calendarElementId (String) ë¬ë ¥ì´ ê·¸ë ¤ì§ element id 983 * searchGmt (String) GMT Time ì½ë (KST: GMT069) 984 * blockText (String) ë¸ë½ì¼ ê²½ì° ë³´ì¬ì¤ í ì¤í¸ 985 * confirmedBlockText (String) ìë´ íì ì¼ ê²½ì° ë³´ì¬ì¤ í ì¤í¸ 986 * blockSlotList (Array[Object]) íëì½ë©ëì´ ë¸ë¡ë ìê° 987 * - ex) blockSlotList = [{ startTime: "2024-09-08 16:00", endTime: "2024-09-08 16:30" }] 988 * searchStatus (Object) ìºë¦°ëì ë³´ì¬ì¤ statusCdë³ text 989 * - ex) searchStatus = { "STS001": "Pending", "STS002": "Confirmed" } 990 * caseText (String) ë기, íì ë±ì 미í ì´ ëª ê±´ ì¡´ì¬íëì§ í기í í ì¤í¸ 991 * companyNameViewUse (Boolean) true: 1ê±´ë§ ìì ê²½ì° ê¸°ì ëª ì ë ¸ì¶ 992 * @param callbackFunction 993 * @param failFunction 994 */ 995 createCalendar(calendarParams, callbackFunction = () => {}, failFunction = () => {}) { 996 const MY_CALENDAR_USER_TYPE_APPLICANT = 1; 997 const MY_CALENDAR_USER_TYPE_COUNSELOR = 2; 998 const MY_CALENDAR_USER_TYPE_OTHER = 3; 999 let myUserType = 0; 1000 let { 1001 schdulNo, 1002 detailNo, 1003 applicantUserNo, 1004 counselorUserNo, 1005 timeElementId = "start_time_list", 1006 subTitleElementId = "calendarSubTitle", 1007 calendarElementId = "schedule_list", 1008 searchGmt = "GMT069", 1009 blockText = "Unavailable Time (Block)", 1010 confirmedBlockText = "Unavailable Time", 1011 blockSlotList = [], 1012 searchStatus, 1013 caseText = "", 1014 companyNameViewUse = false, 1015 meetingPlaceUseText = "미í íë ì´ì¤ ì¬ì©ì¤", 1016 meetingPlaceNo, 1017 refreshTimeText = "Refresh time", 1018 previousTimeBlock = false, 1019 previousTimeBlockText = "Unavailable Time (Block)" 1020 } = calendarParams; 1021 let callbackParam = { 1022 applicantUserMeetingList: [], 1023 counselorUserMeetingList: [], 1024 meetFrTimeFm: "", 1025 meetToTimeFm: "", 1026 meetingPlaceThisTimeUseCheck: true 1027 }; 1028 // 미í íë ì´ì¤ì ë°°ì ë ë ì§ ì ë³´ ë¶ë¬ì¤ê¸° 1029 let meetingPlaceLoad = (meetingPlaceCallback) => { 1030 // ì ë ¥ë 미í íë ì´ì¤ê° ìì¼ë©´ ì 보를 ë¶ë¬ì¨ ë¤ ìºë¦°ë를 ìì± 1031 if (meetingPlaceNo) { 1032 let meetingPlaceParams = { 1033 page: 0, 1034 size: 1, 1035 meetingPlaceNo: meetingPlaceNo, 1036 delYn: "N", 1037 useYn: "Y" 1038 } 1039 ezpmpcommonUtil.commonFunc.loadMeetingPlaceList(meetingPlaceParams, meetingPlaceCallback, meetingPlaceCallback); 1040 // ìì¼ë©´ 기존 ë¡ì§ ì§í 1041 } else { 1042 meetingPlaceCallback(); 1043 } 1044 } 1045 1046 if (!schdulNo) { 1047 ezpmpcommonUtil.log.log("createCalendar", "schdulNo (ì¤ì¼ì¤ ë²í¸) ëë½"); 1048 return; 1049 } 1050 1051 if (!applicantUserNo) { 1052 ezpmpcommonUtil.log.log("createCalendar", "applicantUserNo (ì ì²ì ì ì ë²
1052í¸) ëë½"); 1053 return; 1054 } 1055 1056 if (properties.userNo == applicantUserNo) { 1057 myUserType = MY_CALENDAR_USER_TYPE_APPLICANT; 1058 } else if (counselorUserNo && properties.userNo == counselorUserNo) { 1059 myUserType = MY_CALENDAR_USER_TYPE_COUNSELOR; 1060 } else { 1061 myUserType = MY_CALENDAR_USER_TYPE_OTHER; 1062 } 1063 1064 try { 1065 meetingPlaceLoad(function(meetingPlaceData = null) { 1066 let meetingPlaceUseDateList; 1067 let defaultLangCd = properties.langCd; 1068 let replaceLangCd = "EN"; 1069 let searchGmtNatCd = properties.langCd; 1070 let searchStatusArray = searchStatus ? Object.keys(searchStatus) : []; 1071 // ì¤ì¼ì¤ ì¡°í 1072 let schdulInfoAPI = apiUrls.consultApi + "/tb/schdul/get?page=0&size=9999"; 1073 let schdulInfoParam = { 1074 searchSchdulNo: schdulNo, 1075 searchProjectCd: properties.projectCd, 1076 searchSiteId: properties.siteId 1077 }; 1078 // ì ì²ì 1079 let applicantUserMeetingAPI = apiUrls.consultApi + "/account-meeting/schdul/" + schdulNo + "/" + applicantUserNo; 1080 let applicantUserMeetingManageAPI = apiUrls.consultApi + "/meeting-manage/" + applicantUserNo + "/meeting"; 1081 let applicantUserMeetingParam = { 1082 projectCd: properties.projectCd, 1083 siteId: properties.siteId, 1084 schdulNo: schdulNo, 1085 selUserNo: applicantUserNo, 1086 defaultLangCd: defaultLangCd, 1087 replaceLangCd: replaceLangCd, 1088 searchGmtNatCd: searchGmtNatCd, 1089 searchGmt: searchGmt 1090 }; 1091 let applicantUserMeetingManageParam = { 1092 projectCd: properties.projectCd, 1093 siteId: properties.siteId, 1094 page: 0, 1095 size: 9999, 1096 searchGmt: searchGmt 1097 }; 1098 1099 // 미í íë ì´ì¤ì ë°°ì ë ìê° ì ì¥ 1100 if (meetingPlaceData?.list[0]?.meetingPlaceDetailList[0]?.meetingPlaceDetailSubList.length > 0) { 1101 meetingPlaceUseDateList = {}; 1102 1103 meetingPlaceData.list[0].meetingPlaceDetailList[0].meetingPlaceDetailSubList.forEach(placeDetailSub => { 1104 let dateKey = ezpmpcommonUtil.commonFunc.baseDateFormat(placeDetailSub.meetFrDateTimeFm, "YYYY-MM-DD"); 1105 if (meetingPlaceUseDateList[dateKey]) { 1106 meetingPlaceUseDateList[dateKey] = [...meetingPlaceUseDateList[dateKey], placeDetailSub]; 1107 } else { 1108 meetingPlaceUseDateList[dateKey] = [placeDetailSub]; 1109 } 1110 }); 1111 } 1112 1113 // ë§ì½ ë기/íì ì ê²ìíë¤ë©´ 1114 1115 /** 1116 * ì¤ì¼ì¤ ì¡°í api 1117 * ì ì²ìì ìë´ìì ì 보를 ì»ì´ì ë°ì 1118 * ì ììê° ì ì²ìì¼ ìë ìê³ , ìë´ìì¼ ìë ì기 ë문ì ì·¨ê¸ì 주ìê° íìíë¤ 1119 * STSì½ëë statusMapì´ nullì´ ìëë¼ë©´ íì¸íë©´ ëë¤ 1120 * ë¸ë¡í¹ì´ ëì´ìëì§ ì¬ë¶ë schdulStatus를 íì¸íë©´ ëë¤ 1121 * ë¸ë¡í¹ì´ ëì´ìë¤ë©´ responseì 미í ì ë³´ì schdulStatusê° Yë¡ ëì´ ìì ê±°ë¤ 1122 * ë°ëë¡ ë¸ë¡í¹ì´ ìëì´ìë¤ë©´ schdulStatusê° Nì¼ë¡ ëì´ ìì ê±°ë¤ 1123 * ë¸ë¡í¹ê³¼ statusMapì ê´ë ¨ì´ ìë¤ 1124 * @type {Promise<null>[]} 1125 */ 1126 let apiList = [ 1127 ezpmpcommonUtil.apiCall.callApiAxiosAsync(schdulInfoAPI, HTTPMETHOD.POST, schdulInfoParam), 1128 ezpmpcommonUtil.apiCall.callApiAxiosAsync(applicantUserMeetingAPI, HTTPMETHOD.POST, applicantUserMeetingParam), 1129 ezpmpcommonUtil.apiCall.callApiAxiosAsync(applicantUserMeetingManageAPI, HTTPMETHOD.GET, applicantUserMeetingManageParam) 1130 ]; 1131 1132 // ìë´ìë ì¡°íí ì ì¶ê° ì¡°í 1133 if (counselorUserNo) { 1134 // ìë´ì
1135 let counselorUserMeetingAPI = apiUrls.consultApi + "/account-meeting/schdul/" + schdulNo + "/" + counselorUserNo; 1136 let counselorUserMeetingManageAPI = apiUrls.consultApi + "/meeting-manage/" + counselorUserNo + "/meeting"; 1137 let counselorUserMeetingParam = { 1138 projectCd: properties.projectCd, 1139 siteId: properties.siteId, 1140 schdulNo: schdulNo, 1141 selUserNo: counselorUserNo, 1142 defaultLangCd: defaultLangCd, 1143 replaceLangCd: replaceLangCd 1144 }; 1145 let counselorUserMeetingManageParam = { 1146 projectCd: properties.projectCd, 1147 siteId: properties.siteId, 1148 page: 0, 1149 size: 9999, 1150 searchGmt: searchGmt 1151 }; 1152 1153 apiList.push(ezpmpcommonUtil.apiCall.callApiAxiosAsync(counselorUserMeetingAPI, HTTPMETHOD.POST, counselorUserMeetingParam)); 1154 apiList.push(ezpmpcommonUtil.apiCall.callApiAxiosAsync(counselorUserMeetingManageAPI, HTTPMETHOD.GET, counselorUserMeetingManageParam)); 1155 } 1156 1157 // success function 1158 const apiSuccess = (returnValueList) => { 1159 if (!!returnValueList) { 1160 // applicantReturnValue: ì ì²ìì ì¼ì ì ë³´ 1161 // applicantManageReturnValue: ì ì²ìê° ë³´ì í ì¼ì ëª©ë¡ 1162 // counselorReturnValue: ìë´ìì ì¼ì ì ë³´ 1163 // counselorManageReturnValue: ìë´ìê° ë³´ì í ì¼ì ëª©ë¡ 1164 const [ schdulInfoReturnValue, applicantReturnValue, applicantManageReturnValue, counselorReturnValue, counselorManageReturnValue ] = returnValueList; 1165 let apiResponseCode = RESPONSVALUE.SUCCESS; 1166 1167 returnValueList.forEach(returnValue => { 1168 if (returnValue) { 1169 // ì´ë ê²ì´ë¼ë api í¸ì¶ì ì¤í¨íë¤ë©´ 1170 if (apiResponseCode === RESPONSVALUE.FAIL || returnValue.responseCode === RESPONSVALUE.FAIL) { 1171 apiResponseCode = RESPONSVALUE.FAIL; 1172 // ì¤í¨í apiê° ì¡´ì¬íì§ ìëë° SUCCESSê° ìë ê² ë¼ì´ìë¤ë©´ 1173 } else if (returnValue.responseCode !== RESPONSVALUE.SUCCESS) { 1174 apiResponseCode = returnValue.responseCode; 1175 } 1176 } 1177 }); 1178 1179 // ì±ê³µ 1180 if (apiResponseCode === RESPONSVALUE.SUCCESS) { 1181 // ìê° ëª©ë¡ì´ ìì±ë element 1182 const startTimeListHTML = document.getElementById(timeElementId); 1183 // ì¼ì ì 목 1184 const calendarSubTitleHTML = document.getElementById(subTitleElementId); 1185 // ì¼ì 목ë¡ì´ ìì±ë element 1186 const scheduleListHTML = document.getElementById(calendarElementId); 1187 // ì¤ì¼ì¤ ì ë³´ 1188 let schdulInfo = schdulInfoReturnValue?.responseData?.data; 1189 // ì¤ì¼ì¤ ì ë³´ë¤ 1190 let { schdulList: schdulDataList } = schdulInfo; 1191 // ì ì²ìì ì ë³´ 1192 let myMeetingInfo = applicantReturnValue?.responseData?.data; 1193 // ì ì²ìì ì ë³´ë¤ 1194 let { accountMeetingList: myMeetingList, schdulList, timeList } = myMeetingInfo; 1195 // ìë´ìì ì ë³´ 1196 let otherMeetingInfo; 1197 // ìë´ìì ì ë³´ 1198 let otherMeetingList; 1199 // ì ì²ìì ì¼ì ëª©ë¡ 1200 let calendarMeetingList = {}; 1201 // ìë´ìì ì¼ì ëª©ë¡ 1202 let otherCalendarMeetingList = {}; 1203 // refresh time start 1204 let refreshStartTime; 1205 // refresh time end 1206 let refreshEndTime; 1207 // íì¬ ìê° 1208 let nowDateTime = ezpmpcommonUtil.commonFunc.dateFormat(new Date(), "YYYY-MM-DD HH:mm"); 1209 1210 // refresh time setting 1211 if (schdulDataList?.[0]?.refreshStartTime && schdulDataList[0].refreshStartTime.length === 4) { 1212 refreshStartTime = schdulDataList[0].refreshStartTime.substr(0, 2) + ":" + schdulDataList[0].refreshStartTime.substr(2, 4); 1213 } 1214 // refresh time setting 1215 if (schdulDataList?.[0]?.refreshEndTime && schdulDataList[0].refreshEndTime.length === 4) { 1216 refreshEndTime = schdulDataList[0].refreshEndTime.substr(0, 2) + ":" + schdulDataList[0].refreshEndTime.substr(2, 4); 1217 } 1218 1219 // ì ì²ìì ì¼ì ì ì¡°í 1220 if (applicantManageReturnValue && applicantManageReturnValue?.responseData?.data?.list) { 1221 applicantManageReturnValue.responseData.data.list.forEach(meeting => { 1222 // detailNoì í´ë¹íë 미í ì´ ì ì¥ëê² ìë¤ë©´ statusë³ë¡ ì 리í´ì ë£ì´ì¤ ììì ë£ì´ì¤ 1223 if (!calendarMeetingList[meeting?.detailNo]) { 1224 calendarMeetingList[meeting?.detailNo] = {}; 1225 } 1226 // ì ì¥ë statusê° ìë¤ë©´ status를 ë£ì´ì¤ 1227 if (!calendarMeetingList[meeting?.detailNo][meeting?.statusCd]) { 1228 calendarMeetingList[meeting?.detailNo][meeting?.statusCd] = []; 1229 } 1230 1231 // detailNoì í´ë¹íë statusë³ ë¯¸í ì ë£ì´ì¤ 1232 calendarMeetingList[meeting.detailNo][meeting?.statusCd].push(meeting); 1233 }); 1234 1235 callbackParam.applicantUserMeetingList = calendarMeetingList; 1236 } 1237 1238 // ìë´ìì ì 보를 ì¡°ííì ê²½ì°ìë§ ê°ì ê°ì ¸ì
1238¤ê¸° 1239 if (counselorReturnValue) { 1240 otherMeetingInfo = counselorReturnValue?.responseData?.data; 1241 otherMeetingList = otherMeetingInfo?.accountMeetingList; 1242 1243 // ìë´ìì ì¼ì ì ì¡°í 1244 if (counselorManageReturnValue && counselorManageReturnValue?.responseData?.data?.list) { 1245 counselorManageReturnValue.responseData.data.list.forEach(meeting => { 1246 // detailNoì í´ë¹íë 미í ì´ ì ì¥ëê² ìë¤ë©´ statusë³ë¡ ì 리í´ì ë£ì´ì¤ ììì ë£ì´ì¤ 1247 if (!otherCalendarMeetingList[meeting?.detailNo]) { 1248 otherCalendarMeetingList[meeting?.detailNo] = {}; 1249 } 1250 // ì ì¥ë statusê° ìë¤ë©´ status를 ë£ì´ì¤ 1251 if (!otherCalendarMeetingList[meeting?.detailNo][meeting?.statusCd]) { 1252 otherCalendarMeetingList[meeting?.detailNo][meeting?.statusCd] = []; 1253 } 1254 1255 // detailNoì í´ë¹íë statusë³ ë¯¸í ì ë£ì´ì¤ 1256 otherCalendarMeetingList[meeting.detailNo][meeting?.statusCd].push(meeting); 1257 }); 1258 } 1259 1260 callbackParam.counselorUserMeetingList = otherCalendarMeetingList; 1261 } 1262 1263 // element ì´ê¸°í 1264 startTimeListHTML.innerHTML = ""; 1265 scheduleListHTML.innerHTML = ""; 1266 1267 // ë¬ë ¥ 그리기 ìì 1268 if (myMeetingList && schdulList && timeList) { 1269 // ë ì§ë³ element ì ì¥ 1270 let calendarElements = {}; 1271 // ì¼ì ì ë ¬ 1272 myMeetingList.sort((a, b) => a.rnum - b.rnum); 1273 1274 // ìë´ì ì ë³´ê° ìë¤ë©´ 1275 if (otherMeetingList) { 1276 otherMeetingList.sort((a, b) => a.rnum - b.rnum); 1277 } 1278 1279 // ì°ì ë ì§ë³ë¡ li ìì± 1280 schdulList.forEach(schdul => { 1281 const dateDivParam = { 1282 "elementType": "div", 1283 "elementData": { 1284 "class": "i_date", 1285 "text": ezpmpcommonUtil.commonFunc.dateFormat(schdul?.schdulDt, "YYYY-MM-DD ddd", dateLang) 1286 } 1287 }; 1288 const itemOlParam = { 1289 "elementType": "ol", 1290 "elementData": { 1291 "class": "i_item_wrap" 1292 } 1293 }; 1294 1295 let dateDiv = ezpmpcommonUtil.commonFunc.createElementParam(dateDivParam); 1296 let itemOl = ezpmpcommonUtil.commonFunc.createElementParam(itemOlParam); 1297 1298 calendarElements[schdul?.schdulDt] = { 1299 "dateDiv": dateDiv, 1300 "itemOl": itemOl 1301 }; 1302 }); 1303 1304 // ë¬ë ¥ ì 목 1305 // ì¼ë¨ 기íìëë¡ ë ì§ë¥¼ ì 기 1306 if (calendarSubTitleHTML) { 1307 calendarSubTitleHTML.innerText = ezpmpcommonUtil.commonFunc.dateFormat(schdulList[0]?.schdulDt, "YYYY-MM-DD ddd", dateLang); 1308 1309 if (schdulList.length > 1) { 1310 calendarSubTitleHTML.innerText += " ~ "; 1311 calendarSubTitleHTML.innerText += ezpmpcommonUtil.commonFunc.dateFormat(schdulList[schdulList.length - 1]?.schdulDt, "YYYY-MM-DD ddd", dateLang); 1312 } 1313 } 1314 1315 // ì¼ì ì 리 1316 for (let i = 0; i < myMeetingList.length; i++) { 1317 // íëì½ë© ë¸ë½ íì¸ì© 1318 // trueë©´ "íëì½ë©ì ìí´" ë¸ë½ë ê² 1319 let blockCheck = false; 1320 // refresh time íì¸ì© 1321 let refreshCheck = false; 1322 // ì¬ì©ì´ ê°ë¥íì§ ì¬ë¶(ë¸ë¡ ë° íì ì ìí ì¬ì© ê°ë¥ ì¬ë¶, íëì½ë© ìë) 1323 let useCheck = true; 1324 // 미í íë ì´ì¤ìì ì¬ì©ì¤ì¸ ìê°ì¸ì§ íì¸ì©
1325 let meetingPlaceUseCheck = false; 1326 // 미í íë ì´ì¤ìì ì¬ì©ì¤ì¸ ì¼ì ë²í¸ 1327 //let meetingPlaceUseChoiceNo = ""; 1328 // apiìì ì 리를 í´ì ë³´ë´ì£¼ê³ , ì ë ¬ë íë² ë ê±°ì³ì ê·¸ë´ ì¼ì´ ìê² ì§ë§ 1329 // ë§ì íë ë ìºë¦°ëê° ìë¡ ë¤ë¥¸ 걸 ë°ë¼ë³¸ë¤ë©´ ì§íì´ ëë©´ ìëë¤ 1330 if (otherMeetingList && myMeetingList[i]?.detailNo !== otherMeetingList[i]?.detailNo) { 1331 failFunction(); 1332 break; 1333 } 1334 1335 let itemLiParam = { 1336 "elementType": "li", 1337 "elementData": {} 1338 }; 1339 let itemDivParam = { 1340 "elementType": "div", 1341 "elementData": { 1342 "class": ["i_item"], 1343 "data-place-choice-no": "", 1344 "onclick": { 1345 "funcName": "clickTimeSlot", 1346 "values": myMeetingList[i]?.detailNo 1347 } 1348 } 1349 }; 1350 let itemTextParam = { 1351 "elementType": "span", 1352 "elementData": { 1353 "id": "slot_" + myMeetingList[i]?.detailNo, 1354 "class": "i_txt_01" 1355 } 1356 }; 1357 1358 // íëì½ë© ë¸ë½ 1359 if (blockSlotList !== undefined && blockSlotList !== null && blockSlotList.length > 0) { 1360 for (let blockSlot of blockSlotList) { 1361 // ìê° ë¹êµ 1362 if (ezpmpcommonUtil.commonFunc.isOverlap(myMeetingList[i].meetFrDateTimeFm, myMeetingList[i].meetToDateTimeFm, blockSlot.startTime, blockSlot.endTime)) { 1363 itemDivParam.elementData.class.push("m_disabled"); 1364 blockCheck = true; 1365 break; 1366 } 1367 } 1368 } 1369 1370 // 리íë ì íì ì²´í¬ 1371 if (refreshStartTime && refreshStartTime) { 1372 let checkRefreshStartTime = ezpmpcommonUtil.commonFunc.dateFormat(myMeetingList[i].meetFrDateFm + " " + refreshStartTime, "YYYY-MM-DD HH:mm"); 1373 let checkRefreshEndTime = ezpmpcommonUtil.commonFunc.dateFormat(myMeetingList[i].meetFrDateFm + " " + refreshEndTime, "YYYY-MM-DD HH:mm"); 1374 1375 // ìê° ë¹êµ 1376 if (ezpmpcommonUtil.commonFunc.isOverlap(myMeetingList[i].meetFrDateTimeFm, myMeetingList[i].meetToDateTimeFm, checkRefreshStartTime, checkRefreshEndTime)) { 1377 itemDivParam.elementData.class.push("m_disabled"); 1378 refreshCheck = true; 1379 } 1380 } 1381 1382 // statusCd ì²´í¬ 1383 if (!blockCheck && !refreshCheck) { 1384 // 미í íë ì´ì¤ ìê° íì¸ 1385 if (meetingPlaceUseDateList && meetingPlaceUseDateList[my
1385MeetingList[i]?.meetFrDateFm]) { 1386 meetingPlaceUseDateList[myMeetingList[i]?.meetFrDateFm].forEach(placeUseInfo => { 1387 // 미í íë ì´ì¤ ìê° ë¹êµ 1388 if (ezpmpcommonUtil.commonFunc.isOverlap(myMeetingList[i].meetFrDateTimeFm, myMeetingList[i].meetToDateTimeFm, placeUseInfo.meetFrDateTimeFm, placeUseInfo.meetToDateTimeFm)) { 1389 meetingPlaceUseCheck = true; 1390 itemDivParam["elementData"]["data-place-choice-no"] = placeUseInfo.choiceNo; 1391 } 1392 }); 1393 } 1394 1395 // í´ë¹ ì¼ì ì ìë 미í ì¼ ê²½ì° 1396 if (myMeetingList[i]?.detailNo === detailNo) { 1397 itemDivParam.elementData.class.push("m_empty"); 1398 itemDivParam.elementData.class.push("on"); 1399 1400 callbackParam.meetFrTimeFm = myMeetingList[i]?.meetFrTimeFm; 1401 callbackParam.meetToTimeFm = myMeetingList[i]?.meetToTimeFm; 1402 1403 // 미í íë ì´ì¤ ë²í¸ë¥¼ ì ë¬ë°ìì ì¡°ííì ë, ì´ ë ì§ë¥¼ ì´ë¯¸ 미í íë ì´ì¤ê° ì¬ì©ì¤ì´ë¼ë©´ 1404 if (meetingPlaceUseCheck) { 1405 callbackParam.meetingPlaceThisTimeUseCheck = false; 1406 1407 useCheck = false; 1408 itemDivParam.elementData.class.push("m_disabled"); 1409 itemTextParam.elementData.text = meetingPlaceUseText; 1410 } 1411 // ì ì²ìê° STS002(íì ) ê±´ì ê°ì§ê³ ìì ê²½ì° 1412 } else if (calendarMeetingList[myMeetingList[i]?.detailNo] && calendarMeetingList[myMeetingList[i]?.detailNo]["STS002"]?.length > 0) { 1413 useCheck = false; 1414 itemDivParam.elementData.class.push("m_disabled"); 1415 1416 // ë§ì½ ìì ì´ ì ì²ìë¼ë©´ íì ì¼ ê²½ì°ì í ì¤í¸ë¥¼ ë³´ì¬ì¤ 1417 if (myUserType === MY_CALENDAR_USER_TYPE_APPLICANT) { 1418 itemTextParam.elementData.text = confirmedBlockText; 1419 // ìëë¼ë©´ ë¨ì ë¸ë½ í ì¤í¸ë¥¼ ë³´ì¬ì¤ 1420 } else { 1421 itemTextParam.elementData.text = blockText; 1422 } 1423 // ì ì²ìì ì¤ì¼ì¤ì´ ë¸ë½ì¼ ê²½ì° 1424 } else if (myMeetingList[i]?.schdulStatus === "Y") { 1425 useCheck = false; 1426 itemDivParam.elementData.class.push("m_disabled"); 1427 itemTextParam.elementData.text = blockText; 1428 // ìë´ì ì 보를 ë°ììê³ , ìë´ìì´ STS002(íì ) ê±´ì ê°ì§ê³ ìì ê²½ì° 1429 } else if (otherMeetingList && otherCalendarMeetingList[otherMeetingList[i]?.detailNo] && otherCalendarMeetingList[otherMeetingList[i]?.detailNo]["STS002"]?.length > 0) { 1430 useCheck = false; 1431 itemDivParam.elementData.class.push("m_disabled"); 1432 1433 // ë§ì½ ìì ì´ ì ì²ìë¼ë©´ íì ì¼ ê²½ì°ì í ì¤í¸ë¥¼ ë³´ì¬ì¤ 1434 if (myUserType === MY_CALENDAR_USER_TYPE_COUNSELOR) { 1435 itemTextParam.elementData.text = confirmedBlockText; 1436 // ìëë¼ë©´ ë¨ì ë¸ë½ í ì¤í¸ë¥¼ ë³´ì¬ì¤ 1437 } else { 1438 itemTextParam.elementData.text = blockText; 1439 } 1440 } else if (otherMeetingList && otherMeetingList[i]?.schdulStatus === "Y") { 1441 useCheck = false; 1442 itemDivParam.elementData.class.push("m_disabled"); 1443 itemTextParam.elementData.text = blockText; 1444 // 미í íë ì´ì¤ë¥¼ ì¬ì©ì¤ì¼ ê²½ì° 1445 } else if (meetingPlaceUseCheck) { 1446 useCheck = false; 1447 itemDivParam.elementData.class.push("m_disabled"); 1448 itemTextParam.elementData.text = meetingPlaceUseText; 1449 } else if (previousTimeBlock && ezpmpcommonUtil.commonFunc.isBforeDate(myMeetingList[i]?.meetFrDateTimeFm, nowDateTime)) { 1450 useCheck = false; 1451 itemDivParam.elementData.class.push("m_disabled"); 1452 itemTextParam.elementData.text = previousTimeBlockText; 1453 } else { 1454 itemDivParam.elementData.class.push("m_empty"); 1455 } 1456 } else if (blockCheck) { 1457 itemTextParam.elementData.text = blockText; 1458 } else if (refreshCheck) { 1459 itemTextParam.elementData.text = refreshTimeText; 1460 } 1461 1462 let itemLi = ezpmpcommonUtil.commonFunc.createElementParam(itemLiParam); 1463 let itemDiv = ezpmpcommonUtil.commonFunc.createElementParam(itemDivParam); 1464 let itemText = ezpmpcommonUtil.commonFunc.createElementParam(itemTextParam); 1465 1466 // ë§¤ì¹ ë³´ì ì 1467 if (searchStatusArray?.length >
1467 0 && calendarMeetingList[myMeetingList[i]?.detailNo]) { 1468 let statusText = ""; 1469 1470 // STS ì½ë를 íìíì¬ ê° ëªê±´ì´ ìëì§ë¥¼ ë³´ì¬ì¤ 1471 searchStatusArray.forEach(statusCd => { 1472 if (companyNameViewUse && calendarMeetingList[myMeetingList[i]?.detailNo][statusCd]?.length === 1) { 1473 let meetCompanyName = ""; 1474 1475 if (statusText !== "") { 1476 statusText += `<br/>`; 1477 } 1478 1479 calendarMeetingList[myMeetingList[i]?.detailNo][statusCd][0]?.meetDetailInfoList 1480 .forEach((meetDetailInfo, idx) => { 1481 if (idx === 0 || meetDetailInfo?.lengCd === properties.langCd) { 1482 meetCompanyName = meetDetailInfo?.meetCompanyNm; 1483 } 1484 }); 1485 1486 statusText += "[" + searchStatus[statusCd] + "] " + meetCompanyName; 1487 } else if (calendarMeetingList[myMeetingList[i]?.detailNo][statusCd]?.length > 0) { 1488 if (statusText !== "") { 1489 statusText += `<br/>`; 1490 } 1491 1492 //statusText += "[" + searchStatus[statusCd] + "] " + calendarMeetingList[myMeetingList[i]?.detailNo][statusCd].length + caseText; 1493 statusText += searchStatus[statusCd] + " " + calendarMeetingList[myMeetingList[i]?.detailNo][statusCd].length + caseText; 1494 } 1495 }); 1496 1497 if (statusText) { 1498 itemText.style["font-weight"] = "bold"; 1499 itemText.style["color"] = "black"; 1500 itemText.innerHTML = statusText; 1501 } 1502 } 1503 1504 itemDiv.appendChild(itemText); 1505 itemLi.appendChild(itemDiv); 1506 1507 calendarElements[myMeetingList[i]?.meetFrDate].itemOl.appendChild(itemLi); 1508 } 1509 1510 // ìê° ìì± 1511 // timeListë ì¹´í ê³ ë¦¬ ì ë³´ë§ ë¶ë¬ì¤ëê¹, gmt ìê°ì¼ë¡ ë³ê²½íë ¤ë©´ 리ì¤í¸ë¥¼ ìë¡ ë§ë¤ì´ì ë¿ë ¤ì¤ì¼ ë¨ 1512 // í´ë¹ ì ë³´ë ì¼ì ìì gmt íìì ë¤ì´ìì§ë§ gmt ìê°ì ë°ë¡ ìì²íì§ ììì ê²½ì° nullë¡ ë°ìì¨ë¤ 1513 // ê·¸ë¬ë ì°ì ì¼ì ì ë³´ìì ë°ìì¤ë, gmt ì ë³´ê° ìì ê²½ì° timeListìì ì¹´í ê³ ë¦¬ê°ì ë°ììì ë¿ë ¤ì£¼ëë¡ íë¤ 1514 if (myMeetingList && myMeetingList?.length >= timeList?.length) { 1515 for (let i = 0; i < timeList.length; i++) { 1516 const timeInfo = myMeetingList[i]; 1517 let timeText = timeInfo?.meetFrTimeFm + " ~ " + timeInfo?.meetToTimeFm; 1518 let timeElementParam = { 1519 "elementType": "div", 1520 "elementData": { 1521 "text": timeText 1522 } 1523 }; 1524 let timeElement = ezpmpcommonUtil.commonFunc.createElementParam(timeElementParam); 1525 1526 if (myMeetingList[0]?.meetFrTimeGmtFm && myMeetingList[0]?.meetToTimeGmtFm) { 1527 let timeGmtText = "(" + timeInfo?.meetFrTimeGmtFm + " ~ " + timeInfo?.meetToTimeGmtFm + ")"; 1528 1529 timeElement.innerHTML += `<br/>`; 1530 timeElement.innerHTML += timeGmtText; 1531 } 1532 1533 startTimeListHTML.append(timeElement); 1534 } 1535 } 1536 1537 // ì¼ì ìì± 1538 schdulList.forEach(schdul => { 1539 let schdulLiParam = { 1540 "elementType": "li", 1541 "elementData": {} 1542 }; 1543 let schdulLi = ezpmpcommonUtil.commonFunc.createElementParam(schdulLiParam); 1544 1545 schdulLi.append(calendarElements[schdul?.schdulDt].dateDiv); 1546 schdulLi.append(calendarElements[schdul?.schdulDt].itemOl); 1547 1548 scheduleListHTML.append(schdulLi); 1549 }); 1550 } 1551 1552 // callback 1553 callbackFunction(callbackParam); 1554 // ì¤í¨ 1555 } else if (apiResponseCode === RESPONSVALUE.FAIL) { 1556 failFunction(apiResponseCode); 1557 ezpmpcommonUtil.log.log("createCalendar", "api ìì² ì¤í¨"); 1558 // ê·¸ ì¸ 1559 } else { 1560 failFunction(apiResponseCode); 1561 ezpmpcommonUtil.log.log("createCalendar", "api ìì² ì¤í¨"); 1562 } 1563 } 1564 } 1565 // fail function 1566 const apiFail = (returnValue) => { 1567 failFunction(RESPONSVALUE.FAIL); 1568 ezpmpcommonUtil.log.log("createCalendar", "api ìì² ì¤í¨"); 1569 } 1570 // error function 1571 const apiError = (returnValue) => { 1572 $.unblockUI(); 1573 failFunction(RESPONSVALUE.ERROR); 1574 ezpmpcommonUtil.log.log("createCalendar", "api ìì² ì¤í¨"); 1575 } 1576 1577 // multiCallApi 1578 // api ì ë¶ í¸ì¶ í ì½ë°±í¨ì ì¤í 1579 // axios list, callback(success), callback(fail), blockUI ì 무(boolean) 1580 ezpmpcommonUtil.apiCall.multCallApi(apiList, apiSuccess, apiFail, apiError, false); 1581 }); 1582 } catch(e) { 1583 ezpmpcommonUtil.log.log("createCalendar", "ì¼ì ë¶ë¬ì¤ê¸° ì¤í¨"); 1584 } 1585 } 1586 1587 /** 1588 * íì¬ ë ì§ì ë¹ì¦ë§¤ì¹ì ì§íí ê±´ì§ íì¸íì¬ ê²°ê³¼ì ë°ë¼ ì ë¬ë°ì function ì¤í 1589 * @param commonCode 1590 * @param callbackFunction 1591 * @param failFunction 1592 */ 1593 bizmatchUseDateCheck(commonCode, callbackFunction = () => {}, failFunction = () => {}) { 1594 // ë¹ì¦ë§¤ì¹ì ì¤íí ì§ ì¬ë¶
1595 let bizmatchUseCheck = false; 1596 // ë¹ì¦ë§¤ì¹ ì¤í ë ì§ ëª¨ì 1597 // keyê° ê³µíµì½ëì¼ ê²½ì°: í´ë¹íë 기ì ì startDate ë° endDateëì ë¹ì¦ë§¤ì¹ì´ ê°ë¥íë¤ 1598 // keyê° freeì¼ ê²½ì°: ì 기ê°ê³¼ ê´ê³ìì´ ë¹ì¦ë§¤ì¹ì´ ê°ë¥íë¤ 1599 let bizmatchUseDate = { 1600 "KTF": { 1601 "110055": { 1602 "MAG001": { 1603 "startDate": "2024-05-06", 1604 "endDate": "2024-05-19" 1605 }, 1606 "MAG002": { 1607 "startDate": "2024-05-06", 1608 "endDate": "2024-05-19" 1609 }, 1610 "MAG003": { 1611 "startDate": "2024-05-06", 1612 "endDate": "2024-05-19" 1613 }, 1614 "free": { 1615 "startDate": "2024-05-20", 1616 "endDate": "2024-05-24" 1617 }, 1618 "other": { 1619 "startDate": "2024-05-25", 1620 "endDate": "2024-12-31" 1621 } 1622 } 1623 } 1624 }; 1625 let nowDate = ezpmpcommonUtil.commonFunc.baseDateFormat(new Date(), "YYYY-MM-DD"); 1626 let freeCheck = false; 1627 1628 if (!!bizmatchUseDate[properties.projectCd] && !!bizmatchUseDate[properties.projectCd][properties.siteId]) { 1629 // ìê° ë¹êµ 1630 // ë¹êµ í ê¸°ê° ë´ë¼ë©´ bizmatchUseCheck를 trueë¡ ë°ê¾¼ë¤ 1631 const useDateCheckFunction = (nowDate, startDate, endDate) => { 1632 // ììì¼ê³¼ì ë¹êµ 1633 let startDateDiff = ezpmpcommonUtil.commonFunc.diffDay(nowDate, startDate); 1634 // ì¢ ë£ì¼ê³¼ì ë¹êµ 1635 let endDateDiff = ezpmpcommonUtil.commonFunc.diffDay(nowDate, endDate); 1636 // ë ì§ ë¹êµ 1637 // ììì¼ìì ì¢ ë£ì¼ ì¬ì´ì í¬í¨ì´ ëë¤ë©´ 1638 if (startDateDiff >= 0 && endDateDiff <= 0) { 1639 // ë¹ì¦ë§¤ì¹ì ì¤í
1640 bizmatchUseCheck = true; 1641 } 1642 } 1643 let thisSiteBizmatchUseDate = bizmatchUseDate[properties.projectCd][properties.siteId]; 1644 1645 // ìì ê¸°ê° íì¸ 1646 if (!!thisSiteBizmatchUseDate.free 1647 && !!thisSiteBizmatchUseDate.free.startDate 1648 && !!thisSiteBizmatchUseDate.free.endDate) { 1649 useDateCheckFunction(nowDate, thisSiteBizmatchUseDate.free.startDate, thisSiteBizmatchUseDate.free.endDate); 1650 freeCheck = true; 1651 } 1652 1653 // í´ë¹íë 기ì ì íì´ ìëì§ íì¸ 1654 if (!bizmatchUseCheck 1655 && !!thisSiteBizmatchUseDate[commonCode] 1656 && !!thisSiteBizmatchUseDate[commonCode].startDate 1657 && !!thisSiteBizmatchUseDate[commonCode].endDate) { 1658 useDateCheckFunction(nowDate, thisSiteBizmatchUseDate[commonCode].startDate, thisSiteBizmatchUseDate[commonCode].endDate); 1659 } 1660 } 1661 1662 // bizmatchUseCheckì´ trueë¼ë©´ callbackFunctionì ì¤í 1663 if (bizmatchUseCheck) { 1664 callbackFunction(freeCheck); 1665 // bizmatchUseCheckì´ falseë¼ë©´ failFunctionì ì¤í 1666 } else { 1667 failFunction(); 1668 } 1669 } 1670 1671 /** 1672 * 미í íë ì´ì¤ ë±ë¡ 1673 * @param companyNo 기ì ë²í¸ 1674 * @param meetingPlaceType 미í íë ì´ì¤ ì í - ex) BTC001 (ì¨ë¼ì¸ ìë´) 1675 * @param meetingPlaceName 미í íë ì´ì¤ ì´ë¦ 1676 * @param callbackFunction ì½ë°± í¨ì 1677 * @param schdulNo ì¤ì¼ì¤ ë²í¸ 1678 * @param oneToManyFlag 기ì ë¹ ë¯¸í íë ì´ì¤ ì¼ëë¤ ì¬ë¶ (false: 1기ì ë¹ 1미í íë ì´ì¤, true: 1기ì ë¹ ì¬ë¬ê°ì 미í íë ì´ì¤) 1679 */ 1680 createMeetingPlace(companyNo, meetingPlaceType, meetingPlaceName, callbackFunction = () => {}, schdulNo = 0, oneToManyFlag = false) { 1681 try { 1682 let apiParam = { 1683 "projectCd": properties.projectCd, 1684 "siteId": properties.siteId, 1685 "oneToManyFlag": oneToManyFlag, 1686 "companyNo": companyNo, 1687 "placeType": meetingPlaceType, 1688 "schdulNo": schdulNo, 1689 "meetingTm": "2024-01-01", 1690 "startDt": "2024-01-01", 1691 "startTm": "01:00", 1692 "endDt": "2099-01-01", 1693 "endTm": "23:00", 1694 "refreshTm": "2099-01-01", 1695 "useYn": "Y", 1696 "meetingPlaceDetailList": [ 1697 { 1698 "placeNm": meetingPlaceName, 1699 "companyNo": companyNo, 1700 "timeslotCount": 0, 1701 "useYn": "Y" 1702 } 1703 ] 1704 }; 1705 1706 ezpmpcommonUtil.apiCall.callApi(apiUrls.consultApi + "/meeting-place/post", HTTPMETHOD.POST, apiParam, function(returnValue) { 1707 if (!!returnValue) { 1708 // ìëµ ì±ê³µ 1709 if (returnValue.responseCode === RESPONSVALUE.SUCCESS) { 1710 alert("ë±ë¡ì´ ìë£ëììµëë¤."); 1711 Layer_CLOSE('#popupMeetingPlace'); 1712 // ìëµ ì¤í¨ 1713 } else if (returnValue.responseCode === RESPONSVALUE.FAIL) { 1714 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 1715 // ê·¸ ì¸ 1716 } else { 1717 const { detailMessage } = returnValue.responseData; 1718 1719 if (detailMessage !== undefined && detailMessage !== null) { 1720 // ë¹ì¦ë§¤ì¹ ìë¬ ì½ëì ë°ë¥¸ ë¶ê¸° ì²ë¦¬ 1721 switch (detailMessage) { 1722 case "BIZ027": 1723 alert("ì´ë¯¸ 미í íë ì´ì¤ë¥¼ ê°ì§ê³ ìë 기ì ì ëë¤."); 1724 break; 1725 default: 1726 alert("ë±ë¡ì ì¤í¨íìµëë¤.\në¤ì ìëí´ì£¼ì¸ì."); 1727 break; 1728 } 1729 } 1730 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 1731 } 1732 } 1733 }, null, false); 1734 } catch(e) { 1735 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 1736 } 1737 } 1738 1739 /** 1740 * 미í íë ì´ì¤ ë©í° ë±ë¡ 1741 * @param meetingPlaceDataList 1742 * companyNo 기ì ë²í¸ 1743 * meetingPlaceType 미í íë ì´ì¤ ì í - ex) BTC001 (ì¨ë¼ì¸ ìë´) 1744 * meetingPlaceName 미í íë ì´ì¤ ì´ë¦ 1745 * schdulNo ì¤ì¼ì¤ ë²í¸ 1746 * oneToManyFlag 기ì ë¹ ë¯¸í íë ì´ì¤ ì¼ëë¤ ì¬ë¶ (false: 1기ì ë¹ 1미í íë ì´ì¤, true: 1기ì ë¹ ì¬ë¬ê°ì 미í íë ì´ì¤) 1747 * publicYn ê³µì© ë¯¸í íë ì´ì¤ ì¬ë¶ 1748 * @param callbackFunction ì½ë°± í¨ì 1749 * @param failFunction ì¤í¨íì ê²½ì° í¸ì¶ í¨ì 1750 */ 1751 createMultiMeetingPlace(meetingPlaceDataList, callbackFunction = () => {}, failFunction = () => {}) { 1752 try { 1753 let apiList = meetingPlaceDataList.map(meetingPlaceData => { 1754 let apiParam = { 1755 "projectCd": properties.projectCd, 1756 "siteId": properties.siteId, 1757 "oneToManyFlag": meetingPlaceData?.oneToManyFlag ?? false, 1758 "companyNo": meetingPlaceData?.companyNo ?? null, 1759 "placeType": meetingPlaceData?.meetingPlaceType ?? "BTC003", 1760 "schdulNo": meetingPlaceData?.schdulNo ?? 0, 1761 "meetingTm": "2024-01-01", 1762 "startDt": "2024-01-01", 1763 "startTm": "01:00", 1764 "endDt": "2099-01-01", 1765 "endTm": "23:00", 1766 "refreshTm": "2099-01-01", 1767 "useYn": "Y", 1768 "meetingPlaceDetailList": [ 1769 { 1770 "placeNm": meetingPlaceData?.meetingPlaceName ?? "", 1771 "companyNo": meetingPlaceData?.companyNo ?? null, 1772 "timeslotCount": 0, 1773 "useYn": "Y", 1774 "publicYn": meetingPlaceData?.publicYn ?? "Y"
1775 } 1776 ] 1777 }; 1778 1779 return ezpmpcommonUtil.apiCall.callApiAxiosAsync(APICALLURL.consultingApi + "/meeting-place/post", HTTPMETHOD.POST, apiParam); 1780 }); 1781 1782 const apiSuccess = (returnValueList) => { 1783 let successDataList = []; 1784 let failDataList = []; 1785 1786 returnValueList.forEach((returnValue, idx) => { 1787 if (returnValue.responseCode === RESPONSVALUE.SUCCESS) { 1788 successDataList.push(meetingPlaceDataList[idx]); 1789 } else { 1790 failDataList.push(meetingPlaceDataList[idx]); 1791 } 1792 }); 1793 1794 callbackFunction({ 1795 successDataList: successDataList, 1796 failDataList: failDataList, 1797 returnValueList: returnValueList 1798 }); 1799 }; 1800 1801 const apiFail = (returnValue) => { 1802 failFunction(returnValue); 1803 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 1804 } 1805 1806 const apiError = (returnValue) => { 1807 failFunction(returnValue); 1808 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 1809 } 1810 1811 ezpmpcommonUtil.apiCall.multCallApi(apiList, apiSuccess, apiFail, apiError, false); 1812 } catch(e) { 1813 ezpmpcommonUtil.log.log("log text", "ìì² ì¤í¨"); 1814 } 1815 } 1816 1817 /** 1818 * 미í íë ì´ì¤ ì¡°í 1819 * @param params íë¼ë¯¸í° ëª©ë¡ 1820 * page íì´ì§ ë²í¸ 1821 * size íì´ì§ë¹ ì¡°í ì 1822 * meetingPlaceNo 미í íë ì´ì¤ ë²í¸ 1823 * useYn ì¬ì© ì¬ë¶ 1824 * delYn ìì ì¬ë¶ 1825 * placeType ìë´ ì í 1826 * userPartCd 기ì ì í 1827 * searchType ê²ì ì í (SRC001: 기ì ëª , SRC002: 미í íë ì´ì¤ëª , SRC003: ê·¸ë£¹ëª ) 1828 * searchWord ê²ì ë¨ì´ 1829 * publicYn ê³µì© ë¯¸í íë ì´ì¤ ì¬ë¶ (Y: ê³µì©, N: 기ì ë³) 1830 * @param callbackFunction ì±ê³µì í¸ì¶ í¨ì 1831 * @param failFunction ì¤í¨ì í¸ì¶ í¨ì 1832 */ 1833 loadMeetingPlaceList(params, callbackFunction = () => {}, failFunction = () => {}) { 1834 try { 1835 const { 1836 page = 0, 1837 size = 10, 1838 meetingPlaceNo = null, 1839 useYn = "Y", 1840 delYn = "N", 1841 placeType = null, 1842 userPartCd = "", 1843 searchType = "", 1844 searchWord = "", 1845 publicYn = "Y", 1846 choiceNo = null, 1847 companyNo = null 1848 } = params; 1849 const apiParam = { 1850 projectCd: properties.projectCd, 1851 siteId: properties.siteId, 1852 page: page, 1853 size: size, 1854 meetingPlaceNo: meetingPlaceNo, 1855 useYn: useYn, 1856 delYn: delYn, 1857 placeType: placeType, 1858 userPartCd: userPartCd, 1859 searchType: searchType, 1860 searchWord: searchWord, 1861 publicYn: publicYn, 1862 choiceNo: choiceNo, 1863 companyNo: companyNo 1864 } 1865 1866 ezpmpcommonUtil.apiCall.callApi(apiUrls.consultApi + "/meeting-place/get", HTTPMETHOD.POST, apiParam, function (returnValue) { 1867 if (!!returnValue) { 1868 // ìëµ ì±ê³µ 1869 if (returnValue.responseCode === RESPONSVALUE.SUCCESS) { 1870 callbackFunction(returnValue.responseData); 1871 // ìëµ ì¤í¨ 1872 } else if (returnValue.responseCode === RESPONSVALUE.FAIL) { 1873 failFunction(returnValue); 1874 ezpmpcommonUtil.log.log("loadMeetingPlaceList", "ìì² ì¤í¨"); 1875 // ê·¸ ì¸ 1876 } else { 1877 failFunction(returnValue); 1878 ezpmpcommonUtil.log.log("loadMeetingPlaceList", "ìì² ì¤í¨"); 1879 } 1880 } 1881 }, null, false); 1882 } catch (e) { 1883 ezpmpcommonUtil.log.log("loadMeetingPlaceList", "ìì² ì¤í¨"); 1884 } 1885 } 1886 1887 /** 1888 * 미í ì 보를 미í íë ì´ì¤ì ë±ë¡ 1889 * 1890 * ì£¼ë¡ ìë´ íì ì ì¬ì© 1891 * 1892 * api ëì 구조 1893 * - íì ë ìë´ì 미í íë ì´ì¤ì ë±ë¡ 1894 * - ì´ë¯¸ ë°°ì ì´ ëìë¤ê±°ë, ëª¨ì¢ ì ì´ì ë¡ ì¤í¨ ì ì ë¬ë statusCdë¡ ë³ê²½ (ì´ë, ë³´ë¸ statusCdê° ìë¤ë©´ STS001ë¡ ë³ê²½ë¨) 1895 * @param meetingPlaceDetailNo 1896 * @param choiceNo 1897 * @param companyNo 1898 * @param cnslCompanyNo 1899 * @param reverse 1900 * @param statusCd 1901 * @param finalMsgNo 1902 * @param callback 1903 * @param fail 1904 */ 1905 postMeetingPlaceMeetingData(meetingPlaceDetailNo, choiceNo, companyNo, cnslCompanyNo, reverse = false, statusCd = "ST
1905S001", finalMsgNo = null, callback = () => {}, fail = () => {}) { 1906 try { 1907 const apiParam = { 1908 projectCd: properties.projectCd, 1909 siteId: properties.siteId, 1910 meetingPlaceDetailNo: meetingPlaceDetailNo, 1911 choiceNo: choiceNo, 1912 companyNo: reverse ? cnslCompanyNo : companyNo, 1913 cnslCompanyNo: reverse ? companyNo : cnslCompanyNo, 1914 statusCd: statusCd, 1915 finalMsgNo: finalMsgNo, 1916 flag: "N" 1917 }; 1918 1919 ezpmpcommonUtil.apiCall.callApi(apiUrls.consultApi + "/meeting-place/detail-sub/post", HTTPMETHOD.POST, apiParam, function (returnValue) { 1920 if (!!returnValue) { 1921 // ìëµ ì±ê³µ 1922 if (returnValue.responseCode === RESPONSVALUE.SUCCESS) { 1923 callback(returnValue); 1924 // ìëµ ì¤í¨ 1925 } else if (returnValue.responseCode === RESPONSVALUE.FAIL) { 1926 fail(returnValue); 1927 ezpmpcommonUtil.log.log("loadMeetingPlaceList", "ìì² ì¤í¨"); 1928 // ê·¸ ì¸ 1929 } else { 1930 fail(returnValue); 1931 ezpmpcommonUtil.log.log("loadMeetingPlaceList", "ìì² ì¤í¨"); 1932 } 1933 } 1934 }, null, false); 1935 } catch (e) { 1936 ezpmpcommonUtil.log.log("loadMeetingPlaceList", "ìì² ì¤í¨"); 1937 } 1938 } 1939 1940 /** 1941 * 미í íë ì´ì¤ì ë±ë¡ë 미í ì 보를 ìì 1942 * @param detailSubNoList 1943 * @param callbackFunction 1944 * @param failFunction 1945 */ 1946 cancelMeetingPlaceMeetingData(detailSubNoList, callbackFunction = () => {}, failFunction = () => {}) { 1947 try { 1948 if (!detailSubNoList || (Array.isArray(detailSubNoList) && detailSubNoList.length == 0)) { 1949 ezpmpcommonUtil.log.log("cancelMeetingPlaceMeetingData", "detailSubNoList ê°ì´ ìì"); 1950 return; 1951 } 1952 1953 const apiParam = { 1954 projectCd: properties.projectCd, 1955 siteId: properties.siteId, 1956 detailSubNoList: Array.isArray(detailSubNoList) ? detailSubNoList : [detailSubNoList] 1957 }; 1958 1959 ezpmpcommonUtil.apiCall.callApi(apiUrls.consultApi + "/meeting-place/detail-sub/delete", HTTPMETHOD.POST, apiParam, function (returnValue) { 1960 if (!!returnValue) { 1961 // ìëµ ì±ê³µ 1962 if (returnValue.responseCode === RESPONSVALUE.SUCCESS) { 1963 callbackFunction(returnValue); 1964 // ìëµ ì¤í¨ 1965 } else if (returnValue.responseCode === RESPONSVALUE.FAIL) { 1966 failFunction(returnValue); 1967 ezpmpcommonUtil.log.log("loadMeetingPlaceList", "ìì² ì¤í¨"); 1968 // ê·¸ ì¸ 1969 } else { 1970 failFunction(returnValue); 1971 ezpmpcommonUtil.log.log("loadMeetingPlaceList", "ìì² ì¤í¨"); 1972 } 1973 } 1974 }, null, false); 1975 } catch (e) { 1976 failFunction(); 1977 ezpmpcommonUtil.log.log("loadMeetingPlaceList", "ìì² ì¤í¨"); 1978 } 1979 } 1980 1981 /** 1982 * ë°°ì ë 미í íë ì´ì¤ íì 1983 * meetingPlaceNo ëë companyNo를 ë°ì§ ììë¤ë©´ choiceNo를 íµí´ì íìì ì§í 1984 * @param params 1985 * @param findSuccess 1986 * @param findFail 1987 * @param apiFail 1988 */ 1989 /*searchUseMeetingPlace(params, findSuccess = () => {}, findFail = () => {}, apiFail = () => {}) { 1990 // params 1991 let { 1992 meetingPlaceNo, 1993 placeType = "BTC003", 1994 choiceNo, 1995 companyNo, 1996 } = params; 1997 1998 // 미í íë ì´ì¤ ë²í¸ ëë 기ì ë²í¸ë¥¼ ë°ìì ê²½ì° 1999 if (meetingPlaceNo || companyNo) { 2000 let loadParam = { 2001 page: 0, 2002 size: 1, 2003 meetingPlaceNo, 2004 placeType, 2005 companyNo 2006 }; 2007 // ì¡°í ì±ê³µ 2008 let loadSuccess = (placeData) => { 2009 const { list } = placeData; 2010 2011 // 미í íë ì´ì¤ ì 보를 ì 리 2012 if (list && list.length > 0 && list[0].meetingPlaceDetailList && list[0].meetingPlaceDetailList.length > 0) { 2013 let meetingPlaceNo = list[0].meetingPlaceNo; 2014 let meetingPlaceDetailNo = list[0].meetingPlaceDetailList[0].detailNo; 2015 2016 findSuccess({ 2017 meetingPlaceNo: meetingPlaceNo, 2018 meetingPlaceDetailNo: meetingPlaceDetailNo 2019 }); 2020 // ì¨ë¼ì¸ ë° ì¤íë¼ì¸ ìë´ì¥ì´ ì¡°íëì§ ìëë¤ë©´, ì¨/ì¤íë¼ì¸ íì ì íë² ë ì¡°í 2021 } else if (placeType === "BTC001" || placeType === "BTC002") { 2022 params.placeType = "BTC003"; 2023 2024 this.searchUseMeetingPlace(params, findSuccess, findFail, api
2024Fail); 2025 // 미í íë ì´ì¤ ì¡°íê° ëì§ ìëë¤ë©´, choiceNo를 íµí´ì /empty-place/get API를 í¸ì¶ 2026 } else { 2027 this.searchEmptyMeetingPlace(choiceNo, placeType, findSuccess, findFail, apiFail); 2028 } 2029 }; 2030 // ì¡°í ì¤í¨ 2031 let loadFail = () => { 2032 this.searchEmptyMeetingPlace(choiceNo, placeType, findSuccess, findFail, apiFail); 2033 }; 2034 2035 // 미í íë ì´ì¤ íì 2036 this.loadMeetingPlaceList(loadParam, loadSuccess, loadFail); 2037 } else if (choiceNo) { 2038 ezpmpcommonUtil.commonFunc.searchEmptyMeetingPlace(choiceNo, placeType, findSuccess, findFail, apiFail); 2039 } else { 2040 ezpmpcommonUtil.log.log("searchUseMeetingPlace", "íìì íìí params ì ë³´ ìì"); 2041 findFail(); 2042 } 2043 }*/ 2044 2045 2046 /** 2047 * ë°°ì ë 미í íë ì´ì¤ íì 2048 * meetingPlaceNo ëë companyNo를 ë°ì§ ììë¤ë©´ choiceNo를 íµí´ì íìì ì§í 2049 * @param params 2050 * @param findSuccess 2051 * @param findFail 2052 * @param apiFail 2053 */ 2054 searchUseMeetingPlace(params, findSuccess = () => {}, findFail = () => {}, apiFail = () => {}) { 2055 let { 2056 choiceNo, 2057 companyNo, 2058 cnslCompanyNo, 2059 placeType = "BTC003", 2060 startDate = new Date(), 2061 endDate = new Date(), 2062 offlineCategory, 2063 onlineCategory 2064 } = params; 2065 let checkStartDate = ezpmpcommonUtil.commonFunc.dateFormat(startDate, "YYYY-MM-DD HH:mm"); 2066 let checkEndDate = ezpmpcommonUtil.commonFunc.dateFormat(endDate, "YYYY-MM-DD HH:mm"); 2067 let reverse = false; 2068 2069 let loadParam = { 2070 page: 0, 2071 size: 9999, 2072 placeType 2073 }; 2074 2075 // 기ì ë²í¸ë¥¼ ë°ììì ê²½ì° 2076 if (offlineCategory !== "BPC001" && (companyNo || cnslCompanyNo)) { 2077 // ì¡°í ì±ê³µ 2078 let loadSuccess = (placeData) => { 2079 let { list } = placeData; 2080 let placeList = []; 2081 2082 if (list?.length > 0) { 2083 // 기ì ë²í¸ì ì¼ì¹íë ì ë³´ ê°ì ¸ì¤ê¸° 2084 placeList = list.filter(placeData => { 2085 let { meetingPlaceDetailList } = placeData; 2086 let placeCompanyNo = meetingPlaceDetailList?.[0]?.companyNo; 2087 2088 // 기ì ì ë³´ê° ì¼ì¹íë 미í ì ë³´ë§ ë¶ë¬ì¨ë¤ 2089 return placeCompanyNo && (placeCompanyNo == companyNo || placeCompanyNo == cnslCompanyNo) && (placeData.placeType === placeType || placeData.placeType === "BTC003"); 2090 }).filter(placeData => { 2091 let { meetingPlaceDetailSubList } = placeData.meetingPlaceDetailList[0]; 2092 2093 // ë°°ì ë ìê°ì´ ìë¤ë©´, ìë´ì¥ì ìê°ë¤ì´ ì¬ì© ê°ë¥íì§ íì¸ 2094 if (meetingPlaceDetailSubList?.length > 0) { 2095 for (let placeDetailSub of meetingPlaceDetailSubList) { 2096 if (ezpmpcommonUtil.commonFunc.isOverlap(placeDetailSub.meetFrDateTimeFm, placeDetailSub.meetToDateTimeFm, checkStartDate, checkEndDate)) { 2097 return false; 2098 } 2099 } 2100 } 2101 2102 return true; 2103 }); 2104 } 2105 2106 // 기ì ìë´ì¥ ì°ì ë°°ì 2107 if (placeList?.length > 0) { 2108 // ë§ì½ 리ì¤í¸ê° ëê° ì´ìì´ë¼ë©´ ì ë ¬ 2109 if (placeList.length > 1) { 2110 let placeTemp; 2111 2112 for (let i = 0; i < placeList.length - 1; i++) { 2113 for (let j = 0; j < placeList.length - 1 - i; j++) { 2114 const PRIORITY_COMPANY_NO = 3; 2115 const PRIORITY_CNSL_COMPANY_NO = 2; 2116 const PRIORITY_DEFAULT = 1; 2117 2118 let priority1 = PRIORITY_DEFAULT; 2119 let priority2 = PRIORITY_DEFAULT; 2120 2121 switch (placeList[j].meetingPlaceDetailList[0].companyNo) { 2122 case companyNo: 2123 priority1 = PRIORITY_COMPANY_NO; 2124 break; 2125 case cnslCompanyNo: 2126 priority1 = PRIORITY_CNSL_COMPANY_NO; 2127 break; 2128 } 2129 switch (placeList[j + 1].meetingPlaceDetailList[0].companyNo) { 2130 case companyNo: 2131 priority2 = PRIORITY_COMPANY_NO; 2132 break; 2133 case cnslCompanyNo: 2134 priority2 = PRIORITY_CNSL_COMPANY_NO; 2135 break; 2136 } 2137 2138 if (priority1 < priority2) { 2139 placeTemp = placeList[j]; 2140 placeList[j] = placeList[j + 1];
2141 placeList[j + 1] = placeTemp; 2142 } 2143 } 2144 } 2145 } 2146 2147 let meetingPlaceNo = placeList[0].meetingPlaceNo; 2148 let meetingPlaceDetailNo = placeList[0].meetingPlaceDetailList[0].detailNo; 2149 2150 if (placeList[0].meetingPlaceDetailList[0].companyNo == cnslCompanyNo) { 2151 reverse = true; 2152 } 2153 2154 findSuccess({ 2155 meetingPlaceNo: meetingPlaceNo, 2156 meetingPlaceDetailNo: meetingPlaceDetailNo, 2157 reverse: reverse 2158 }); 2159 // 기ì ìë´ì¥ì´ ìì¼ë©´ ê³µì© ìë´ì¥ ë°°ì 2160 } else if (offlineCategory !== "BPC002") { 2161 this.searchEmptyMeetingPlace(choiceNo, placeType, findSuccess, findFail, apiFail); 2162 } else { 2163 ezpmpcommonUtil.log.log("searchUseMeetingPlace", "ë°°ì ê°ë¥í 기ì ìë´ì¥ ìì"); 2164 findFail(); 2165 } 2166 }; 2167 // ì¡°í ì¤í¨ 2168 let loadFail = () => { 2169 this.searchEmptyMeetingPlace(choiceNo, placeType, findSuccess, findFail, apiFail); 2170 }; 2171 2172 // 미í íë ì´ì¤ íì 2173 this.loadMeetingPlaceList(loadParam, loadSuccess, loadFail); 2174 // 기ì ìë´ì¥ë§ ê²ìíë ê²½ì° 2175 } else if (offlineCategory === "BPC002") { 2176 ezpmpcommonUtil.log.log("searchUseMeetingPlace", "ë°°ì ê°ë¥í 기ì ìë´ì¥ ìì"); 2177 findFail(); 2178 // ê³µì© ìë´ì¥ ê²ì 2179 } else if (choiceNo) { 2180 ezpmpcommonUtil.commonFunc.searchEmptyMeetingPlace(choiceNo, placeType, findSuccess, findFail, apiFail); 2181 } else { 2182 ezpmpcommonUtil.log.log("searchUseMeetingPlace", "íìì íìí params ì ë³´ ìì"); 2183 findFail(); 2184 } 2185 } 2186 2187 /** 2188 * ë¹ì´ìë 미í íë ì´ì¤ íì 2189 * @param choiceNo 미í ë²í¸ 2190 * @param placeType ìë´ ì í 2191 * @param findSuccess ë¹ì´ìë ì¥ì íì ì±ê³µ 2192 * @param findFail ë¹ì´ìë ì¥ìê° ìì ê²½ì° 2193 * @param apiFail api ì°ê²° ì¤í¨ 2194 */ 2195 searchEmptyMeetingPlace(choiceNo, placeType, findSuccess = () => {}, findFail = () => {}, apiFail = () => {}) { 2196 try { 2197 const apiParam = { 2198 projectCd: properties.projectCd, 2199 siteId: properties.siteId, 2200 choiceNo: choiceNo, 2201 placeType: placeType 2202 }; 2203 2204 ezpmpcommonUtil.apiCall.callApi(apiUrls.consultApi + "/meeting-place/empty-place/get", HTTPMETHOD.POST, apiParam, function (returnValue) { 2205 if (!!returnValue) { 2206 // ìëµ ì±ê³µ 2207 if (returnValue.responseCode === RESPONSVALUE.SUCCESS) { 2208 2209 const { meetingPlaceNo, meetingPlaceDetailNo } = returnValue.responseData; 2210 2211 // ë¹ì´ìë 미í íë ì´ì¤ê° ìì ê²½ì° 2212 if (meetingPlaceNo && meetingPlaceDetailNo) { 2213 findSuccess({ 2214 meetingPlaceNo: meetingPlaceNo, 2215 meetingPlaceDetailNo: meetingPlaceDetailNo 2216 }); 2217 // ë¹ì´ìë 미í íë ì´ì¤ê° ìì ê²½ì° 2218 } else { 2219 findFail(); 2220 } 2221 // ìëµ ì¤í¨ 2222 } else if (returnValue.responseCode === RESPONSVALUE.FAIL) { 2223 apiFail(returnValue); 2224 ezpmpcommonUtil.log.log("searchEmptyMeetingPlace", "ìì² ì¤í¨"); 2225 // ê·¸ ì¸ 2226 } else { 2227 apiFail(returnValue); 2228 ezpmpcommonUtil.log.log("searchEmptyMeetingPlace", "ìì² ì¤í¨"); 2229 } 2230 } 2231 }, null, false); 2232 } catch (e) { 2233 apiFail(e); 2234 ezpmpcommonUtil.log.log("searchEmptyMeetingPlace", "ìì² ì¤í¨"); 2235 } 2236 } 2237}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.