ZSD002.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590
  1. function fValidateMainData(){
  2. var deptcd = model.getValue("/root/main/data/deptcd");
  3. var deptnm = model.getValue("/root/main/data/deptnm");
  4. var deptdesc = model.getValue("/root/main/data/deptdesc");
  5. var deptcdlevl2 = model.getValue("/root/main/data/deptcdlevl2");
  6. var deptcdlevl3 = model.getValue("/root/main/data/deptcdlevl3");
  7. var deptcdlevl4 = model.getValue("/root/main/data/deptcdlevl4");
  8. var deptcdlevl5 = model.getValue("/root/main/data/deptcdlevl5");
  9. var deptcdlevl6 = model.getValue("/root/main/data/deptcdlevl6");
  10. var deptcdlevl7 = model.getValue("/root/main/data/deptcdlevl7");
  11. if(deptcd==""){
  12. messageBox('부서 코드를', 'C001');
  13. return false;
  14. }else if(deptnm==""){
  15. messageBox('부서 이름을', 'C001');
  16. return false;
  17. }else if(deptdesc==""){
  18. model.setValue("/root/main/data/deptdesc", deptnm);
  19. }else if(deptcdlevl2==""){
  20. messageBox('부서코드 레벨2를', 'C001');
  21. return false;
  22. }else if(deptcdlevl3==""){
  23. messageBox('부서코드 레벨3를', 'C001');
  24. return false;
  25. }else if(deptcdlevl4==""){
  26. messageBox('부서코드 레벨4를', 'C001');
  27. return false;
  28. }else if(deptcdlevl5==""){
  29. messageBox('부서코드 레벨5를', 'C001');
  30. return false;
  31. }else if(deptcdlevl6==""){
  32. messageBox('부서코드 레벨6를', 'C001');
  33. return false;
  34. }else if(deptcdlevl7==""){
  35. messageBox('부서코드 레벨7를', 'C001');
  36. return false;
  37. }
  38. return true;
  39. }
  40. function fInitMainData(disabled){
  41. model.setValue("/root/main/data/deptcd", "");
  42. model.setValue("/root/main/data/deptnm", "");
  43. model.setValue("/root/main/data/deptdesc", "");
  44. model.setValue("/root/main/data/deptcdlevl2", "");
  45. model.setValue("/root/main/data/deptcdlevl3", "");
  46. model.setValue("/root/main/data/deptcdlevl4", "");
  47. model.setValue("/root/main/data/deptcdlevl5", "");
  48. model.setValue("/root/main/data/deptcdlevl6", "");
  49. model.setValue("/root/main/data/deptcdlevl7", "");
  50. model.setValue("/root/main/data/updeptcd", "");
  51. model.setValue("/root/main/data/fstrgstrid", "omegatribe");
  52. model.setValue("/root/main/data/lastrgstrid", "omegatribe");
  53. model.refresh();
  54. }
  55. function fReorgDeptCD(){
  56. var deptcdlevl2 = model.getValue("/root/main/data/deptcdlevl2");
  57. if(deptcdlevl2.length!=1){
  58. messageBox('부서코드 레벨2를', 'C001');
  59. model.setValue("/root/main/data/deptcd", '');
  60. return;
  61. }
  62. var deptcdlevl3 = model.getValue("/root/main/data/deptcdlevl3");
  63. if(deptcdlevl3.length!=2){
  64. messageBox('부서코드 레벨3를', 'C001');
  65. model.setValue("/root/main/data/deptcd", '');
  66. return;
  67. }
  68. var deptcdlevl4 = model.getValue("/root/main/data/deptcdlevl4");
  69. if(deptcdlevl4.length!=2){
  70. messageBox('부서코드 레벨4를', 'C001');
  71. model.setValue("/root/main/data/deptcd", '');
  72. return;
  73. }
  74. var deptcdlevl5 = model.getValue("/root/main/data/deptcdlevl5");
  75. if(deptcdlevl5.length!=2){
  76. messageBox('부서코드 레벨5를', 'C001');
  77. model.setValue("/root/main/data/deptcd", '');
  78. return;
  79. }
  80. var deptcdlevl6 = model.getValue("/root/main/data/deptcdlevl6");
  81. if(deptcdlevl6.length!=2){
  82. messageBox('부서코드 레벨6를', 'C001');
  83. model.setValue("/root/main/data/deptcd", '');
  84. return;
  85. }
  86. var deptcdlevl7 = model.getValue("/root/main/data/deptcdlevl7");
  87. if(deptcdlevl7.length!=1){
  88. messageBox('부서코드 레벨7를', 'C001');
  89. model.setValue("/root/main/data/deptcd", '');
  90. return;
  91. }
  92. var deptcd = deptcdlevl2+deptcdlevl3+deptcdlevl4+deptcdlevl5+deptcdlevl6+deptcdlevl7;
  93. model.setValue("/root/main/data/deptcd", deptcd);
  94. model.refresh();
  95. }
  96. function fSelectedGrid2MainData(){
  97. var row = grd_deptcdlist.row;
  98. var deptcd = grd_deptcdlist.valueMatrix(row, 1);
  99. var deptnm = grd_deptcdlist.valueMatrix(row, 2);
  100. var deptdesc = grd_deptcdlist.valueMatrix(row, 3);
  101. var deptcdlevl2 = grd_deptcdlist.valueMatrix(row, 4);
  102. var deptcdlevl3 = grd_deptcdlist.valueMatrix(row, 5);
  103. var deptcdlevl4 = grd_deptcdlist.valueMatrix(row, 6);
  104. var deptcdlevl5 = grd_deptcdlist.valueMatrix(row, 7);
  105. var deptcdlevl6 = grd_deptcdlist.valueMatrix(row, 8);
  106. var deptcdlevl7 = grd_deptcdlist.valueMatrix(row, 9);
  107. var updeptcd = grd_deptcdlist.valueMatrix(row, 10);
  108. model.setValue("/root/main/data/deptcd", deptcd);
  109. model.setValue("/root/main/data/deptnm", deptnm);
  110. model.setValue("/root/main/data/deptdesc", deptdesc);
  111. model.setValue("/root/main/data/deptcdlevl2", deptcdlevl2);
  112. model.setValue("/root/main/data/deptcdlevl3", deptcdlevl3);
  113. model.setValue("/root/main/data/deptcdlevl4", deptcdlevl4);
  114. model.setValue("/root/main/data/deptcdlevl5", deptcdlevl5);
  115. model.setValue("/root/main/data/deptcdlevl6", deptcdlevl6);
  116. model.setValue("/root/main/data/deptcdlevl7", deptcdlevl7);
  117. model.setValue("/root/main/data/updeptcd", updeptcd);
  118. }
  119. function fInsRootDeptCD(){
  120. var maxdeptcdlevl2 = new Number(0);
  121. for(var i = grd_deptcdlist.fixedrows; i <grd_deptcdlist.rows; i++){
  122. var rowLevel = grd_deptcdlist.valueMatrix(i, grd_deptcdlist.colRef("level"));
  123. if(rowLevel==1){
  124. var deptcdlevl2 = new Number(grd_deptcdlist.valueMatrix(i, grd_deptcdlist.colRef("deptcdlevl2")));
  125. if(deptcdlevl2>maxdeptcdlevl2){
  126. maxdeptcdlevl2 = deptcdlevl2;
  127. }
  128. }
  129. }
  130. var offset = grd_deptcdlist.rows-1;
  131. var nextdeptcdlevl2 = maxdeptcdlevl2+1;
  132. if(maxdeptcdlevl2 == 9){
  133. messageBox('부서코드 레벨2는 9개 이상 지정', 'E001');
  134. return;
  135. }
  136. grd_deptcdlist.insertItem( offset, "after" ) ;
  137. offset++;
  138. var deptcdlevl2 = nextdeptcdlevl2;
  139. var deptcdlevl3 = "00";
  140. var deptcdlevl4 = "00";
  141. var deptcdlevl5 = "00";
  142. var deptcdlevl6 = "00";
  143. var deptcdlevl7 = "0"
  144. var deptcd = deptcdlevl2+deptcdlevl3+deptcdlevl4+deptcdlevl5+deptcdlevl6+deptcdlevl7;
  145. grd_deptcdlist.valueMatrix(offset, grd_deptcdlist.colRef("deptcd")) = deptcd;
  146. grd_deptcdlist.valueMatrix(offset, grd_deptcdlist.colRef("deptcdlevl2")) = deptcdlevl2;
  147. grd_deptcdlist.valueMatrix(offset, grd_deptcdlist.colRef("deptcdlevl3")) = deptcdlevl3;
  148. grd_deptcdlist.valueMatrix(offset, grd_deptcdlist.colRef("deptcdlevl4")) = deptcdlevl4;
  149. grd_deptcdlist.valueMatrix(offset, grd_deptcdlist.colRef("deptcdlevl5")) = deptcdlevl5;
  150. grd_deptcdlist.valueMatrix(offset, grd_deptcdlist.colRef("deptcdlevl6")) = deptcdlevl6;
  151. grd_deptcdlist.valueMatrix(offset, grd_deptcdlist.colRef("deptcdlevl7")) = deptcdlevl7;
  152. //grd_deptcdlist.valueMatrix(offset, 10) = "ROOT";
  153. grd_deptcdlist.valueMatrix(offset, grd_deptcdlist.colRef("level")) = 1;
  154. setTreeItem(grd_deptcdlist, grd_deptcdlist.colRef("level"), grd_deptcdlist.colRef("deptnm"));
  155. grd_deptcdlist.editCell();
  156. /*
  157. fInitMainData(false);
  158. model.setValue("/root/main/mode/modelabel", "부서코드 통합 마스터 관리 > 1차 분류에 부서코드 추가");
  159. model.setValue("/root/main/data/updeptcd", "ROOT");
  160. model.setValue("/root/main/mode/modestatus", "insert");
  161. */
  162. /*
  163. model.refresh();
  164. ipt_deptcdlevl2.disabled = true;
  165. ipt_deptcdlevl3.disabled = true;
  166. ipt_deptcdlevl4.disabled = true;
  167. ipt_deptcdlevl5.disabled = true;
  168. ipt_deptcdlevl6.disabled = true;
  169. ipt_deptcdlevl7.disabled = true;
  170. */
  171. }
  172. function fInsSiblingDeptCD(){
  173. var row = grd_deptcdlist.row;
  174. var level = new Number(grd_deptcdlist.valueMatrix(row, grd_deptcdlist.colRef("level")));
  175. if( level==1 || row <1){
  176. fInsRootDeptCD();
  177. }else{
  178. var parents_index = fGetParentsIndex(grd_deptcdlist, row, "supdeptcd", "deptcd");
  179. fInsBranchDeptCD(parents_index);
  180. }
  181. }
  182. function fGetParentsIndex(grid, child_index, sup_label, sub_label){
  183. var parents_index;
  184. var offset = child_index;
  185. var sup = grid.valueMatrix(offset, grid.colRef(sup_label));
  186. for(offset; offset>=grid.fixedRows; offset--){
  187. var comp_sup = grid.valueMatrix(offset, grid.colRef(sub_label));
  188. if(sup == comp_sup){
  189. parents_index = offset;
  190. break;
  191. }
  192. }
  193. return parents_index;
  194. }
  195. function fMaxBranchDeptCD(parents_index, cipher){
  196. var cipher_number = cipher[0];
  197. var cipher_cols = cipher[1];
  198. var parents_index = new Number(parents_index);
  199. var maxbranchcd;
  200. if(cipher_number==1){
  201. maxbranchcd = "0";
  202. }else if(cipher_number==2){
  203. maxbranchcd = "00";
  204. }
  205. var offset = parents_index;
  206. var index = offset;
  207. var branch_level = new Number(grd_deptcdlist.valueMatrix(parents_index, grd_deptcdlist.colRef("level")))+1;
  208. while( offset < grd_deptcdlist.rows ){
  209. var complevel = grd_deptcdlist.valueMatrix(offset, grd_deptcdlist.colRef("level"));
  210. if( parents_index == offset ){
  211. index = offset;
  212. }else if( complevel == branch_level ){
  213. var branchcd = grd_deptcdlist.valueMatrix(offset, grd_deptcdlist.colRef(cipher_cols));
  214. if( branchcd > maxbranchcd ){
  215. maxbranchcd = branchcd;
  216. }
  217. index = offset;
  218. }else if( complevel > branch_level ){
  219. index = offset;
  220. }else if(complevel < branch_level ){
  221. break;
  222. }
  223. offset++;
  224. }
  225. var maxbranch = new Array(2);
  226. maxbranch[0] = maxbranchcd;
  227. maxbranch[1] = index;
  228. return maxbranch;
  229. }
  230. function fGetNumberOfCipher(level){
  231. var return_values = new Array(2);
  232. var cipher;
  233. var cols_label;
  234. var ciphers_1 = 1;
  235. var ciphers_2 = 2;
  236. var ciphers_n = 3;
  237. var ciphers_e = 4;
  238. if(level.constructor!=Number){
  239. cipher = ciphers_e;
  240. cols_label = "none";
  241. }else if(level==1){
  242. cipher = ciphers_1;
  243. cols_label = "deptcdlevl2";
  244. }else if(level==2){
  245. cipher = ciphers_2;
  246. cols_label = "deptcdlevl3";
  247. }else if(level==3){
  248. cipher = ciphers_2;
  249. cols_label = "deptcdlevl4";
  250. }else if(level==4){
  251. cipher = ciphers_2;
  252. cols_label = "deptcdlevl5";
  253. }else if(level==5){
  254. cipher = ciphers_2;
  255. cols_label = "deptcdlevl6";
  256. }else if(level==6){
  257. cipher = ciphers_1;
  258. cols_label = "deptcdlevl7";
  259. }else{
  260. alert("알수없는 level : "+level);
  261. cipher = ciphers_n;
  262. cols_label = "none";
  263. }
  264. return_values[0] = cipher;
  265. return_values[1] = cols_label;
  266. return return_values;
  267. }
  268. function fInsBranchDeptCD(parents_index){
  269. var parents_level = new Number(grd_deptcdlist.valueMatrix(parents_index, grd_deptcdlist.colRef("level")));
  270. if(parents_index==-1){
  271. messageBox('추가할 상위 부서코드를', 'C002');
  272. return;
  273. }else if(parents_level==6){
  274. messageBox('부서코드 레벨7 이하의 하위의 부서를 생성', 'E001');
  275. return;
  276. }
  277. var child_level = parents_level+1;
  278. var child_cipher = fGetNumberOfCipher(child_level);
  279. var child_cipher_number = child_cipher[0];
  280. var child_cipher_cols = child_cipher[1];
  281. var max_branchcd_bundle = fMaxBranchDeptCD(parents_index, child_cipher);
  282. var max_branchcd = max_branchcd_bundle[0];
  283. var insert_index = max_branchcd_bundle[1];
  284. var next_branchcd_bundle = plus(max_branchcd);
  285. var next_branchcd_exist = next_branchcd_bundle[0];
  286. var next_branchcd_errormsg = next_branchcd_bundle[1];
  287. var next_branchcd = next_branchcd_bundle[2];
  288. if(!next_branchcd_exist){
  289. return;
  290. }
  291. var parents_deptcd = grd_deptcdlist.valueMatrix(parents_index, grd_deptcdlist.colRef("deptcd"));
  292. var parents_deptnm = grd_deptcdlist.valueMatrix(parents_index, grd_deptcdlist.colRef("deptnm"));
  293. var parents_deptcdlevl2 = grd_deptcdlist.valueMatrix(parents_index, grd_deptcdlist.colRef("deptcdlevl2"));
  294. var parents_deptcdlevl3 = grd_deptcdlist.valueMatrix(parents_index, grd_deptcdlist.colRef("deptcdlevl3"));
  295. var parents_deptcdlevl4 = grd_deptcdlist.valueMatrix(parents_index, grd_deptcdlist.colRef("deptcdlevl4"));
  296. var parents_deptcdlevl5 = grd_deptcdlist.valueMatrix(parents_index, grd_deptcdlist.colRef("deptcdlevl5"));
  297. var parents_deptcdlevl6 = grd_deptcdlist.valueMatrix(parents_index, grd_deptcdlist.colRef("deptcdlevl6"));
  298. var parents_deptcdlevl7 = grd_deptcdlist.valueMatrix(parents_index, grd_deptcdlist.colRef("deptcdlevl7"));
  299. if(child_cipher_cols=="deptcdlevl3"){
  300. var deptcdlevl2 = parents_deptcdlevl2;
  301. var deptcdlevl3 = next_branchcd;
  302. var deptcdlevl4 = "00";
  303. var deptcdlevl5 = "00";
  304. var deptcdlevl6 = "00";
  305. var deptcdlevl7 = "0";
  306. }else if(child_cipher_cols=="deptcdlevl4"){
  307. var deptcdlevl2 = parents_deptcdlevl2;
  308. var deptcdlevl3 = parents_deptcdlevl3;
  309. var deptcdlevl4 = next_branchcd;
  310. var deptcdlevl5 = "00";
  311. var deptcdlevl6 = "00";
  312. var deptcdlevl7 = "0";
  313. }else if(child_cipher_cols=="deptcdlevl5"){
  314. var deptcdlevl2 = parents_deptcdlevl2;
  315. var deptcdlevl3 = parents_deptcdlevl3;
  316. var deptcdlevl4 = parents_deptcdlevl4;
  317. var deptcdlevl5 = next_branchcd;
  318. var deptcdlevl6 = "00";
  319. var deptcdlevl7 = "0";
  320. }else if(child_cipher_cols=="deptcdlevl6"){
  321. var deptcdlevl2 = parents_deptcdlevl2;
  322. var deptcdlevl3 = parents_deptcdlevl3;
  323. var deptcdlevl4 = parents_deptcdlevl4;
  324. var deptcdlevl5 = parents_deptcdlevl5;
  325. var deptcdlevl6 = next_branchcd;
  326. var deptcdlevl7 = "0";
  327. }else if(child_cipher_cols=="deptcdlevl7"){
  328. var deptcdlevl2 = parents_deptcdlevl2;
  329. var deptcdlevl3 = parents_deptcdlevl3;
  330. var deptcdlevl4 = parents_deptcdlevl4;
  331. var deptcdlevl5 = parents_deptcdlevl5;
  332. var deptcdlevl6 = parents_deptcdlevl6;
  333. var deptcdlevl7 = next_branchcd;
  334. }
  335. grd_deptcdlist.insertItem(insert_index, "after") ;
  336. var branch_index = insert_index +1;
  337. var branch_deptcd = deptcdlevl2+deptcdlevl3+deptcdlevl4+deptcdlevl5+deptcdlevl6+deptcdlevl7;
  338. grd_deptcdlist.valueMatrix(branch_index, grd_deptcdlist.colRef("deptcd")) = branch_deptcd;
  339. grd_deptcdlist.valueMatrix(branch_index, grd_deptcdlist.colRef("deptcdlevl2")) = deptcdlevl2;
  340. grd_deptcdlist.valueMatrix(branch_index, grd_deptcdlist.colRef("deptcdlevl3")) = deptcdlevl3;
  341. grd_deptcdlist.valueMatrix(branch_index, grd_deptcdlist.colRef("deptcdlevl4"))= deptcdlevl4;
  342. grd_deptcdlist.valueMatrix(branch_index, grd_deptcdlist.colRef("deptcdlevl5")) = deptcdlevl5;
  343. grd_deptcdlist.valueMatrix(branch_index, grd_deptcdlist.colRef("deptcdlevl6")) = deptcdlevl6;
  344. grd_deptcdlist.valueMatrix(branch_index, grd_deptcdlist.colRef("deptcdlevl7")) = deptcdlevl7;
  345. grd_deptcdlist.valueMatrix(branch_index, grd_deptcdlist.colRef("supdeptcd")) = parents_deptcd;
  346. grd_deptcdlist.valueMatrix(branch_index, grd_deptcdlist.colRef("supdeptnm")) = parents_deptnm;
  347. grd_deptcdlist.valueMatrix(branch_index, grd_deptcdlist.colRef("level")) = child_level;
  348. setTreeItem(grd_deptcdlist, grd_deptcdlist.colRef("level"), grd_deptcdlist.colRef("deptnm"));
  349. }
  350. function fGetDeptCD(){
  351. model.setValue("/root/main/mode/modelabel", "부서코드 통합 마스터 관리>부서코드 상세정보");
  352. model.setValue("/root/main/mode/modestatus", "view");
  353. fSelectedGrid2MainData();
  354. model.refresh();
  355. }
  356. function fDelDeptCD(){
  357. var status_insert = 1;
  358. var status_insert_new = 3;
  359. var del_index = new Number(grd_deptcdlist.row);
  360. var row_status = grd_deptcdlist.rowstatus(del_index);
  361. if( row_status == 1 || row_status == 3 ){
  362. var sub_index = del_index+1;
  363. var last_index = new Number(grd_deptcdlist.rows)-1;
  364. if( del_index == last_index ){
  365. grd_deptcdlist.deleteItem(del_index);
  366. setTreeItem(grd_deptcdlist, grd_deptcdlist.colRef("level"), grd_deptcdlist.colRef("deptnm"));
  367. } else {
  368. var del_level = grd_deptcdlist.valueMatrix(del_index, grd_deptcdlist.colRef("level"));
  369. var sub_level = grd_deptcdlist.valueMatrix(sub_index, grd_deptcdlist.colRef("level"));
  370. if(del_level<sub_level){
  371. var deptcd = grd_deptcdlist.valueMatrix(del_index, grd_deptcdlist.colRef("deptcd"));
  372. messageBox('부서코드 ['+deptcd +']는 하위부서코드를 포함하고 있기 때문에 삭제', 'E001');
  373. return;
  374. }else{
  375. grd_deptcdlist.deleteItem(del_index);
  376. setTreeItem(grd_deptcdlist, grd_deptcdlist.colRef("level"), grd_deptcdlist.colRef("deptnm"));
  377. }
  378. }
  379. }else{
  380. messageBox('이미 적용된 부서코드는 삭제', 'E001');
  381. }
  382. }
  383. function fModeDeptCD(){
  384. var row = grd_cdgruplist.row;
  385. if(row==-1) {
  386. messageBox('삭제할 대상 코드군을', 'C002');
  387. return;
  388. }
  389. model.setValue("/root/main/mode/modelabel", "코드군 관리>코드군 삭제");
  390. model.setValue("/root/main/mode/modestatus", "delete");
  391. var prevlevel = grd_cdgruplist.valueMatrix(row, 14);
  392. var baserow = row;
  393. while(true){
  394. if(prevlevel==1) break;
  395. baserow = baserow-1;
  396. var level = grd_cdgruplist.valueMatrix(baserow, 14);
  397. if(level<prevlevel){
  398. break;
  399. }
  400. }
  401. var supcdgrupid = grd_cdgruplist.valueMatrix(baserow, 1);
  402. fSelectedGrid2MainData();
  403. var cdgrupid = model.getValue("/root/main/data/cdgrupid");
  404. if(supcdgrupid == cdgrupid){
  405. supcdgrupid = "root";
  406. }
  407. model.setValue("/root/main/data/supcdgrupid", supcdgrupid);
  408. model.refresh();
  409. }
  410. function setTreeItem(grid, levelcol, targetcol) {
  411. for(var i = grid.fixedRows; i < grid.rows; i++){
  412. grid.outlinelevel(i)=grid.valuematrix(i, levelcol);
  413. }
  414. grid.outlinecol=targetcol;
  415. grid.outlinebar=2;
  416. grid.treecolor="#948777"
  417. }
  418. function plus(value){
  419. if(value.length==1){
  420. return plus1(value);
  421. }else if(value.length==2){
  422. return plus2(value);
  423. }else{
  424. var return_values = new Array(3);
  425. var success = false;
  426. var description = "길이가 "+value.length+"인 피연산자는 plus함수로 연산이 불가능합니다.";
  427. var sum = -1;
  428. return_values[0] = success;
  429. return_values[1] = description;
  430. return_values[2] = sum;
  431. return return_values;
  432. }
  433. }
  434. function plus1(value){
  435. var value = new Number(value);
  436. var return_values = new Array(3);
  437. var success;
  438. var description;
  439. var sum;
  440. if(value>8){
  441. success = false;
  442. description = "plus1함수는 1자리수 이하의 연산이 가능합니다.";
  443. sum = -1;
  444. }else{
  445. success = true;
  446. description = "plus1함수는 1자리수 이하의 연산이 가능합니다.";
  447. sum = value + 1;
  448. }
  449. return_values[0] = success;
  450. return_values[1] = description;
  451. return_values[2] = sum;
  452. return return_values;
  453. }
  454. function plus2(value){
  455. var return_values = new Array(3);
  456. var success = true;
  457. var description;
  458. var sum;
  459. if(value.length!=2){
  460. success = 'false';
  461. description = "plus2함수는 2자리수일때만 연산이 가능합니다.";
  462. }else{
  463. var start = value.substring(0 , 1);
  464. var end = value.substring(1, 2);
  465. if(end==9){
  466. var start_number = new Number(start);
  467. if( start_number >= 0 && start_number < 9 ){
  468. start = new String(start_number + 1);
  469. }else if(start_number == 9){
  470. start = 'A';
  471. }else if(start=='A'){
  472. start = 'B';
  473. }else if(start=='B'){
  474. start = 'C';
  475. }else if(start=='C'){
  476. start = 'D';
  477. }else if(start=='D'){
  478. start = 'E';
  479. }else if(start=='E'){
  480. start = 'F';
  481. }else if(start=='F'){
  482. start = 'G';
  483. }else if(start=='G'){
  484. start = 'H';
  485. }else if(start=='H'){
  486. start = 'I';
  487. }else if(start=='I'){
  488. start = 'J';
  489. }else if(start=='J'){
  490. start = 'K';
  491. }else if(start=='K'){
  492. start = 'L';
  493. }else if(start=='L'){
  494. start = 'M';
  495. }else if(start=='M'){
  496. start = 'N';
  497. }else if(start=='N'){
  498. start = 'O';
  499. }else if(start=='O'){
  500. start = 'P';
  501. }else if(start=='P'){
  502. start = 'Q';
  503. }else if(start=='Q'){
  504. start = 'R';
  505. }else if(start=='R'){
  506. start = 'S';
  507. }else if(start=='S'){
  508. start = 'T';
  509. }else if(start=='T'){
  510. start = 'U';
  511. }else if(start=='U'){
  512. start = 'V';
  513. }else if(start=='V'){
  514. start = 'W';
  515. }else if(start=='W'){
  516. start = 'X';
  517. }else if(start=='X'){
  518. start = 'Y';
  519. }else if(start=='Y'){
  520. start = 'Z';
  521. }else if(start=='Z'){
  522. success = false;
  523. description = 'Z9 이상 일련번호를 발번할 수 없습니다.';
  524. sum = 'ZA';
  525. return_values[0] = success;
  526. return_values[1] = description;
  527. return_values[2] = sum;
  528. return return_values;
  529. }
  530. end = '0';
  531. }else{
  532. end = new Number(end);
  533. end = end+1;
  534. }
  535. success = true;
  536. description = "으흑 성공";
  537. sum = start+end;
  538. return_values[0] = success;
  539. return_values[1] = description;
  540. return_values[2] = sum;
  541. return return_values;
  542. }
  543. }