SPMNR05700.js 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990
  1. /*
  2. 경구입력(SMMNR05700.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var xPathBizFlag = "/root/main/cond/bizflag";
  7. /**
  8. * @group :
  9. * @ver : 2008.06.20
  10. * @by : 양천덕
  11. * @---------------------------------------------------
  12. * @type : function
  13. * @access : public
  14. * @desc : 화면 초기화
  15. * @param :
  16. * @return :
  17. * @---------------------------------------------------
  18. */
  19. function fInitialize(){
  20. model.removeNode("/root/main/oralsuminfo/oralsumlist");
  21. model.removeNode("/root/main/deloralinfo/delorallist");
  22. if(checkOpener()){
  23. /**
  24. SPMNR05700_Param
  25. pid▦indd▦cretno▦wardcd▩ ==> 등록번호▦입원일자▦생성번호▦병동코드▩
  26. **/
  27. var sParamInfo = opener.javascript.getParameter("SPMNR05700_Param");
  28. //var sParamInfo = "pid▦indd▦cretno▦wardcd▦recdd▩18864191▦20080104▦800340900▦3050107000▦20080621▩"
  29. model.setValue("/root/main/cond/pid", getArrayData(sParamInfo,1,0));
  30. model.setValue("/root/main/cond/orddd", getArrayData(sParamInfo,1,1));
  31. model.setValue("/root/main/cond/cretno", getArrayData(sParamInfo,1,2));
  32. model.setValue("/root/main/cond/wardcd", getArrayData(sParamInfo,1,3));
  33. model.setValue("/root/main/cond/seardd", getArrayData(sParamInfo,1,4));
  34. }
  35. if(model.getValue("/root/main/cond/seardd") == ""){
  36. ipt_seardd.value = getCurrentDate();
  37. }
  38. model.copynode("root/send", "root/main/cond");
  39. model.setValue(xPathBizFlag, "insert");
  40. fOrdddChng();
  41. fSearDietRec();
  42. //submit("TRMNR05701");
  43. for(var irow = grd_etcdiet.fixedRows ; irow <= grd_etcdiet.rows - grd_etcdiet.fixedRows ;irow++){
  44. grd_etcdiet.isReadOnly(irow, grd_etcdiet.colRef("itemnm"), irow, grd_etcdiet.colRef("baseqty")) = true;
  45. }
  46. }
  47. /**
  48. * @group :
  49. * @ver : 2008.06.20
  50. * @by : 양천덕
  51. * @---------------------------------------------------
  52. * @type : function
  53. * @access : public
  54. * @desc : 끼니 선택 변경
  55. * @param :
  56. * @return :
  57. * @---------------------------------------------------
  58. */
  59. function fChngMeal(pFlag){
  60. fInitOralIntake("prcpdiet");
  61. switch (pFlag){
  62. case "1" :
  63. grd_prcpdiet.valueMatrix(1, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/breakrice");
  64. grd_prcpdiet.valueMatrix(2, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/breakgruel");
  65. break;
  66. case "2" :
  67. grd_prcpdiet.valueMatrix(1, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/lunchrice");
  68. grd_prcpdiet.valueMatrix(2, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/lunchgruel");
  69. break;
  70. case "3" :
  71. grd_prcpdiet.valueMatrix(1, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/dinnerrice");
  72. grd_prcpdiet.valueMatrix(2, grd_prcpdiet.colRef("baseqty")) = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/dinnergruel");
  73. break;
  74. }
  75. }
  76. /**
  77. * @group :
  78. * @ver : 2008.06.20
  79. * @by : 양천덕
  80. * @---------------------------------------------------
  81. * @type : function
  82. * @access : public
  83. * @desc : 기타 식이 행추가
  84. * @param :
  85. * @return :
  86. * @---------------------------------------------------
  87. */
  88. function fEtcDietAddRow(){
  89. grd_etcdiet.addRow(true);
  90. grd_etcdiet.valueMatrix(grd_etcdiet.rows -1, grd_etcdiet.colRef("itemcd")) = "HI999999";
  91. grd_etcdiet.cellStyle("background-color", grd_etcdiet.rows -1, 0, grd_etcdiet.rows -1, 0) = "#ffff99";
  92. grd_etcdiet.topRow = grd_etcdiet.rows -1;
  93. }
  94. /**
  95. * @group :
  96. * @ver : 2008.06.20
  97. * @by : 양천덕
  98. * @---------------------------------------------------
  99. * @type : function
  100. * @access : public
  101. * @desc : 기타 식이 행삭제
  102. * @param :
  103. * @return :
  104. * @---------------------------------------------------
  105. */
  106. function fEtcDietDelRow(){
  107. if(grd_etcdiet.valueMatrix(grd_etcdiet.row, grd_etcdiet.colRef("carerecseqno")) == "" && grd_etcdiet.valueMatrix(grd_etcdiet.row, grd_etcdiet.colRef("itemcd")) == "" ){
  108. grd_etcdiet.deleteRow(grd_etcdiet.row, false);
  109. }else{
  110. messageBox("고정항목은 삭제할 수", "I004");
  111. }
  112. }
  113. /**
  114. * @group :
  115. * @ver : 2008.06.20
  116. * @by : 양천덕
  117. * @---------------------------------------------------
  118. * @type : function
  119. * @access : public
  120. * @desc : 식이 입력
  121. * @param :
  122. * @return :
  123. * @---------------------------------------------------
  124. */
  125. function fPrcpDietMove(pFlag){
  126. if(model.getValue("/root/main/cond/duty") == ""){
  127. //fInitOralIntake("All");
  128. messageBox("Duty를 선택하십시오.","I");
  129. return;
  130. }
  131. var insduty = model.getValue("/root/main/cond/duty");
  132. var insmealflag = model.getValue("/root/main/cond/mealflag");
  133. var insprcpnm = "";
  134. var insitemcd = "";
  135. var insintakeqty = 0;
  136. var insitemnm = "";
  137. var instotalrow = 0;
  138. var insetcitemcd = "";
  139. var insetcintakeqty = "";
  140. var insetcdietdesc = "";
  141. var insetcdietitemnm = "";
  142. var chkDuty = 0;
  143. var sBizFlag = model.getValue(xPathBizFlag);
  144. switch(pFlag){
  145. case "prcpdiet" :
  146. if(model.getValue("/root/main/cond/mealflag") == ""){
  147. messageBox("끼니를 선택하십시오","I");
  148. return;
  149. }
  150. if(insmealflag == "1"){
  151. insprcpnm = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/breakdietprcpnm");
  152. }else if(insmealflag == "2"){
  153. insprcpnm = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/lunchdietprcpnm");
  154. }else{
  155. insprcpnm = model.getValue("/root/main/dietinfo/dietlist/dietprcplist/dinnerdietprcpnm");
  156. }
  157. switch(sBizFlag){
  158. case "insert" :
  159. if(grd_dietsubtotal.rows- grd_dietsubtotal.fixedRows > 0){
  160. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  161. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  162. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  163. //if(insduty == sduty && insmealflag == smealflag ){
  164. if(insmealflag == smealflag ){
  165. chkDuty = j;
  166. }
  167. }
  168. }
  169. if(chkDuty > 0){
  170. var mealflagnm = model.getValue("/root/hidden/mealinfo/meallist[value="+insmealflag+"]/name");
  171. messageBox(mealflagnm +" 입력 값이 있습니다. 조회테이블에서 [구분]을 선택하여 수정하십시오.", "I");
  172. return;
  173. }
  174. for(var i = grd_prcpdiet.fixedRows ; i <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; i++){
  175. if(grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) != "" ){
  176. insitemcd = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("itemcd")) ;
  177. insintakeqty = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) ;
  178. insitemnm = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("itemnm")) ;
  179. instotalrow++;
  180. var saveRow = 0;
  181. var insRowDuty = 0;
  182. if(grd_dietsubtotal.rows- grd_dietsubtotal.fixedRows > 0){
  183. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  184. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  185. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  186. var sitemcd = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("itemcd"));
  187. //이전 입력 데이터 행 조회
  188. if(insduty == sduty && insmealflag == smealflag && insitemcd == sitemcd){
  189. saveRow = j;
  190. }
  191. //입력 위치행 조회
  192. if(insduty +insmealflag >= sduty + smealflag ){
  193. insRowDuty = j;
  194. }
  195. }
  196. }
  197. if(saveRow == 0){
  198. grd_dietsubtotal.insertRow(insRowDuty, "below", false, true);
  199. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("duty")) = insduty;
  200. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("mealflag")) = insmealflag;
  201. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("prcpnm")) = insprcpnm;
  202. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemnm")) = insitemnm;
  203. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemcd")) = insitemcd;
  204. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  205. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("lnkitemcd")) = model.getvalue("/root/main/dietinfo/dietlist/dietsubitem[mealflag="+insmealflag+"]/itemcd") ;
  206. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("status")) = "I";
  207. }else{
  208. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  209. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("status")) = "U";
  210. }
  211. }
  212. }
  213. break;
  214. case "update" :
  215. model.removenodeSet("/root/main/deloralinfo");
  216. for(var i = grd_prcpdiet.fixedRows ; i <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; i++){
  217. insitemcd = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("itemcd")) ;
  218. insintakeqty = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) ;
  219. insitemnm = grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("itemnm")) ;
  220. if(grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) != "" ){
  221. instotalrow++;
  222. var saveRow = 0;
  223. var insRowDuty = 0;
  224. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  225. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  226. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  227. var sitemcd = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("itemcd"));
  228. //이전 입력 데이터 행 조회
  229. if(insduty == sduty && insmealflag == smealflag && insitemcd == sitemcd){
  230. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("status")) == "I"){
  231. grd_dietsubtotal.deleteRow(j, false);
  232. }else{
  233. saveRow = j;
  234. }
  235. }
  236. //입력 위치행 조회
  237. if(insduty >= sduty && insmealflag >= smealflag ){
  238. insRowDuty = j;
  239. }
  240. }
  241. if(saveRow == 0){
  242. grd_dietsubtotal.insertRow(insRowDuty, "below", false, true);
  243. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("duty")) = insduty;
  244. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("mealflag")) = insmealflag;
  245. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("prcpnm")) = insprcpnm;
  246. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemnm")) = insitemnm;
  247. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemcd")) = insitemcd;
  248. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  249. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("lnkitemcd")) = model.getvalue("/root/main/dietinfo/dietlist/dietsubitem[mealflag="+insmealflag+"]/itemcd") ;
  250. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("status")) = "I";
  251. }else{
  252. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("prcpnm")) = insprcpnm;
  253. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  254. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("status")) = "U";
  255. }
  256. }else{
  257. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  258. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  259. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  260. var sitemcd = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("itemcd"));
  261. if(insduty == sduty && insmealflag == smealflag && insitemcd == sitemcd){
  262. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("status")) != "I"){
  263. var NodeNum = eval(getNodesetCount("/root/main/deloralinfo/delorallist"))+1;
  264. model.makeValue("/root/main/deloralinfo/delorallist["+NodeNum+"]/status", "D");
  265. model.makeValue("/root/main/deloralinfo/delorallist["+NodeNum+"]/carerecseqno", grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("carerecseqno")));
  266. }
  267. grd_dietsubtotal.deleteRow(j, false);
  268. }
  269. }
  270. }
  271. }
  272. break;
  273. }
  274. grd_dietsubtotal.refresh();
  275. //섭취량 초기화 및 입력 상태 변경
  276. fInitOralIntake("prcpdiet");
  277. break;
  278. case "etcdiet" :
  279. insmealflag = "4";
  280. switch(sBizFlag){
  281. case "insert" :
  282. if(grd_dietsubtotal.rows- grd_dietsubtotal.fixedRows > 0){
  283. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  284. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  285. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  286. if(insduty == sduty && insmealflag == smealflag ){
  287. chkDuty = j;
  288. }
  289. }
  290. }
  291. if(chkDuty > 0 && model.getValue(xPathBizFlag)== "insert"){
  292. var mealflagnm = model.getValue("/root/hidden/mealinfo/meallist[value="+insmealflag+"]/name");
  293. messageBox(mealflagnm +" 입력 값이 있습니다. 조회테이블에서 [구분]을 선택하여 수정하십시오.", "I");
  294. return;
  295. }
  296. for(var i = grd_etcdiet.fixedRows ; i <= grd_etcdiet.rows - grd_etcdiet.fixedRows ; i++){
  297. if(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")) != "" ){
  298. if(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm")) == ""){
  299. messageBox("추가한 기타식이 항목 종류를 입력하십시오","I");
  300. return;
  301. }
  302. if(insetcitemcd == ""){
  303. insetcitemcd = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemcd"));
  304. insetcintakeqty = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty"));
  305. insetcdietitemnm = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm"));
  306. }else{
  307. insetcitemcd += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemcd"));
  308. insetcintakeqty += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty"));
  309. insetcdietitemnm += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm"));
  310. }
  311. insintakeqty += eval(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")));
  312. instotalrow++;
  313. }
  314. }
  315. if(instotalrow > 0){
  316. insitemcd = model.getValue("/root/main/dietinfo/dietlist/dietsubitem[mealflag = "+ "4" + "]/itemcd");
  317. insetcdietdesc = insetcitemcd + "|" + insetcintakeqty + "|" + insetcdietitemnm;
  318. }else{
  319. break;
  320. }
  321. var saveRow = 0;
  322. var insRowDuty = 0;
  323. if(grd_dietsubtotal.rows- grd_dietsubtotal.fixedRows > 0){
  324. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  325. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  326. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  327. var sitemcd = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("itemcd"));
  328. //이전 입력 데이터 행 조회
  329. if(insduty == sduty && insmealflag == smealflag && insitemcd == sitemcd){
  330. saveRow = j;
  331. }
  332. //입력 위치행 조회
  333. if(insduty + insmealflag >= sduty + smealflag){
  334. insRowDuty = j;
  335. }
  336. }
  337. }
  338. if(saveRow == 0){
  339. grd_dietsubtotal.insertRow(insRowDuty, "below", false, true);
  340. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("duty")) = insduty;
  341. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("mealflag")) = insmealflag;
  342. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("prcpnm")) = insprcpnm;
  343. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemnm")) = insitemnm;
  344. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemcd")) = insitemcd;
  345. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  346. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("lnkitemcd")) = model.getvalue("/root/main/dietinfo/dietlist/dietsubitem[mealflag="+insmealflag+"]/itemcd") ;
  347. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("etcdietdesc")) = insetcdietdesc;
  348. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("status")) = "I";
  349. }else{
  350. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  351. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("etcdietdesc")) = insetcdietdesc;
  352. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("status")) = "U";
  353. }
  354. break;
  355. case "update" :
  356. for(var i = grd_etcdiet.fixedRows ; i <= grd_etcdiet.rows - grd_etcdiet.fixedRows ; i++){
  357. if(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")) != "" ){
  358. if(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm")) == ""){
  359. messageBox("추가한 기타식이 항목 종류를 입력하십시오","I");
  360. return;
  361. }
  362. if(insetcitemcd == ""){
  363. insetcitemcd = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemcd"));
  364. insetcintakeqty = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty"));
  365. insetcdietitemnm = grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm"));
  366. }else{
  367. insetcitemcd += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemcd"));
  368. insetcintakeqty += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty"));
  369. insetcdietitemnm += "^"+grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("itemnm"));
  370. }
  371. insintakeqty += eval(grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")));
  372. instotalrow++;
  373. }
  374. }
  375. if(instotalrow > 0){
  376. insitemcd = model.getValue("/root/main/dietinfo/dietlist/dietsubitem[mealflag = "+ "4" + "]/itemcd");
  377. insetcdietdesc = insetcitemcd + "|" + insetcintakeqty + "|" + insetcdietitemnm;
  378. var saveRow = 0;
  379. var insRowDuty = 0;
  380. var sStatus = "";
  381. if(grd_dietsubtotal.rows- grd_dietsubtotal.fixedRows > 0){
  382. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  383. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  384. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  385. var sitemcd = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("itemcd"));
  386. sStatus = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("status"));
  387. //이전 입력 데이터 행 조회
  388. if(insduty == sduty && insmealflag == smealflag && insitemcd == sitemcd){
  389. saveRow = j;
  390. }
  391. //입력 위치행 조회
  392. if(insduty >= sduty && insmealflag >= smealflag ){
  393. insRowDuty = j;
  394. }
  395. }
  396. }
  397. if(saveRow == 0){
  398. grd_dietsubtotal.insertRow(insRowDuty, "below", false, true);
  399. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("duty")) = insduty;
  400. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("mealflag")) = insmealflag;
  401. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("prcpnm")) = insprcpnm;
  402. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemnm")) = insitemnm;
  403. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("itemcd")) = insitemcd;
  404. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  405. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("lnkitemcd")) = model.getvalue("/root/main/dietinfo/dietlist/dietsubitem[mealflag="+insmealflag+"]/itemcd") ;
  406. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("etcdietdesc")) = insetcdietdesc;
  407. grd_dietsubtotal.valueMatrix(insRowDuty+1, grd_dietsubtotal.colRef("status")) = "I";
  408. }else{
  409. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("intakeqty")) = insintakeqty;
  410. grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("etcdietdesc")) = insetcdietdesc;
  411. if(sStatus != "I") grd_dietsubtotal.valueMatrix(saveRow, grd_dietsubtotal.colRef("status")) = "U";
  412. }
  413. }else{
  414. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  415. var sduty = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"));
  416. var smealflag = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("mealflag"));
  417. if(insduty == sduty && insmealflag == smealflag){
  418. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("status")) != "I"){
  419. var NodeNum = getNodesetCount("/root/main/deloralinfo/delorallist");
  420. model.makeValue("/root/main/deloralinfo/delorallist["+NodeNum+"]/status", "D");
  421. model.makeValue("/root/main/deloralinfo/delorallist["+NodeNum+"]/carerecseqno", grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("carerecseqno")));
  422. }
  423. grd_dietsubtotal.deleteRow(j, false);
  424. }
  425. }
  426. }
  427. break;
  428. }
  429. grd_dietsubtotal.refresh();
  430. //섭취량 초기화 및 입력 상태 변경
  431. fInitOralIntake("etcdiet");
  432. break;
  433. }
  434. if(instotalrow == 0){
  435. if(grd_dietsubtotal.rows > 0){
  436. grd_dietsubtotal.deleteRow(grd_dietsubtotal.findRow("4", 1, grd_dietsubtotal.colRef("duty")));
  437. return;
  438. }else{
  439. messageBox("이동할 식이 항목이 존재하지 않습니다.", "I");
  440. return;
  441. }
  442. }
  443. //total행 삭제
  444. grd_dietsubtotal.deleteRow(grd_dietsubtotal.findRow("4", 1, grd_dietsubtotal.colRef("duty")));
  445. fOralSherGridMerge();
  446. }
  447. /**
  448. * @group :
  449. * @ver : 2008.06.20
  450. * @by : 양천덕
  451. * @---------------------------------------------------
  452. * @type : function
  453. * @access : public
  454. * @desc : 경구 조회 그리드 Merge
  455. * @param :
  456. * @return :
  457. * @---------------------------------------------------
  458. */
  459. function fOralSherGridMerge(){
  460. var sumtotal = 0;
  461. var Dsubtotal = 0;
  462. var Esubtotal = 0;
  463. var Nsubtotal = 0;
  464. var instotalrow = 0;
  465. for(var j = grd_dietsubtotal.fixedRows ; j <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; j++){
  466. if(grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows < 2){
  467. sumtotal = grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"));
  468. grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("totalsum")) = sumtotal;
  469. }else{
  470. if(j == 1){ //첫번째 행
  471. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "1"){
  472. Dsubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  473. }else if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "2"){
  474. Esubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  475. }else{
  476. Nsubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  477. }
  478. instotalrow = j;
  479. }else{
  480. //전 행과 duty가 동일하다면 duty별 합계 변수에 추가
  481. if(grd_dietsubtotal.valueMatrix(j-1, grd_dietsubtotal.colRef("duty")) == grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty"))){
  482. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "1"){
  483. Dsubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  484. }else if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "2"){
  485. Esubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  486. }else{
  487. Nsubtotal += eval(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("intakeqty"))) ;
  488. }
  489. //전 행과 duty가 동일하지 않다면 이전 duty에 합계 입력
  490. }else{
  491. for(var i = instotalrow; i < j ; i++){
  492. if(grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("duty")) == "1"){
  493. grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("totalsum")) = Dsubtotal;
  494. }else if(grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("duty")) == "2"){
  495. grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("totalsum")) = Esubtotal;
  496. }else{
  497. grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("totalsum")) = Nsubtotal;
  498. }
  499. }
  500. //새로운 해당행에 해당하는 duty별 합계 변수에 입력
  501. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "1"){
  502. Dsubtotal += eval(grd_dietsubtotal.valueMatrix( j, grd_dietsubtotal.colRef("intakeqty")));
  503. }else if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "2"){
  504. Esubtotal += eval(grd_dietsubtotal.valueMatrix( j, grd_dietsubtotal.colRef("intakeqty")));
  505. }else{
  506. Nsubtotal += eval(grd_dietsubtotal.valueMatrix( j, grd_dietsubtotal.colRef("intakeqty")));
  507. }
  508. instotalrow = j;
  509. }
  510. //마지막 행일 경우 마지막 행과 동일한 duty에 합계 입력
  511. if(j == grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows){
  512. for(var i = instotalrow; i <= j ; i++){
  513. if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "1"){
  514. grd_dietsubtotal.valueMatrix( i, grd_dietsubtotal.colRef("totalsum")) = Dsubtotal;
  515. }else if(grd_dietsubtotal.valueMatrix(j, grd_dietsubtotal.colRef("duty")) == "2"){
  516. grd_dietsubtotal.valueMatrix( i, grd_dietsubtotal.colRef("totalsum")) = Esubtotal;
  517. }else{
  518. grd_dietsubtotal.valueMatrix( i, grd_dietsubtotal.colRef("totalsum")) = Nsubtotal;
  519. }
  520. }
  521. }
  522. }
  523. }
  524. }
  525. //total 합계 Row추가 및 Sum값 입력
  526. grd_dietsubtotal.addRow(false);
  527. grd_dietsubtotal.valueMatrix(grd_dietsubtotal.rows-1, grd_dietsubtotal.colRef("duty")) = "4";
  528. if(eval(sumtotal) > 0 ){
  529. grd_dietsubtotal.valueMatrix(grd_dietsubtotal.rows-1, grd_dietsubtotal.colRef("totalsum")) = sumtotal;
  530. }else{
  531. grd_dietsubtotal.valueMatrix(grd_dietsubtotal.rows-1, grd_dietsubtotal.colRef("totalsum")) = eval(Dsubtotal) + eval(Esubtotal) + eval(Nsubtotal);
  532. }
  533. //그리드 머지 작업
  534. grd_dietsubtotal.mergecells = "byrestriccol";
  535. grd_dietsubtotal.mergecol(0) = true;
  536. grd_dietsubtotal.mergecol(1) = true;
  537. grd_dietsubtotal.mergecol(2) = true;
  538. grd_dietsubtotal.mergecol(3) = true;
  539. grd_dietsubtotal.isReadOnly(grd_dietsubtotal.rows-1, grd_dietsubtotal.colRef("duty")) = true;
  540. grd_dietsubtotal.isReadOnly(grd_dietsubtotal.rows-1, grd_dietsubtotal.colRef("mealflag")) = true;
  541. }
  542. /**
  543. * @group :
  544. * @ver : 2008.06.20
  545. * @by : 양천덕
  546. * @---------------------------------------------------
  547. * @type : function
  548. * @access : public
  549. * @desc : 경구입력 섭취량 초기화
  550. * @param :
  551. * @return :
  552. * @---------------------------------------------------
  553. */
  554. function fInitOralIntake(pFlag){
  555. switch(pFlag){
  556. case "prcpdiet" : // 식이처방 그리드 섭취량 초기화
  557. for(var i = grd_prcpdiet.fixedRows ; i <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; i++){
  558. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) = "";
  559. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol1")) = "N";
  560. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol2")) = "N";
  561. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol3")) = "N";
  562. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol4")) = "N";
  563. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol5")) = "N";
  564. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol6")) = "N";
  565. }
  566. //grd_prcpdiet.valueMatrix(1, grd_prcpdiet.colRef("baseqty")) = "";
  567. //grd_prcpdiet.valueMatrix(2, grd_prcpdiet.colRef("baseqty")) = "";
  568. break;
  569. case "etcdiet" : // 기타식이 그리드 섭취량 초기화 & 행추가된 행 삭제
  570. grd_etcdiet.allstyle( "all", "background-color" ) = "#FFFFFF";
  571. for(var i = grd_etcdiet.fixedRows ; i <= grd_etcdiet.rows - grd_etcdiet.fixedRows ; i++){
  572. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")) = "";
  573. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol1")) = "N";
  574. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol2")) = "N";
  575. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol3")) = "N";
  576. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol4")) = "N";
  577. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol5")) = "N";
  578. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol6")) = "N";
  579. grd_etcdiet.deleteRow(grd_etcdiet.findRow("", 1, 1), false);
  580. }
  581. grd_etcdiet.topRow = 1;
  582. break;
  583. case "All" : //식이처방 그리드 & 기타식이 그리드 섭취량 기준량 초기화
  584. for(var i = grd_prcpdiet.fixedRows ; i <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; i++){
  585. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("intakeqty")) = "";
  586. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol1")) = "N";
  587. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol2")) = "N";
  588. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol3")) = "N";
  589. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol4")) = "N";
  590. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol5")) = "N";
  591. grd_prcpdiet.valueMatrix(i, grd_prcpdiet.colRef("calccol6")) = "N";
  592. }
  593. grd_prcpdiet.valueMatrix(1, grd_prcpdiet.colRef("baseqty")) = "";
  594. grd_prcpdiet.valueMatrix(2, grd_prcpdiet.colRef("baseqty")) = "";
  595. for(var i = grd_etcdiet.fixedRows ; i <= grd_etcdiet.rows - grd_etcdiet.fixedRows ; i++){
  596. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("intakeqty")) = "";
  597. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol1")) = "N";
  598. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol2")) = "N";
  599. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol3")) = "N";
  600. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol4")) = "N";
  601. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol5")) = "N";
  602. grd_etcdiet.valueMatrix(i, grd_etcdiet.colRef("calccol6")) = "N";
  603. grd_etcdiet.deleteRow(grd_etcdiet.findRow("", 1, 1), false);
  604. }
  605. grd_etcdiet.topRow = 1;
  606. break;
  607. }
  608. model.setValue(xPathBizFlag,"insert");
  609. }
  610. /**
  611. * @group :
  612. * @ver : 2008.06.20
  613. * @by : 양천덕
  614. * @---------------------------------------------------
  615. * @type : function
  616. * @access : public
  617. * @desc : 경구 정보 수정
  618. * @param :
  619. * @return :
  620. * @---------------------------------------------------
  621. */
  622. function fUpdtDietInfo(pDuty, pMeal){
  623. rdo_duty.value = pDuty;
  624. rdo_mealtype.value = pMeal;
  625. fChngMeal(pMeal);
  626. var sEtcInfo0 = "";
  627. var sEtcInfoCd = "";
  628. var sEtcInfoQty = "";
  629. var sEtcInfoName = "";
  630. for(var i = grd_dietsubtotal.fixedRows ; i <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedRows ; i++){
  631. var sItemeCd = "";
  632. var sIntakeQty = "";
  633. var sEtcDietDesc = "";
  634. var sEtcDietDescInfo = "";
  635. if(grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("duty")) == pDuty && grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("mealflag")) == pMeal){
  636. sItemeCd = grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("itemcd"));
  637. sIntakeQty= grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("intakeqty"));
  638. sEtcDietDesc = grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("etcdietdesc"));
  639. if(pMeal == "4"){
  640. sEtcDietDescInfo = sEtcDietDesc.split("|");
  641. if(sEtcDietDescInfo =="" || sEtcDietDescInfo ==null) { //구분이 기타이면서 기타식이처방이 아닐때
  642. for(var j = grd_prcpdiet.fixedRows ; j <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; j++){
  643. if( sItemeCd == grd_prcpdiet.valueMatrix(j, grd_prcpdiet.colRef("itemcd"))){
  644. grd_prcpdiet.valueMatrix(j, grd_prcpdiet.colRef("intakeqty")) = sIntakeQty;
  645. }
  646. }
  647. } else {
  648. for(var k = 0 ; k < 3 ; k++){
  649. if(k == 0)sEtcInfoCd = sEtcDietDescInfo[0].split("^");
  650. if(k == 1)sEtcInfoQty = sEtcDietDescInfo[1].split("^");
  651. if(k == 2)sEtcInfoName = sEtcDietDescInfo[2].split("^");
  652. }
  653. for(var k = 0; k < sEtcInfoCd.length ; k++){
  654. var sRow = grd_etcdiet.findRow(sEtcInfoCd[k],1, grd_etcdiet.colRef("itemcd"));
  655. if(sRow > 0 ){
  656. grd_etcdiet.valueMatrix(sRow, grd_etcdiet.colRef("intakeqty")) = sEtcInfoQty[k];
  657. }else{
  658. grd_etcdiet.addRow(false);
  659. grd_etcdiet.cellStyle("background-color", grd_etcdiet.rows -1, 0, grd_etcdiet.rows -1, 0) = "#ffff99";
  660. grd_etcdiet.valueMatrix(grd_etcdiet.rows -1 , grd_etcdiet.colRef("itemcd")) = sEtcInfoCd[k];
  661. grd_etcdiet.valueMatrix(grd_etcdiet.rows -1 , grd_etcdiet.colRef("intakeqty")) = sEtcInfoQty[k];
  662. grd_etcdiet.valueMatrix(grd_etcdiet.rows -1 , grd_etcdiet.colRef("itemnm")) = sEtcInfoName[k];
  663. }
  664. }
  665. }
  666. }else{
  667. for(var j = grd_prcpdiet.fixedRows ; j <= grd_prcpdiet.rows - grd_prcpdiet.fixedRows ; j++){
  668. if( sItemeCd == grd_prcpdiet.valueMatrix(j, grd_prcpdiet.colRef("itemcd"))){
  669. grd_prcpdiet.valueMatrix(j, grd_prcpdiet.colRef("intakeqty")) = sIntakeQty;
  670. }
  671. }
  672. }
  673. }
  674. }
  675. model.setValue(xPathBizFlag,"update");
  676. }
  677. /**
  678. * @group :
  679. * @ver : 2008.06.20
  680. * @by : 양천덕
  681. * @---------------------------------------------------
  682. * @type : function
  683. * @access : public
  684. * @desc : 경구 정보 저장
  685. * @param :
  686. * @return :
  687. * @---------------------------------------------------
  688. */
  689. function fSaveOralInfo(){
  690. model.removeNodeSet("/root/send");
  691. model.makeValue("/root/send/pid", model.getValue("/root/main/cond/pid"));
  692. model.makeValue("/root/send/cretno", model.getValue("/root/main/cond/cretno"));
  693. model.makeValue("/root/send/orddd", model.getValue("/root/main/cond/orddd"));
  694. model.makeValue("/root/send/seardd", model.getValue("/root/main/cond/seardd"));
  695. model.makeValue("/root/send/wardcd", model.getValue("/root/main/cond/wardcd"));
  696. model.makeValue("/root/send/seartodd", model.getValue("/root/main/cond/seartodd"));
  697. var sOralHeader = "status▦carerecseqno▦duty▦totalsum▦mealflag▦prcpnm▦itemnm▦intakeqty▦itemcd▦etcdietdesc▦lnkitemcd▩";
  698. for(var i = grd_dietsubtotal.fixedrows ; i <= grd_dietsubtotal.rows - grd_dietsubtotal.fixedrows ; i ++){
  699. var sStatus = grd_dietsubtotal.valuematrix(i, grd_dietsubtotal.colRef("status"));
  700. if( sStatus == "I" || sStatus == "U"){
  701. sOralHeader += grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("status")) + "▦"
  702. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("carerecseqno")) + "▦"
  703. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("duty")) + "▦"
  704. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("totalsum")) + "▦"
  705. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("mealflag")) + "▦"
  706. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("prcpnm")) + "▦"
  707. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("itemnm")) + "▦"
  708. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("intakeqty")) + "▦"
  709. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("itemcd")) + "▦"
  710. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("etcdietdesc")) + "▦"
  711. + grd_dietsubtotal.valueMatrix(i, grd_dietsubtotal.colRef("lnkitemcd")) + "▩";
  712. }
  713. }
  714. model.makeValue("/root/send/dietinfo", sOralHeader);
  715. if(getNodesetCount("/root/main/deloralinfo/delorallist") > 0 ){
  716. var sDelOralHeader = "status▦carerecseqno▩";
  717. for(var i = 1; i <= getNodesetCount("/root/main/deloralinfo/delorallist") ; i ++ ){
  718. if(model.getValue("root/main/deloralinfo/delorallist["+i+"]/carerecseqno") != ""){
  719. sDelOralHeader += model.getValue("root/main/deloralinfo/delorallist["+i+"]/status") + "▦"
  720. + model.getValue("root/main/deloralinfo/delorallist["+i+"]/carerecseqno")+"▩";
  721. }
  722. }
  723. model.makeValue("/root/send/deloralinfo", sDelOralHeader);
  724. }
  725. grd_dietsubtotal.deleteRow(grd_dietsubtotal.findRow("4", 1, grd_dietsubtotal.colRef("duty")));
  726. submit("TXMNR05701");
  727. model.removeNodeSet("/root/main/deloralinfo/delorallist");
  728. model.makeNode("/root/main/deloralinfo/delorallist");
  729. fOralSherGridMerge();
  730. }
  731. /**
  732. * @group :
  733. * @ver : 2008.06.20
  734. * @by : 양천덕
  735. * @---------------------------------------------------
  736. * @type : function
  737. * @access : public
  738. * @desc : 업무일자 변경시 익일 계산
  739. * @param :
  740. * @return :
  741. * @---------------------------------------------------
  742. */
  743. function fOrdddChng(){
  744. model.setValue("/root/main/cond/seartodd", getDateCalc(ipt_seardd.value, 1, "+"));
  745. }
  746. /**
  747. * @group :
  748. * @ver : 2008.06.20
  749. * @by : 양천덕
  750. * @---------------------------------------------------
  751. * @type : function
  752. * @access : public
  753. * @desc : 식이 기록 정보 조회
  754. * @param :
  755. * @return :
  756. * @---------------------------------------------------
  757. */
  758. function fSearDietRec(){
  759. grd_dietsubtotal.deleteRow(grd_dietsubtotal.findRow("4", 1, grd_dietsubtotal.colRef("duty")));
  760. model.removeNodeSet("/root/send");
  761. model.makeValue("/root/send/pid", model.getValue("/root/main/cond/pid"));
  762. model.makeValue("/root/send/cretno", model.getValue("/root/main/cond/cretno"));
  763. model.makeValue("/root/send/orddd", model.getValue("/root/main/cond/orddd"));
  764. model.makeValue("/root/send/seardd", model.getValue("/root/main/cond/seardd"));
  765. model.makeValue("/root/send/wardcd", model.getValue("/root/main/cond/wardcd"));
  766. model.makeValue("/root/send/seartodd", model.getValue("/root/main/cond/seartodd"));
  767. submit("TRMNR05702", false);
  768. submit("TRMNR05701");
  769. //섭취량 초기화 및 입력 상태 변경
  770. model.removeNodeSet("/root/main/deloralinfo/delorallist");
  771. model.makeNode("/root/main/deloralinfo/delorallist");
  772. fInitOralIntake("prcpdiet");
  773. fOralSherGridMerge();
  774. }
  775. /**
  776. * @group :
  777. * @ver : 2008.06.20
  778. * @by : 양천덕
  779. * @---------------------------------------------------
  780. * @type : function
  781. * @access : public
  782. * @desc : 식이 처방 그리드 & 기타식이 그리드 체크박스 선택시 자동 계산 구현
  783. * @param : pFlag - prcpdiet 식이 처방 그리드 Event
  784. * etcdiet 기타 식이 그리드 Event
  785. * pCol - 값이 변경된 Col Index
  786. * pRow - 값이 변경된 Row Index
  787. * @return :
  788. * @---------------------------------------------------
  789. */
  790. function fChngValue(pFlag, pCol, pRow){
  791. switch(pFlag){
  792. case "prcpdiet" :
  793. if(pCol >= 2 && pCol <= 7){
  794. if(grd_prcpdiet.valueMatrix(pRow, grd_prcpdiet.colRef("baseqty")) != "" ){
  795. for(var iCol = 2 ; iCol <= 7 ; iCol ++){
  796. if(iCol != pCol){
  797. grd_prcpdiet.valueMatrix(pRow, iCol) = "N";
  798. }
  799. }
  800. var sBaseQty = grd_prcpdiet.valueMatrix(pRow, grd_prcpdiet.colRef("baseqty"));
  801. var sCalcQty = "";
  802. switch(pCol){
  803. case 2 :
  804. sCalcQty = sBaseQty;
  805. break;
  806. case 3 :
  807. sCalcQty = Math.floor(eval(sBaseQty) / 2);
  808. break;
  809. case 4 :
  810. sCalcQty = Math.floor(eval(sBaseQty) / 3);
  811. break;
  812. case 5 :
  813. sCalcQty = Math.floor(eval(sBaseQty) * 2 / 3);
  814. break;
  815. case 6 :
  816. sCalcQty = eval(sBaseQty) * 2 ;
  817. break;
  818. case 7 :
  819. sCalcQty = eval(sBaseQty) * 3 ;
  820. break;
  821. }
  822. grd_prcpdiet.valueMatrix(pRow, grd_prcpdiet.colRef("intakeqty")) = sCalcQty;
  823. }else{
  824. grd_prcpdiet.valueMatrix(pRow, pCol) = "N";
  825. }
  826. }else if(pCol == 8){
  827. for(var iCol = 2 ; iCol <= 7 ; iCol ++){
  828. grd_prcpdiet.valueMatrix(pRow, iCol) = "N";
  829. }
  830. }
  831. break;
  832. case "etcdiet" :
  833. if(pCol >= 2 && pCol <= 7){
  834. if(grd_etcdiet.valueMatrix(pRow, grd_etcdiet.colRef("baseqty")) != ""){
  835. for(var iCol = 2 ; iCol <= 7 ; iCol ++){
  836. if(iCol != pCol){
  837. grd_etcdiet.valueMatrix(pRow, iCol) = "N";
  838. }
  839. }
  840. var sBaseQty = grd_etcdiet.valueMatrix(pRow, grd_etcdiet.colRef("baseqty"));
  841. var sCalcQty = "";
  842. switch(pCol){
  843. case 2 :
  844. sCalcQty = sBaseQty;
  845. break;
  846. case 3 :
  847. sCalcQty = Math.floor(eval(sBaseQty) / 2);
  848. break;
  849. case 4 :
  850. sCalcQty = Math.floor(eval(sBaseQty) / 3);
  851. break;
  852. case 5 :
  853. sCalcQty = Math.floor(eval(sBaseQty) * 2 / 3);
  854. break;
  855. case 6 :
  856. sCalcQty = eval(sBaseQty) * 2 ;
  857. break;
  858. case 7 :
  859. sCalcQty = eval(sBaseQty) * 3 ;
  860. break;
  861. }
  862. grd_etcdiet.valueMatrix(pRow, grd_etcdiet.colRef("intakeqty")) = sCalcQty;
  863. }else{
  864. grd_etcdiet.valueMatrix(pRow, pCol) = "N";
  865. }
  866. }else if(pCol == 8){
  867. for(var iCol = 2 ; iCol <= 7 ; iCol ++){
  868. grd_etcdiet.valueMatrix(pRow, iCol) = "N";
  869. }
  870. }
  871. break;
  872. }
  873. }
  874. /**
  875. * @group :
  876. * @ver : 2008.06.20
  877. * @by : 양천덕
  878. * @---------------------------------------------------
  879. * @type : function
  880. * @access : public
  881. * @desc : 수정 및 삭제 데이터 존재 여부 확인
  882. * @param :
  883. * @return :
  884. * @---------------------------------------------------
  885. */
  886. function fReturnViewStatus(){
  887. return rtnValue;
  888. }