SMRSI02730.js 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626
  1. /* ---------------------------------------------------------------------
  2. SMRSI02730_전자세금계산서.xrw (SMRSI02730.xrw - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. // --------------------------------------------------
  9. // 화면 Control을 초기화한다
  10. // --------------------------------------------------
  11. function fInitDti() {
  12. fInitializeDti();
  13. return;
  14. }
  15. // --------------------------------------------------------------
  16. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  17. // --------------------------------------------------------------
  18. function fInitializeDti() {
  19. var vInstcd = getUserInfo("dutplceinstcd"); // 기관코드
  20. var vUserid = getUserInfo("userid" ); // 사용자
  21. misfComboComCdList('R0025', dti_goodflag,"N"); // 물품구분
  22. // if(model.getValue(dti_goodflag.attribute("ref")).length == 0 && dti_goodflag.length> 0) dti_goodflag.selectedindex= 0;
  23. // -------------------------------------------------------------------------------------
  24. // 기관별 구매시스템 기본정보를 조회한다
  25. // vPathResult = "/root/init/RscsysinftLists";
  26. // -------------------------------------------------------------------------------------
  27. rszfRscsysinftLists(vInstcd);
  28. var vPurcDeptcd = getRscsysinftInfo("purcdept"); // 구매부서코드
  29. var vPurcDeptnm = getRscsysinftInfo("purcdeptnm"); // 구매부서명
  30. //----------------------------------------------
  31. // 기관별 구매발주자 기본정보를 조회한다
  32. //----------------------------------------------
  33. rszfRscsysordtLists(vInstcd, vPurcDeptcd, vUserid);
  34. var vPurcordID = getRscsysordtInfo("purcordid"); // 구매담당자id
  35. var vPurcordNM = getRscsysordtInfo("purcordnm"); // 구매담당자명
  36. var vPurcEmail = getRscsysordtInfo("purcemail"); // 담당자 email
  37. // 사용자 기관 List
  38. model.removeNodeset(grd_baseinvoice.nodeset ); // 세금계산서 내역
  39. model.removeNodeset(grd_invoiceitems.nodeset ); // 세금계산서 항목
  40. model.setValue(dti_instcd.attribute("ref"),vInstcd ); // 기관코드
  41. model.setValue(dti_deptcd.attribute("ref"),vPurcDeptcd ); // 구매부서코드
  42. model.setValue(dti_deptnm.attribute("ref"),vPurcDeptnm ); // 구매부서명
  43. model.setValue(dti_emplno.attribute("ref"),vPurcordID ); // 구매담당자id
  44. model.setValue(dti_emplnm.attribute("ref"),vPurcordNM ); // 구매담당자명
  45. model.setValue(dti_email.attribute("ref") ,vPurcEmail ); // 담당자 email
  46. model.setValue(ipt_fr_pub_date.attribute("ref") ,getCurrentDate() ); // 계산서일자 FROM
  47. model.setValue(ipt_to_pub_date.attribute("ref") ,getCurrentDate() ); // 계산서일자 TO
  48. model.refresh();
  49. }
  50. //-----------------------------------
  51. // 세금계산서 주거래처 Copy Node
  52. //-----------------------------------
  53. function fCustCopyNode_BAK(){
  54. var vCnt = 0 ;
  55. var vCust = "";
  56. var cPath = "/root/init/CustList";
  57. var sGrid = eval("grd_"+gGridNm[gTabIdx1]+"_tree")
  58. var tPath = "/root/init/Dti"+gPathNm[gTabIdx1];
  59. var tPath2 = "/root/init/Dti"+gPathNm[gTabIdx1]+"/CustList";
  60. // cmb_supregnum.attribute("ref")
  61. model.removenode(tPath);
  62. for (var fRow = sGrid.fixedRows; fRow < sGrid.rows ; fRow++ ) {
  63. if (model.getValue(sGrid.nodeset+"["+fRow+"]/depth") == "3") { // 주거래처
  64. vCust = model.getValue(sGrid.nodeset+"["+fRow+"]/codecd"); // 주거래처 코드
  65. // alert("vCust==>>"+ vCust +"<<== suplplcecd==>>"+ model.getValue(tPath2+"[suplplcecd='"+ vCust +"']" +"/suplplcecd")+"<<== ");
  66. if (model.getValue(tPath2+"[suplplcecd='"+ vCust +"']" +"/suplplcecd") == "") {
  67. model.setValue(cPath + "/suplplcecd" , model.getValue(sGrid.nodeset+"["+fRow+"]/codecd")) ; // 01 거래처 Code
  68. model.setValue(cPath + "/suplplcenm" , model.getValue(sGrid.nodeset+"["+fRow+"]/treenm")) ; // 02 거래처 Name
  69. if (vCnt == 0) {
  70. model.makeNode(tPath2 );
  71. model.copyNode(tPath2 , cPath);
  72. } else {
  73. model.duplicate(tPath , cPath);
  74. }
  75. vCnt++;
  76. }
  77. }
  78. }
  79. cmb_supregnum.choices.itemset.attribute("nodeset") = tPath2;
  80. cmb_supregnum.refresh();
  81. }
  82. //-----------------------------------
  83. // 세금계산서 주거래처 Copy Node
  84. //-----------------------------------
  85. function fCustCopyNode(pGridNm, pPath, pCustCd, pCustNm){
  86. var vCnt = 0 ;
  87. var vCust = "";
  88. var cPath = "/root/init/CustList";
  89. var sGrid = eval("grd_"+pGridNm)
  90. var tPath = "/root/init/Dti"+pPath;
  91. var tPath2 = "/root/init/Dti"+pPath+"/CustList";
  92. // cmb_supregnum.attribute("ref")
  93. model.removenode(tPath);
  94. for (var fRow = sGrid.fixedRows; fRow < sGrid.rows ; fRow++ ) {
  95. if (model.getValue(sGrid.nodeset+"["+fRow+"]/depth") == "3") { // 주거래처
  96. vCust = model.getValue(sGrid.nodeset+"["+fRow+"]/"+pCustCd); // 주거래처 코드
  97. // alert("vCust==>>"+ vCust +"<<== suplplcecd==>>"+ model.getValue(tPath2+"[suplplcecd='"+ vCust +"']" +"/suplplcecd")+"<<== ");
  98. if (model.getValue(tPath2+"[suplplcecd='"+ vCust +"']" +"/suplplcecd") == "") {
  99. model.setValue(cPath + "/suplplcecd" , model.getValue(sGrid.nodeset+"["+fRow+"]/"+pCustCd)) ; // 01 거래처 Code
  100. model.setValue(cPath + "/suplplcenm" , model.getValue(sGrid.nodeset+"["+fRow+"]/"+pCustNm)) ; // 02 거래처 Name
  101. if (vCnt == 0) {
  102. model.makeNode(tPath2 );
  103. model.copyNode(tPath2 , cPath);
  104. } else {
  105. model.duplicate(tPath , cPath);
  106. }
  107. vCnt++;
  108. }
  109. }
  110. }
  111. cmb_supregnum.choices.itemset.attribute("nodeset") = tPath2;
  112. cmb_supregnum.refresh();
  113. }
  114. //--------------------------------------------
  115. // 세금계산서 주거래처 Itemset NodeSet Change
  116. //--------------------------------------------
  117. function fCustItemsetNodeSetChange(){
  118. var tPath2 = "/root/init/Dti"+gPathNm[gTabIdx1]+"/CustList";
  119. cmb_supregnum.choices.itemset.attribute("nodeset") = tPath2;
  120. cmb_supregnum.refresh();
  121. }
  122. // --------------------------------------------------
  123. // 세금계산서 주거래처 Set
  124. // --------------------------------------------------
  125. function fCustTreeSelect(pGrid) {
  126. var Idx = pGrid.row;
  127. if (pGrid.row == 0) return;
  128. var vDepth = model.getValue(pGrid.nodeset +"["+ pGrid.row +"]/depth" ); // 01 LEVEL
  129. var vPcode = model.getValue(pGrid.nodeset +"["+ pGrid.row +"]/pcode" ); // 02 코드+상위코드
  130. if (vDepth > "1") {
  131. vGoodFlag = vPcode.substr( 2, 1); // 02 물품구분
  132. model.setValue(dti_goodflag.attribute("ref") , vGoodFlag ); // 02 물품구분
  133. }
  134. if (vDepth > "2") {
  135. vGoodFlag = vPcode.substr( 2, 1); // 02 물품구분
  136. vSuplplcecd = vPcode.substr( 3, 10); // 03 주거래처
  137. vSuppcustcd = vPcode.substr(13, 10); // 04 보조거래처
  138. model.setValue(cmb_supregnum.attribute("ref"), vSuplplcecd); // 03 거래처 Name
  139. }
  140. cmb_supregnum.refresh();
  141. }
  142. // --------------------------------------------------
  143. // 세금계산서 Data 조회
  144. // --------------------------------------------------
  145. function fDtiDataSearchClick() {
  146. // 사용자 기관 List
  147. // model.removeNodeset(grd_baseinvoice.nodeset ); // 세금계산서 내역
  148. // model.removeNodeset(grd_invoiceitems.nodeset ); // 세금계산서 항목
  149. misfGridInit(grd_baseinvoice);
  150. misfGridInit(grd_invoiceitems);
  151. if (model.getValue(cmb_supregnum.attribute("ref")) == "") {
  152. alert("주거래처를 선택하십시요!!");
  153. return;
  154. }
  155. submit("TRRSI02730");
  156. if (model.getValue(gvErrorMsgPath + "/type") == "error") return;
  157. grd_baseinvoice.row = 1;
  158. fDtiItemDataSearch();
  159. model.refresh();
  160. }
  161. // --------------------------------------------------
  162. // 세금계산서 Data 조회
  163. // --------------------------------------------------
  164. function fDtiClearData() {
  165. misfGridInit(grd_baseinvoice);
  166. misfGridInit(grd_invoiceitems);
  167. }
  168. // --------------------------------------------------
  169. // 세금계산서 항목 조회
  170. // --------------------------------------------------
  171. function fDtiItemDataSearch() {
  172. model.removeNodeset(grd_invoiceitems.nodeset); // 세금계산서 항목
  173. if (grd_baseinvoice.row < 1) {
  174. return;
  175. }
  176. //
  177. model.setValue("/root/send/invoiceitem/inv_no", model.getValue(grd_baseinvoice.nodeset +"["+ grd_baseinvoice.row +"]/inv_no" )); // 01 계산서번호
  178. submit("TRRSI02731");
  179. }
  180. // --------------------------------------------------
  181. // View Option 처리하는 함수
  182. // --------------------------------------------------
  183. function fSumViewOption(pGrid,pOption, pCol) {
  184. // misfGridInit(pGrid);
  185. // pGrid.colHidden(pGrid.colRef(pCol)) = (pOption.value =="Y") ? false : true;
  186. grd_confirmlist.colHidden(grd_confirmlist.colRef(pCol)) = (pOption.value =="Y") ? false : true;
  187. // dti_search.dispatch("DOMActivate");
  188. // pGrid.refresh();grd_confirmlist
  189. }
  190. //
  191. // 입고내역 세금계산서번호 매핑한다.
  192. //
  193. function fSaveInvoiceData() {
  194. if (grd_baseinvoice.row < 1) {
  195. alert("세금계산서를 선택하십시요!!");
  196. return true;
  197. }
  198. var vNo = model.getValue(grd_baseinvoice.nodeset + "[" +grd_baseinvoice.row + "]/inv_no" ); // 17 전자계산서번호
  199. var vPub_date = model.getValue(grd_baseinvoice.nodeset + "[" +grd_baseinvoice.row + "]/pub_date" ); // 23 전자계산서일자
  200. var vNo_mapid = dti_emplno.value; // 전자계산서번호 매핑자
  201. var vNo_mapdd = getCurrentDate(); // 전자계산서번호 매핑일자
  202. var vNo_cnfmpsn = "-"; // 전자계산서번호 확정자
  203. var vNo_cnfmdd = "-"; // 전자계산서번호 확정일자
  204. var vNo_cnfmyn = "-"; // 전자계산서번호 확정여부
  205. // -----------------------------------------------------------------
  206. // 작업구분
  207. // winflag : 1 - 재고자산 입고내역 세금계산서번호 매핑
  208. // 2 - 의료장비의료비품 입고내역 세금계산서번호 매핑
  209. // 3 - 고정자산의 자산 수리 세금계산서번호 매핑
  210. //-----------------------------------------------------------------
  211. var UpdateCnt = 0;
  212. var vOldPath = "/root/init/oldgoodlist/";
  213. var vNewPath = "/root/main/goodlists/goodlist/";
  214. var vSndSave = "/root/send/save";
  215. var vSndPath = vSndSave +"/invoicelist";
  216. var vHeadData = fHederData();
  217. var vBodyData = "";
  218. if (model.getValue(cmb_custselect.attribute("ref"))== "A") {
  219. vBodyData = model.getValue(dti_instcd.attribute("ref" )) + "▦" // 01 기관코드
  220. + model.getValue(cmb_supregnum.attribute("ref" )) + "▦" // 02 주거래처
  221. + model.getValue(dti_goodflag.attribute("ref" )) + "▦" // 03 물품구분
  222. + "" + "▦" // 04 입고일자
  223. + "" + "▦" // 05 입고번호
  224. + "" + "▦" // 06 입고순번
  225. + "" + "▦" // 07 입고부서
  226. + model.getValue(ipt_fromdd.attribute("ref" )) + "▦" // 08 입고일자 FROM
  227. + model.getValue(ipt_todd.attribute("ref" )) + "▦" // 09 입고일자 TO
  228. + model.getValue(cmb_sanctyn.attribute("ref" )) + "▦" // 10 검수유무
  229. + model.getValue(ipt_winpsn.attribute("ref" )) + "▦" // 11 입고자
  230. + model.getValue(cmb_purcflag.attribute("ref" )) + "▦" // 12 구매구분
  231. + "" + "▦" // 13 계산서구분
  232. + model.getValue(rd_paycond.attribute("ref" )) + "▦" // 14 1:정상, 2:지불필
  233. + "" + "▦" // 15 계산서일자
  234. + model.getValue(ipt_frcalcdocudd.attribute("ref")) + "▦" // 16 계산서일자 FR
  235. + model.getValue(ipt_tocalcdocudd.attribute("ref")) + "▦" // 17 계산서일자 TO
  236. + vNo + "▦" // 18 전자계산서번호
  237. + vNo_mapid + "▦" // 19 전자계산서번호 매핑자
  238. + vNo_mapdd + "▦" // 20 전자계산서번호 매핑일자
  239. + vNo_cnfmpsn + "▦" // 21 전자계산서번호 확정자
  240. + vNo_cnfmdd + "▦" // 22 전자계산서번호 확정일자
  241. + vNo_cnfmyn + "▦" // 23 전자계산서번호 확정여부
  242. + vPub_date + "▦" // 24 전자계산서일자
  243. + model.getValue(ckb_sameyn.attribute("ref" )) + "▦" // 25 동일계산서일자
  244. + model.getValue(ckb_mappingyn.attribute("ref" )) + "▦" // 26 전자세금계산서 매핑 안된 것만
  245. + model.getValue(ckb_calcdocuddyn.attribute("ref")) + "▦" // 27 계산서일자 동시변경
  246. + "" + "▦" // 28 확정구분
  247. + "1" + "▩"; // 29 조건구분 0:입고KEY, 1:조건KEY
  248. UpdateCnt++;
  249. } else {
  250. var CheckFlag = "N";
  251. var pGridDetail = eval("grd_"+gGridNm[gTabIdx1])
  252. var sRowCnt = pGridDetail.rows - pGridDetail.fixedRows;
  253. var vInstcd = "" ; // 기관코드
  254. var vGoodFlag = "" ; // 물품구분
  255. var vWindd = "" ; // 입고일자
  256. var vWinno = "" ; // 입고번호(0000)
  257. var vWinseqno = "" ; // 입고일련번호(000~999)
  258. var vWindeptcd = "" ; // 입고부서코드
  259. var vSuplplcecd = "" ; // 주거래처코드
  260. for (var i=1; i<= sRowCnt; i++){
  261. CheckFlag = "N";
  262. if (model.getValue(pGridDetail.nodeset+"["+ i +"]/chk") == "Y") { // CHECK구분
  263. if (model.getValue(ckb_sameyn.attribute("ref")) == "Y") { // 동일계산서일자 구분
  264. if (model.getValue(pGridDetail.nodeset+"["+ i +"]/calcdocudd") == vPub_date) { // 계산서일자
  265. CheckFlag = "C";
  266. } else {
  267. CheckFlag = "X";
  268. }
  269. } else {
  270. CheckFlag = "Y";
  271. }
  272. //
  273. if (gTabIdx1 == "3") {
  274. vGoodFlag = model.getValue(pGridDetail.nodeset+"["+ i +"]/fixtrseqmtflag" ); // 물품구분
  275. vWindd = model.getValue(pGridDetail.nodeset+"["+ i +"]/reqdd" ); // 입고일자
  276. vWinno = model.getValue(pGridDetail.nodeset+"["+ i +"]/reqno" ); // 입고번호(0000)
  277. vWinseqno = "" ; // 입고일련번호(000~999)
  278. vWindeptcd = "" ; // 입고부서코드
  279. vSuplplcecd = model.getValue(pGridDetail.nodeset+"["+ i +"]/custcd" ); // 주거래처코드
  280. } else {
  281. vGoodFlag = model.getValue(pGridDetail.nodeset+"["+ i +"]/goodflag" ); // 물품구분
  282. vWindd = model.getValue(pGridDetail.nodeset+"["+ i +"]/windd" ); // 입고일자
  283. vWinno = model.getValue(pGridDetail.nodeset+"["+ i +"]/winno" ); // 입고번호(0000)
  284. vWinseqno = model.getValue(pGridDetail.nodeset+"["+ i +"]/winseqno" ); // 입고일련번호(000~999)
  285. vSuplplcecd = model.getValue(pGridDetail.nodeset+"["+ i +"]/suplplcecd" ); // 주거래처코드
  286. if (gTabIdx1 == "2") {
  287. vWindeptcd = ""; // 입고부서코드
  288. } else {
  289. vWindeptcd = model.getValue(pGridDetail.nodeset+"["+ i +"]/windeptcd" ); // 입고부서코드
  290. }
  291. }
  292. //
  293. if ((vGoodFlag != model.getValue(dti_goodflag.attribute("ref" ))) || // 물품구분
  294. (vSuplplcecd != model.getValue(cmb_supregnum.attribute("ref"))) ) { // 주거래처코드
  295. CheckFlag = "X";
  296. }
  297. //
  298. if (CheckFlag != "X") {
  299. vBodyData += model.getValue(dti_instcd.attribute("ref" ) ) + "▦" // 01 기관코드
  300. + vSuplplcecd + "▦" // 02 주거래처
  301. + vGoodFlag + "▦" // 03 물품구분
  302. + vWindd + "▦" // 04 입고일자
  303. + vWinno + "▦" // 05 입고번호
  304. + vWinseqno + "▦" // 06 입고순번
  305. + vWindeptcd + "▦" // 07 입고부서
  306. + "" + "▦" // 08 입고일자 FROM
  307. + "" + "▦" // 09 입고일자 TO
  308. + "" + "▦" // 10 검수유무
  309. + "" + "▦" // 11 입고자
  310. + "" + "▦" // 12 구매구분
  311. + "" + "▦" // 13 계산서구분
  312. + "" + "▦" // 14 1:정상, 2:지불필
  313. +((CheckFlag == "Y") ? "" : vPub_date) + "▦" // 15 계산서일자
  314. + "" + "▦" // 16 계산서일자 FR
  315. + "" + "▦" // 17 계산서일자 TO
  316. + vNo + "▦" // 18 전자계산서번호
  317. + vNo_mapid + "▦" // 19 전자계산서번호 매핑자
  318. + vNo_mapdd + "▦" // 20 전자계산서번호 매핑일자
  319. + "" + "▦" // 21 전자계산서번호 확정자
  320. + "" + "▦" // 22 전자계산서번호 확정일자
  321. + "" + "▦" // 23 전자계산서번호 확정여부
  322. + vPub_date + "▦" // 24 전자계산서일자
  323. + model.getValue(ckb_sameyn.attribute("ref" )) + "▦" // 25 동일계산서일자
  324. + model.getValue(ckb_mappingyn.attribute("ref" )) + "▦" // 26 전자세금계산서 매핑 안된 것만
  325. + model.getValue(ckb_calcdocuddyn.attribute("ref")) + "▦" // 27 계산서일자 동시변경
  326. + "" + "▦" // 28 확정구분
  327. + "0" + "▩"; // 29 조건구분 0:입고KEY, 1:조건KEY
  328. UpdateCnt++;
  329. }
  330. }
  331. }
  332. }
  333. //
  334. model.removenode(vSndSave);
  335. model.makeNode(vSndSave + "/winflag");
  336. model.setValue(vSndSave + "/winflag", gTabIdx1);
  337. model.makeNode(vSndPath);
  338. if (UpdateCnt == 0) {
  339. alert("해당자료가 없습니다!!");
  340. return;
  341. } else {
  342. model.setValue(vSndPath, vHeadData+vBodyData);
  343. }
  344. submit("TXRSI02730");
  345. if (model.getValue(gvErrorMsgPath + "/type") == "error") return;
  346. dti_cancel.dispatch("DOMActivate");
  347. alert("자료처리 완료!!!");
  348. gIndex = "9";
  349. fTreeGridClick();
  350. }
  351. //========================
  352. // Header Data
  353. //========================
  354. function fHederData() {
  355. return vHeadData = "instcd" +"▦" // 01 기관코드
  356. + "suplplcecd" +"▦" // 02 주거래처
  357. + "goodflag" +"▦" // 03 물품구분
  358. + "windd" +"▦" // 04 입고일자
  359. + "winno" +"▦" // 05 입고번호
  360. + "winseqno" +"▦" // 06 입고순번
  361. + "windeptcd" +"▦" // 07 입고부서
  362. + "fromdd" +"▦" // 08 입고일자 FROM
  363. + "todd" +"▦" // 09 입고일자 TO
  364. + "chkyn" +"▦" // 10 검수유무
  365. + "winpsn" +"▦" // 11 입고자
  366. + "purcflag" +"▦" // 12 구매구분
  367. + "calcdocukind" +"▦" // 13 계산서구분
  368. + "paycond" +"▦" // 14 1:정상, 2:지불필
  369. + "calcdocudd" +"▦" // 15 계산서일자
  370. + "frcalcdocudd" +"▦" // 16 계산서일자 FR
  371. + "tocalcdocudd" +"▦" // 17 계산서일자 TO
  372. + "inv_no" +"▦" // 18 전자계산서번호
  373. + "inv_no_mapid" +"▦" // 19 전자계산서번호 매핑자
  374. + "inv_no_mapdd" +"▦" // 20 전자계산서번호 매핑일자
  375. + "inv_no_cnfmpsn" +"▦" // 21 전자계산서번호 확정자
  376. + "inv_no_cnfmdd" +"▦" // 22 전자계산서번호 확정일자
  377. + "inv_no_cnfmyn" +"▦" // 23 전자계산서번호 확정여부
  378. + "pub_date" +"▦" // 24 전자계산서일자
  379. + "sameyn" +"▦" // 25 동일계산서일자
  380. + "mappingyn" +"▦" // 26 매핑안된거만
  381. + "calcdocuddyn" +"▦" // 27 계산서일자 동시변경
  382. + "cnfflag" +"▦" // 28 확정구분
  383. + "keyflag" +"▩"; // 29 조건구분 0:입고KEY, 1:조건KEY
  384. }
  385. //
  386. // 입고내역 세금계산서번호 매핑한다.
  387. //
  388. function fClearInvoiceData() {
  389. var vNo_mapid = "-"; // 전자계산서번호 매핑자
  390. var vNo_mapdd = "-"; // 전자계산서번호 매핑일자
  391. var vNo_cnfmpsn = "-"; // 전자계산서번호 확정자
  392. var vNo_cnfmdd = "-"; // 전자계산서번호 확정일자
  393. var vNo_cnfmyn = "-"; // 전자계산서번호 확정여부
  394. // -----------------------------------------------------------------
  395. // 작업구분
  396. // winflag : 1 - 재고자산 입고내역 세금계산서번호 매핑
  397. // 2 - 의료장비의료비품 입고내역 세금계산서번호 매핑
  398. // 3 - 고정자산의 자산 수리 세금계산서번호 매핑
  399. //-----------------------------------------------------------------
  400. var UpdateCnt = 0;
  401. var vSndSave = "/root/send/save";
  402. var vSndPath = vSndSave +"/invoicelist";
  403. var vHeadData = fHederData();
  404. var vBodyData = "";
  405. var pGridDetail = eval("grd_"+gGridNm[gTabIdx1])
  406. var sRowCnt = pGridDetail.rows - pGridDetail.fixedRows;
  407. var vInstcd = "" ; // 기관코드
  408. var vGoodFlag = "" ; // 물품구분
  409. var vWindd = "" ; // 입고일자
  410. var vWinno = "" ; // 입고번호(0000)
  411. var vWinseqno = "" ; // 입고일련번호(000~999)
  412. var vWindeptcd = "" ; // 입고부서코드
  413. var vSuplplcecd = "" ; // 주거래처코드
  414. for (var i=1; i<= sRowCnt; i++){
  415. if (pGridDetail.rowStatus(i) == "2") {
  416. if (gTabIdx1 == "3") {
  417. vGoodFlag = model.getValue(pGridDetail.nodeset+"["+ i +"]/fixtrseqmtflag" ); // 물품구분
  418. vWindd = model.getValue(pGridDetail.nodeset+"["+ i +"]/reqdd" ); // 입고일자
  419. vWinno = model.getValue(pGridDetail.nodeset+"["+ i +"]/reqno" ); // 입고번호(0000)
  420. vWinseqno = "" ; // 입고일련번호(000~999)
  421. vWindeptcd = "" ; // 입고부서코드
  422. vSuplplcecd = model.getValue(pGridDetail.nodeset+"["+ i +"]/custcd" ); // 주거래처코드
  423. } else {
  424. vGoodFlag = model.getValue(pGridDetail.nodeset+"["+ i +"]/goodflag" ); // 물품구분
  425. vWindd = model.getValue(pGridDetail.nodeset+"["+ i +"]/windd" ); // 입고일자
  426. vWinno = model.getValue(pGridDetail.nodeset+"["+ i +"]/winno" ); // 입고번호(0000)
  427. vWinseqno = model.getValue(pGridDetail.nodeset+"["+ i +"]/winseqno" ); // 입고일련번호(000~999)
  428. vSuplplcecd = model.getValue(pGridDetail.nodeset+"["+ i +"]/suplplcecd" ); // 주거래처코드
  429. if (gTabIdx1 == "2") {
  430. vWindeptcd = ""; // 입고부서코드
  431. } else {
  432. vWindeptcd = model.getValue(pGridDetail.nodeset+"["+ i +"]/windeptcd" ); // 입고부서코드
  433. }
  434. }
  435. //--
  436. vBodyData += model.getValue(cmb_instcd.attribute("ref" )) + "▦" // 01 기관코드
  437. + vSuplplcecd + "▦" // 02 주거래처
  438. + vGoodFlag + "▦" // 03 물품구분
  439. + vWindd + "▦" // 04 입고일자
  440. + vWinno + "▦" // 05 입고번호
  441. + vWinseqno + "▦" // 06 입고순번
  442. + vWindeptcd + "▦" // 07 입고부서
  443. + "" + "▦" // 08 입고일자 FROM
  444. + "" + "▦" // 09 입고일자 TO
  445. + "" + "▦" // 10 검수유무
  446. + "" + "▦" // 11 입고자
  447. + "" + "▦" // 12 구매구분
  448. + "" + "▦" // 13 계산서구분
  449. + "" + "▦" // 14 1:정상, 2:지불필
  450. + "" + "▦" // 15 계산서일자
  451. + "" + "▦" // 16 계산서일자 FR
  452. + "" + "▦" // 17 계산서일자 TO
  453. + "" + "▦" // 18 전자계산서번호
  454. + "" + "▦" // 19 전자계산서번호 매핑자
  455. + "" + "▦" // 20 전자계산서번호 매핑일자
  456. + "" + "▦" // 21 전자계산서번호 확정자
  457. + "" + "▦" // 22 전자계산서번호 확정일자
  458. + "" + "▦" // 23 전자계산서번호 확정여부
  459. + "" + "▦" // 24 전자계산서일자
  460. + "" + "▦" // 25 동일계산서일자
  461. + "" + "▦" // 26 전자세금계산서 매핑 안된 것만
  462. + "" + "▦" // 27 계산서일자 동시변경
  463. + "" + "▦" // 28 확정구분
  464. + "0" + "▩"; // 29 조건구분 0:입고KEY, 1:조건KEY
  465. UpdateCnt++;
  466. }
  467. }
  468. //
  469. model.removenode(vSndSave);
  470. model.makeNode(vSndSave + "/winflag");
  471. model.setValue(vSndSave + "/winflag", gTabIdx1);
  472. model.makeNode(vSndPath);
  473. if (UpdateCnt == 0) {
  474. alert("해당자료가 없습니다!!");
  475. return;
  476. } else {
  477. model.setValue(vSndPath, vHeadData+vBodyData);
  478. }
  479. submit("TXRSI02730");
  480. if (model.getValue(gvErrorMsgPath + "/type") == "error") return;
  481. alert("자료처리 완료!!!");
  482. gIndex = "9";
  483. fTreeGridClick();
  484. }
  485. /* ------------------------------------------------- */
  486. /* ------End Of List ------------------------------- */
  487. /* -------------------------------------------------- */