SMRSO10100_약국기타출고관리(경북대).xrw 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:ex="http://www.comsquare.co.kr/xforms/excel" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:my="http://www.comsquare.co.kr/example" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:cs="http://www.comsquare.co.kr/xforms">
  4. <xhtml:head>
  5. <xhtml:title>약국출고관리</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list>
  11. <gooddelive>
  12. <gooddelivelist/>
  13. <goodmaxdeliveno/>
  14. </gooddelive>
  15. </list>
  16. <item/>
  17. </main>
  18. <send>
  19. <save>
  20. <gooddelivelist/>
  21. </save>
  22. <gooddelive>
  23. <instcd/>
  24. <goodflag/>
  25. <delivedd/>
  26. <deliveno/>
  27. <delivedeptcd/>
  28. <delivedeptnm/>
  29. <iokindcd/>
  30. <windeptcd/>
  31. <windeptnm/>
  32. <delivepsn/>
  33. <delivepsnnm/>
  34. <mngtcls/>
  35. </gooddelive>
  36. </send>
  37. <init>
  38. <deliveqty/>
  39. <deliveamt/>
  40. <deliveflag>A</deliveflag>
  41. </init>
  42. <hidden/>
  43. <temp/>
  44. </root>
  45. </instance>
  46. <script type="javascript" ev:event="xforms-ready">
  47. <![CDATA[
  48. //화면 Control을 초기화한다
  49. fInitialize();
  50. ]]>
  51. </script>
  52. <submission id="TRRSO00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/gooddelive" resultref="/root/main/list/gooddelive"/>
  53. <submission id="TXRSO00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/hidden/temp">"</submission>
  54. <bind id="bind_reqpack" ref="/root/main/list/gooddelive/gooddelivelist/reqpackconcat" calculate="concat(../winpackcntperunit, ' ', ../deliveunit, '/', ../winpackunit)"/>
  55. <submission id="TRRSO00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/gooddelive" resultref="/root/main/list/gooddelive"/>
  56. <submission id="TXRSO00105" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/hidden/temp"/>
  57. </model>
  58. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  59. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  60. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  61. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  62. <script type="javascript" src="../../../mis/miscommonweb/js/RSZ001.js"/>
  63. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  64. <script type="javascript">
  65. <![CDATA[
  66. /**
  67. * @ver : 2011-01-04
  68. * @desc : 폼 초기화
  69. * @param :
  70. * @return :
  71. * @----------------------------------------
  72. */
  73. function fInitialize() {
  74. rszfComboStockArthDeptcdList(cmb_delivedeptcd,getUserInfo("dutplceinstcd"),"PH" );
  75. model.setValue(cmb_delivedeptcd.attribute("ref") , getUserInfo("dutplcecd"));
  76. misfComboComCdList("030M0003",cmb_mngtcls,"Y");
  77. misfGridInit(grd_gooddelive);
  78. misfMsterDetailSet(grd_gooddelive,null, "TRRSO00101" ,"Y");
  79. model.setValue(ipt_delivedd.attribute("ref") , getCurrentDate());
  80. model.setValue(ipt_sumdeliveqty.attribute("ref"),0);
  81. model.setValue(opt_sumdeliveamt.attribute("ref"),0);
  82. model.setValue(ipt_instcd.attribute("ref") , getUserInfo("dutplceinstcd"));
  83. model.setValue(ipt_delivepsn.attribute("ref") , getUserInfo("userid"));
  84. model.setValue(opt_delivepsnnm.attribute("ref") , getUserInfo("usernm"));
  85. model.setValue(cmb_goodflag.attribute("ref") , "PH");
  86. //출고유형 가지고 오기
  87. rszfGetPurcIOFlagList(cmb_iokindcd, model.getValue(ipt_instcd.attribute("ref")) , "O","N","","","E");
  88. model.setValue("/root/send/gooddelive/iokindcd",model.getValue("/root/init/cmb_iokindcd/comcodelist/cdid[1]"));
  89. grd_gooddelive.selectionmode = "free";
  90. model.refresh();
  91. }
  92. function fCheckRetrieveData(pmsg)
  93. {
  94. if(model.getValue(ipt_instcd.attribute("ref")).length== 0 )
  95. {
  96. if(pmsg == true)
  97. {
  98. messageBox("기관코드를 " ,"C002");
  99. model.setFocus("ipt_instcd");
  100. }
  101. return false;
  102. }
  103. if(model.getValue(cmb_goodflag.attribute("ref")).length== 0 )
  104. {
  105. if(pmsg == true)
  106. {
  107. messageBox("물품구분을 " ,"C002");
  108. model.setFocus("cmb_goodflag");
  109. }
  110. return false;
  111. }
  112. if(model.getValue(ipt_delivedd.attribute("ref")).length== 0 )
  113. {
  114. if(pmsg == true)
  115. {
  116. messageBox("출고일자를 " ,"C001");
  117. model.setFocus("ipt_delivedd");
  118. }
  119. return false;
  120. }
  121. if(model.getValue(cmb_delivedeptcd.attribute("ref")).length== 0 )
  122. {
  123. if(pmsg == true)
  124. {
  125. messageBox("출고부서를 " ,"C001");
  126. model.setFocus("cmb_delivedeptcd");
  127. }
  128. return false;
  129. }
  130. if(model.getValue(cmb_iokindcd.attribute("ref")).length== 0 )
  131. {
  132. if(pmsg == true)
  133. {
  134. messageBox("출고유형을 " ,"C001");
  135. model.setFocus("cmb_iokindcd");
  136. }
  137. return false;
  138. }
  139. if(model.getValue(ipt_delivepsn.attribute("ref")).length== 0 )
  140. {
  141. if(pmsg == true)
  142. {
  143. messageBox("출고담당자를 " ,"C001");
  144. model.setFocus("ipt_delivepsn");
  145. }
  146. return false;
  147. }
  148. if(model.getValue(cmb_iokindcd.attribute("ref"))== "2h" || model.getValue(cmb_iokindcd.attribute("ref"))== "2H" )
  149. {
  150. if(model.getValue(ipt_windeptcd.attribute("ref")).length== 0 )
  151. {
  152. messageBox("상비출고 및 반납은 입고부서를 " ,"C001");
  153. model.setFocus("ipt_windeptcd");
  154. return false;
  155. }
  156. }
  157. return true;
  158. }
  159. function fDefaultSetting(prow)
  160. {
  161. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/instcd",model.getValue(ipt_instcd.attribute("ref")));
  162. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/goodflag",model.getValue(cmb_goodflag.attribute("ref")));
  163. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/delivedd",model.getValue(ipt_delivedd.attribute("ref")));
  164. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/delivedeptcd",model.getValue(cmb_delivedeptcd.attribute("ref")));
  165. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/windeptcd",model.getValue(ipt_windeptcd.attribute("ref")));
  166. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/iokindcd",model.getValue(cmb_iokindcd.attribute("ref")));
  167. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/delivepsn",model.getValue(ipt_delivepsn.attribute("ref")));
  168. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/deliveseqno",fGetMaxDeliveSeqNo());
  169. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/delivedeptqty",0);
  170. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/deliveamt",0);
  171. }
  172. function fGetMaxDeliveSeqNo()
  173. {
  174. var maxDeliveSeqNo = "";
  175. for(var currow = grd_gooddelive.fixedRows ; currow < grd_gooddelive.rows; currow++)
  176. {
  177. if(maxDeliveSeqNo < grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("DeliveSeqNo")))
  178. maxDeliveSeqNo = grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("DeliveSeqNo"));
  179. }
  180. if(maxDeliveSeqNo.length == 0)maxDeliveSeqNo = "001";
  181. else maxDeliveSeqNo = parseInt(maxDeliveSeqNo) + 1;
  182. maxDeliveSeqNo = "" + maxDeliveSeqNo;
  183. return maxDeliveSeqNo.getLeftPad(3,"0");
  184. }
  185. function fSettingGoodList(pnode, nodename, userqtynm){
  186. var codynode = instance1.selectNodes(pnode + "/*");
  187. var addRow = grd_gooddelive.rows - grd_gooddelive.fixedRows;
  188. var exchqty = 1;
  189. var delivedeptqty = 1;
  190. if(model.getValue(grd_gooddelive.nodeset + "[" + addRow + "]/goodcd").length > 0)addRow = addRow + 1;
  191. for (var j = 1; j <= codynode.length ; j++) {
  192. if(addRow > grd_gooddelive.rows - grd_gooddelive.fixedRows)
  193. {
  194. misfGridIUD(grd_gooddelive,"A");
  195. addRow = grd_gooddelive.rows - grd_gooddelive.fixedRows;
  196. fDefaultSetting(addRow );
  197. }
  198. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/goodcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodcd"));
  199. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/goodnm" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodnm"));
  200. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/goodspec" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodspec"));
  201. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/winpackqty" ,model.getValue(pnode +"/" + nodename + "[" + j + "]/" + userqtynm));
  202. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/winpackunit" , model.getValue(pnode +"/" + nodename + "[" + j + "]/purcunit"));
  203. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/oldcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/oldcd"));
  204. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/winpackcntperunit" ,1);
  205. if(model.getValue(pnode +"/" + nodename + "[" + j + "]/exchqty") != "0" && model.getValue(pnode +"/" + nodename + "[" + j + "]/exchqty").length>0)
  206. {
  207. exchqty = parseInt(model.getValue(pnode +"/" + nodename + "[" + j + "]/exchqty"));
  208. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/winpackcntperunit" , model.getValue(pnode +"/" + nodename + "[" + j + "]/exchqty"));
  209. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/deliveamt" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodunitcost"));
  210. }
  211. else
  212. {
  213. exchqty = 1;
  214. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/winpackcntperunit" ,"1");
  215. }
  216. delivedeptqty = parseInt(model.getValue(pnode +"/" + nodename + "[" + j + "]/" + userqtynm));
  217. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/delivedeptqty",(delivedeptqty * exchqty));
  218. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/deliveunit",model.getValue(pnode +"/" + nodename + "[" + j + "]/deliveunit"));
  219. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/deliveamt" , ( model.getValue(pnode +"/" + nodename + "[" + j + "]/goodunitcost") * exchqty ));
  220. addRow = addRow + 1;
  221. }
  222. //model.removenode(pnode);
  223. model.refresh();
  224. }
  225. function fCheckSaveData()
  226. {
  227. if(model.getValue(ipt_instcd.attribute("ref")).length== 0 )
  228. {
  229. messageBox("기관코드를 " ,"C002");
  230. model.setFocus("ipt_instcd");
  231. return false;
  232. }
  233. if(model.getValue(cmb_goodflag.attribute("ref")).length== 0 )
  234. {
  235. messageBox("물품구분을 " ,"C002");
  236. model.setFocus("cmb_goodflag");
  237. return false;
  238. }
  239. if(model.getValue(ipt_delivedd.attribute("ref")).length== 0 )
  240. {
  241. messageBox("출고일자를 " ,"C001");
  242. model.setFocus("ipt_delivedd");
  243. return false;
  244. }
  245. if(model.getValue(cmb_delivedeptcd.attribute("ref")).length== 0 )
  246. {
  247. messageBox("출고부서를 " ,"C001");
  248. model.setFocus("cmb_delivedeptcd");
  249. return false;
  250. }
  251. if(model.getValue(cmb_iokindcd.attribute("ref")).length== 0 )
  252. {
  253. messageBox("출고유형을 " ,"C001");
  254. model.setFocus("cmb_iokindcd");
  255. return false;
  256. }
  257. // if(model.getValue(ipt_windeptcd.attribute("ref")).length== 0 )
  258. // {
  259. // messageBox("입고부서를 " ,"C001");
  260. // model.setFocus("ipt_windeptcd");
  261. // return false;
  262. // }
  263. if(model.getValue(ipt_delivepsn.attribute("ref")).length== 0 )
  264. {
  265. messageBox("출고담당자를 " ,"C001");
  266. model.setFocus("ipt_delivepsn");
  267. return false;
  268. }
  269. for(var currow = grd_gooddelive.fixedRows ; currow < grd_gooddelive.rows ; currow++)
  270. {
  271. if(grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("goodcd")).length == 0)
  272. {
  273. messageBox((currow -1)+ " 번째 물품코드를 " ,"C001");
  274. grd_gooddelive.row = currow;
  275. grd_gooddelive.col= grd_gooddelive.colRef("goodcd");
  276. grd_gooddelive.editCell();
  277. return false;
  278. }
  279. /*else
  280. {
  281. for(srcrow = currow + 1 ; srcrow < grd_gooddelive.rows ; srcrow++)
  282. {
  283. if(grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("goodcd")) == grd_gooddelive.valueMatrix(srcrow , grd_gooddelive.colRef("goodcd")))
  284. {
  285. messageBox("동일 물품코드가 [" + currow + "," +srcrow + "->" + grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("goodcd")) + "] 존재하여 저장 " ,"E001");
  286. return false;
  287. }
  288. }
  289. }*/
  290. if(grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("delivedeptqty")).length == 0)
  291. {
  292. messageBox((currow -1)+ " 번째 출고수량을 " ,"C001");
  293. grd_gooddelive.row = currow;
  294. grd_gooddelive.col= grd_gooddelive.colRef("delivedeptqty");
  295. grd_gooddelive.editCell();
  296. return false;
  297. }
  298. }
  299. return true;
  300. }
  301. function fAfterRetrieve()
  302. {
  303. var delivedeptqty = 0;
  304. var deliveamt = 0;
  305. for(var currow = grd_gooddelive.fixedRows ; currow < grd_gooddelive.rows ; currow++)
  306. {
  307. var deliveflag = model.getValue("/root/init/deliveflag");
  308. if(deliveflag=="B"){
  309. grd_gooddelive.cellstyle("background-color", currow, grd_gooddelive.colRef("delivedeptqty"), currow, grd_gooddelive.colRef("delivedeptqty") ) = "yellow";
  310. grd_gooddelive.cellstyle("background-color", currow, grd_gooddelive.colRef("delivepackdeptqty"), currow, grd_gooddelive.colRef("delivepackdeptqty") ) = "transparent";
  311. grd_gooddelive.isReadOnly(currow,grd_gooddelive.colRef("delivedeptqty")) = false;
  312. grd_gooddelive.isReadOnly(currow,grd_gooddelive.colRef("delivepackdeptqty")) = true;
  313. }else{
  314. grd_gooddelive.cellstyle("background-color",currow, grd_gooddelive.colRef("delivedeptqty"), currow, grd_gooddelive.colRef("delivedeptqty") ) = "transparent";
  315. grd_gooddelive.cellstyle("background-color", currow, grd_gooddelive.colRef("delivepackdeptqty"), currow, grd_gooddelive.colRef("delivepackdeptqty") ) = "yellow";
  316. grd_gooddelive.isReadOnly(currow,grd_gooddelive.colRef("delivedeptqty")) = true;
  317. grd_gooddelive.isReadOnly(currow,grd_gooddelive.colRef("delivepackdeptqty")) = false;
  318. }
  319. delivedeptqty = delivedeptqty + parseFloat( grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("delivedeptqty")));
  320. if(grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("deliveamt")).length>0)
  321. deliveamt = deliveamt + 0 + parseFloat(grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("deliveamt")));
  322. }
  323. model.setValue(ipt_sumdeliveqty.attribute("ref"),grd_gooddelive.rows - grd_gooddelive.fixedRows);
  324. model.setValue(opt_sumdeliveamt.attribute("ref"),deliveamt);
  325. model.setValue(ipt_deliveno.attribute("ref"),model.getValue("/root/main/list/gooddelive/goodmaxdeliveno/deliveno"));
  326. ipt_sumdeliveqty.refresh();
  327. opt_sumdeliveamt.refresh();
  328. grd_gooddelive.refresh();
  329. }
  330. function fDefaultSetting2(flag)
  331. {
  332. grd_gooddelive.rebuildStyle();
  333. for( cnt = grd_gooddelive.fixedRows; cnt < grd_gooddelive.rows; cnt++) {
  334. var deliveflag = model.getValue("/root/init/deliveflag");
  335. grd_gooddelive.rowStatus( cnt ) = "1";
  336. if(deliveflag=="B"){
  337. grd_gooddelive.cellstyle("background-color", cnt, grd_gooddelive.colRef("delivedeptqty"), cnt, grd_gooddelive.colRef("delivedeptqty") ) = "yellow";
  338. grd_gooddelive.cellstyle("background-color", cnt, grd_gooddelive.colRef("delivepackdeptqty"), cnt, grd_gooddelive.colRef("delivepackdeptqty") ) = "transparent";
  339. grd_gooddelive.isReadOnly(cnt,grd_gooddelive.colRef("delivedeptqty")) = false;
  340. grd_gooddelive.isReadOnly(cnt,grd_gooddelive.colRef("delivepackdeptqty")) = true;
  341. }else{
  342. grd_gooddelive.cellstyle("background-color", cnt, grd_gooddelive.colRef("delivedeptqty"), cnt, grd_gooddelive.colRef("delivedeptqty") ) = "transparent";
  343. grd_gooddelive.cellstyle("background-color", cnt, grd_gooddelive.colRef("delivepackdeptqty"), cnt, grd_gooddelive.colRef("delivepackdeptqty") ) = "yellow";
  344. grd_gooddelive.isReadOnly(cnt,grd_gooddelive.colRef("delivedeptqty")) = true;
  345. grd_gooddelive.isReadOnly(cnt,grd_gooddelive.colRef("delivepackdeptqty")) = false;
  346. }
  347. }
  348. }
  349. /**
  350. * @ver : 2011-01-31
  351. * @desc : 포장,낱개이송에 따른 컬럼 isReadOnly
  352. * @param :
  353. * @return :
  354. * @---------------------------------------------------
  355. */
  356. function fChgDeliveFlag(){
  357. var deliveflag = model.getValue("/root/init/deliveflag");
  358. grd_gooddelive.rebuildStyle();
  359. if(deliveflag=="B"){
  360. for(var currow = grd_gooddelive.fixedRows ; currow < grd_gooddelive.rows ; currow++){
  361. grd_gooddelive.cellstyle("background-color", currow, grd_gooddelive.colRef("delivedeptqty"), currow, grd_gooddelive.colRef("delivedeptqty") ) = "yellow";
  362. grd_gooddelive.cellstyle("background-color", currow, grd_gooddelive.colRef("delivepackdeptqty"), currow, grd_gooddelive.colRef("delivepackdeptqty") ) = "transparent";
  363. grd_gooddelive.isReadOnly(currow,grd_gooddelive.colRef("delivedeptqty")) = false;
  364. grd_gooddelive.isReadOnly(currow,grd_gooddelive.colRef("delivepackdeptqty")) = true;
  365. }
  366. }else{
  367. for(var currow = grd_gooddelive.fixedRows ; currow < grd_gooddelive.rows ; currow++){
  368. grd_gooddelive.cellstyle("background-color", currow, grd_gooddelive.colRef("delivedeptqty"), currow, grd_gooddelive.colRef("delivedeptqty") ) = "transparent";
  369. grd_gooddelive.cellstyle("background-color", currow, grd_gooddelive.colRef("delivepackdeptqty"), currow, grd_gooddelive.colRef("delivepackdeptqty") ) = "yellow";
  370. grd_gooddelive.isReadOnly(currow,grd_gooddelive.colRef("delivedeptqty")) = true;
  371. grd_gooddelive.isReadOnly(currow,grd_gooddelive.colRef("delivepackdeptqty")) = false;
  372. }
  373. }
  374. grd_gooddelive.refresh();
  375. }
  376. ]]>
  377. </script>
  378. </xhtml:head>
  379. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  380. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  381. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:243px; height:14px; ">약품출고관리(기타출고)</caption>
  382. </group>
  383. <group id="grp_biz" scroll="auto" style="left:0px; top:38px; width:1195; height:744px; ">
  384. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:10px; width:1195px; height:61px; "/>
  385. <line id="line1" class="line_1" style="x1:0px; y1:95px; x2:1194px; y2:95px; "/>
  386. <datagrid id="grd_gooddelive" nodeset="/root/main/list/gooddelive/gooddelivelist" class="datagrid2" caption="순번^입고부서^약품코드*^약품명^포장^포장^포장^포장^재고량^포장수량^낱개수량^출고금액^출고사유^청구번호^이전출고수량^caption1" colsep="^" colwidth="35, 95, 115, 219, 100, 26, 13, 17, 69, 74, 100, 96, 183, 27, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" style="left:0px; top:100px; width:1195px; height:634px; ">
  387. <col ref="deliveseqno" visibility="hidden" style="text-align:center; "/>
  388. <col ref="windeptnm"/>
  389. <col ref="goodcd" type="output" _chartype="upper" _key="true"/>
  390. <col ref="goodnm" type="output"/>
  391. <col ref="reqpackconcat" style="text-align:left; "/>
  392. <col ref="winpackcntperunit" visibility="hidden" format="#,###" style="text-align:right; "/>
  393. <col ref="deliveunit" visibility="hidden" style="text-align:center; "/>
  394. <col ref="winpackunit" visibility="hidden" style="text-align:center; "/>
  395. <col ref="stocqty" format="#,###.##" style="text-align:right; "/>
  396. <col ref="delivepackdeptqty" type="input" format="#,###.###" style="text-align:right; "/>
  397. <col ref="delivedeptqty" type="input" format="(-)#,###.###" maxlength="9" style="text-align:right; "/>
  398. <col ref="deliveamt" format="(-)#,###.###" style="text-align:right; "/>
  399. <col ref="cmt" type="input"/>
  400. <col ref="reqno" visibility="hidden"/>
  401. <col ref="iokindcd" visibility="hidden" style="text-align:right; "/>
  402. <col ref="delivedeptcd" visibility="hidden"/>
  403. <col ref="delivepsn" visibility="hidden"/>
  404. <col ref="windeptcd" visibility="hidden"/>
  405. <col ref="reqflag" visibility="hidden"/>
  406. <col ref="reqdd" visibility="hidden"/>
  407. <col ref="reqseqno" visibility="hidden"/>
  408. <col ref="prcpstatspk" visibility="hidden"/>
  409. <col ref="instcd" visibility="hidden"/>
  410. <col ref="goodflag" visibility="hidden"/>
  411. <col ref="delivedd" visibility="hidden"/>
  412. <col ref="deliveno" visibility="hidden"/>
  413. <col ref="predelivedeptqty" visibility="hidden"/>
  414. <col ref="minexch" visibility="hidden"/>
  415. <col ref="goodunitcost" visibility="hidden"/>
  416. <col ref="mngtcls" visibility="hidden"/>
  417. <script type="javascript" ev:event="onendedit">
  418. <![CDATA[
  419. var pRow = grd_gooddelive.row - grd_gooddelive.fixedRows + 1;
  420. var delivepackdeptqty = parseFloat(grd_gooddelive.valueMatrix(pRow , grd_gooddelive.colRef("delivepackdeptqty")));
  421. var winpackcntperunit = parseFloat(grd_gooddelive.valueMatrix(pRow , grd_gooddelive.colRef("winpackcntperunit")));
  422. var goodunitcost = parseFloat(grd_gooddelive.valueMatrix(pRow , grd_gooddelive.colRef("goodunitcost")));
  423. if(grd_gooddelive.col == grd_gooddelive.colRef("delivepackdeptqty")){
  424. model.setValue(grd_gooddelive.nodeset+"["+pRow+"]/delivedeptqty" ,delivepackdeptqty*winpackcntperunit);
  425. model.setValue(grd_gooddelive.nodeset+"["+pRow+"]/deliveamt" ,(delivepackdeptqty*winpackcntperunit)*goodunitcost);
  426. if(grd_gooddelive.row < grd_gooddelive.rows - grd_gooddelive.fixedRows){
  427. grd_gooddelive.row = grd_gooddelive.row + 1;
  428. grd_gooddelive.select(grd_gooddelive.row, grd_gooddelive.colRef("delivepackdeptqty")) = true;
  429. }
  430. }else if(grd_gooddelive.col == grd_gooddelive.colRef("delivedeptqty")){
  431. var delivedeptqty = parseFloat(grd_gooddelive.valueMatrix(pRow , grd_gooddelive.colRef("delivedeptqty")));
  432. model.setValue(grd_gooddelive.nodeset+"["+pRow+"]/deliveamt" ,delivedeptqty*goodunitcost);
  433. if(grd_gooddelive.row < grd_gooddelive.rows - grd_gooddelive.fixedRows){
  434. grd_gooddelive.row = grd_gooddelive.row + 1;
  435. grd_gooddelive.select(grd_gooddelive.row, grd_gooddelive.colRef("delivedeptqty")) = true;
  436. }
  437. }
  438. grd_gooddelive.refresh();
  439. ]]>
  440. </script>
  441. </datagrid>
  442. <input id="ipt_delivedd" ref="/root/send/gooddelive/delivedd" class="input_s_essential" inputtype="date" style="left:100px; top:18px; width:152px; height:19px; text-align:center; ">
  443. <script type="javascript" ev:event="xforms-value-changed">
  444. <![CDATA[
  445. btn_search.dispatch("DOMActivate");
  446. ]]>
  447. </script>
  448. </input>
  449. <select1 id="cmb_goodflag" ref="/root/send/gooddelive/goodflag" class="combo_default" visibility="hidden" appearance="minimal" style="left:1076px; top:15px; width:29px; height:19px; ">
  450. <choices>
  451. <itemset nodeset="/root/init/goodflag">
  452. <label ref="cdnm"/>
  453. <value ref="cdid"/>
  454. </itemset>
  455. </choices>
  456. <script type="javascript" ev:event="xforms-value-changed">
  457. <![CDATA[
  458. btn_search.dispatch("DOMActivate");
  459. ]]>
  460. </script>
  461. </select1>
  462. <caption id="caption3" class="tit_2" style="left:5px; top:80px; width:121px; height:14px; ">약품기타출고내역</caption>
  463. <input id="ipt_deliveno" ref="/root/send/gooddelive/deliveno" class="input_default" visibility="hidden" editable="false" style="left:520px; top:20px; width:57px; height:19px; ">
  464. <script type="javascript" ev:event="onkeyup">
  465. <![CDATA[
  466. inputEnterKey("btn_search", "DOMActivate");
  467. ]]>
  468. </script>
  469. </input>
  470. <button id="btn_choidel" class="btn2_letter3" visibility="visible" style="left:1095px; top:75px; width:53px; height:19px; ">
  471. <caption>행삭제</caption>
  472. <script type="javascript" ev:event="DOMActivate">
  473. <![CDATA[
  474. misfGridIUD(grd_gooddelive, "D");
  475. ]]>
  476. </script>
  477. </button>
  478. <output id="ipt_sumdeliveqty" ref="/root/init/deliveqty" class="output_default" style="left:485px; top:75px; width:70px; height:19px; font-weight:bold; "/>
  479. <caption id="caption25" style="left:423px; top:76px; width:62px; height:20px; vertical-align:middle; ">출고건수 :</caption>
  480. <output id="opt_sumdeliveamt" ref="/root/init/deliveamt" class="output_default" format="#,###.##" style="left:615px; top:75px; width:100px; height:19px; font-weight:bold; "/>
  481. <caption id="caption4" style="left:558px; top:76px; width:58px; height:20px; vertical-align:middle; ">출고합계 :</caption>
  482. <select1 id="cmb_iokindcd" ref="/root/send/gooddelive/iokindcd" class="combo_s_essential" appearance="minimal" style="left:100px; top:44px; width:152px; height:19px; text-align:center; ">
  483. <choices>
  484. <itemset nodeset="/root/init/ioflag">
  485. <label ref="cdnm"/>
  486. <value ref="cdid"/>
  487. </itemset>
  488. </choices>
  489. </select1>
  490. <input id="ipt_delivepsn" ref="/root/send/gooddelive/delivepsn" class="input_default" visibility="hidden" appearance="input" style="left:1077px; top:15px; width:28px; height:19px; "/>
  491. <output id="opt_delivepsnnm" ref="/root/send/gooddelive/delivepsnnm" class="output_fix" appearance="output" style="left:794px; top:19px; width:118px; height:19px; text-align:center; "/>
  492. <button id="btn_search" class="btn1_letter2" navindex="7" style="left:1130px; top:30px; width:56px; height:22px; text-align:left; ">
  493. <caption>조회</caption>
  494. <script type="javascript" ev:event="DOMActivate">
  495. <![CDATA[
  496. if(fCheckRetrieveData(false) == false)return;
  497. misfGridInit(grd_gooddelive);
  498. misfMsterDetailRetrieve();
  499. fAfterRetrieve();
  500. ]]>
  501. </script>
  502. </button>
  503. <select1 id="cmb_delivedeptcd" ref="/root/send/gooddelive/delivedeptcd" class="input_s_essential" disabled="true" appearance="minimal" style="left:378px; top:18px; width:118px; height:19px; text-align:center; ">
  504. <choices>
  505. <itemset>
  506. <label/>
  507. <value/>
  508. </itemset>
  509. </choices>
  510. </select1>
  511. <input id="ipt_windeptnm" ref="/root/send/gooddelive/windeptnm" class="input_search" disabled="true" style="left:496px; top:44px; width:154px; height:19px; ">
  512. <script type="javascript" ev:event="xforms-value-changed">
  513. <![CDATA[
  514. misfValidationCheck("02", "", "windeptcd,windeptnm" );
  515. ipt_windeptnm.refresh();
  516. ]]>
  517. </script>
  518. </input>
  519. <input id="ipt_windeptcd" ref="/root/send/gooddelive/windeptcd" class="input_search" appearance="input" style="left:378px; top:44px; width:93px; height:19px; ">
  520. <script type="javascript" ev:event="xforms-value-changed">
  521. <![CDATA[
  522. misfValidationCheck("02", "", "windeptcd,windeptnm" );
  523. ipt_windeptcd.refresh();
  524. ]]>
  525. </script>
  526. </input>
  527. <button id="btn_windeptcd" class="icon_search" style="left:476px; top:46px; width:16px; height:16px; ">
  528. <caption/>
  529. <script type="javascript" ev:event="DOMActivate">
  530. <![CDATA[
  531. var recv_list = "windeptcd,windeptnm";
  532. misfOpenPopUpList("02", ipt_windeptcd,"", recv_list) ;
  533. ipt_windeptcd.refresh();
  534. ipt_windeptnm.refresh();
  535. ]]>
  536. </script>
  537. </button>
  538. <line id="line2" class="line_4" style="x1:1110px; y1:18px; x2:1110px; y2:61px; border-color:#ffe4bb; border-left-style:solid; "/>
  539. <caption id="caption15" class="search_name" style="left:15px; top:45; width:86px; height:17px; ">출고유형 :</caption>
  540. <caption id="caption12" class="search_name" style="left:15px; top:19px; width:86px; height:17px; ">출고일자 :</caption>
  541. <caption id="caption13" class="search_name" style="left:292px; top:45px; width:86px; height:17px; ">입고부서 :</caption>
  542. <caption id="caption14" class="search_name" style="left:292px; top:19px; width:86px; height:17px; ">출고부서 :</caption>
  543. <caption id="caption17" class="search_name" style="left:695px; top:20px; width:99px; height:17px; ">출고담당자 :</caption>
  544. <input id="ipt_instcd" ref="/root/send/gooddelive/instcd" visibility="hidden" style="left:1075px; top:15px; width:30px; height:19px; "/>
  545. <button id="btn_excel" class="btn2_letter2" style="left:1151px; top:75px; width:42px; height:19px; ">
  546. <caption>엑셀</caption>
  547. <script type="javascript" ev:event="DOMActivate">
  548. <![CDATA[
  549. var iokindnm = cmb_iokindcd.label;
  550. var fileName = window.fileDialog("save", ",", false, iokindnm+"내역", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  551. if (fileName != "")
  552. {
  553. grd_gooddelive.saveExcel(fileName, "SheetName", false, false, "", "", "false");
  554. }
  555. ]]>
  556. </script>
  557. </button>
  558. <button id="button1" class="btn2_letter6" style="left:1005px; top:75px; width:86px; height:19px; ">
  559. <caption>재고가져오기</caption>
  560. <script type="javascript" ev:event="DOMActivate">
  561. <![CDATA[
  562. if(fCheckRetrieveData(true) == false)return;
  563. /*if(model.getValue(ipt_windeptcd.attribute("ref")).length== 0 ){
  564. messageBox("입고부서를 " ,"C001");
  565. model.setFocus("ipt_windeptcd");
  566. return ;
  567. }*/
  568. if(submit("TRRSO00104")){
  569. ipt_sumdeliveqty.value= "0"; //출고 건수 초기화
  570. if(grd_gooddelive.rows - grd_gooddelive.fixedRows > 0) fDefaultSetting2("1");
  571. }
  572. ]]>
  573. </script>
  574. </button>
  575. <select1 id="rdo_deliveflag" ref="/root/init/deliveflag" appearance="full" cols="2" overflow="visible" style="left:845px; top:75px; width:140px; height:20px; border-style:none; ">
  576. <choices>
  577. <item>
  578. <label>포장이송</label>
  579. <value>A</value>
  580. </item>
  581. <item>
  582. <label>낱개이송</label>
  583. <value>B</value>
  584. </item>
  585. </choices>
  586. <script type="javascript" ev:event="xforms-value-changed">
  587. <![CDATA[
  588. fChgDeliveFlag();
  589. ]]>
  590. </script>
  591. </select1>
  592. <select1 id="cmb_mngtcls" ref="/root/send/gooddelive/mngtcls" class="combo_s_essential" appearance="minimal" style="left:785px; top:44px; width:146px; height:19px; text-align:center; ">
  593. <choices>
  594. <itemset>
  595. <label/>
  596. <value/>
  597. </itemset>
  598. </choices>
  599. </select1>
  600. <caption id="caption21" class="search_name" style="left:695px; top:46px; width:88px; height:17px; ">관리분류 :</caption>
  601. </group>
  602. <group id="group1" style="left:0px; top:12; width:1195px; height:27px; ">
  603. <button id="btn_save" class="btn4_letter2" style="left:1070px; top:3px; width:56px; height:22px; ">
  604. <caption>저장</caption>
  605. <script type="javascript" ev:event="DOMActivate">
  606. <![CDATA[
  607. if(fCheckSaveData() == false)return;
  608. for(var currow = grd_gooddelive.fixedRows ; currow < grd_gooddelive.rows ; currow++)
  609. {
  610. var delivepackdeptqty = grd_gooddelive.valueMatrix(currow,grd_gooddelive.colRef("delivepackdeptqty"));
  611. var delivedeptqty = grd_gooddelive.valueMatrix(currow,grd_gooddelive.colRef("delivedeptqty"));
  612. if((delivepackdeptqty == 0)&&(delivedeptqty==0)){
  613. grd_gooddelive.rowStatus(currow)=0;
  614. }
  615. /*else{
  616. var goodcd = grd_gooddelive.valueMatrix(currow,grd_gooddelive.colRef("goodcd"));
  617. if(grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("cmt")).length == 0){
  618. messageBox(currow+ " 번째 "+"("+goodcd+")"+ "약품에 대한 출고사유를" ,"C001");
  619. grd_gooddelive.row = currow;
  620. grd_gooddelive.col= grd_gooddelive.colRef("cmt");
  621. grd_gooddelive.editCell();
  622. return;
  623. }
  624. }*/
  625. }
  626. misfSave("TXRSO00101");
  627. if (model.getValue(gvErrorMsgPath + "/type") != "error")btn_search.dispatch("DOMActivate");
  628. ]]>
  629. </script>
  630. </button>
  631. <button id="btn_init" class="btn4_letter3" style="left:1127px; top:3px; width:68px; height:22px; ">
  632. <caption>초기화</caption>
  633. <script type="javascript" ev:event="DOMActivate">
  634. <![CDATA[
  635. fInitialize();
  636. ]]>
  637. </script>
  638. </button>
  639. <line id="line17" class="line_6" style="x1:0px; y1:25; x2:1195px; y2:25px; "/>
  640. </group>
  641. </xhtml:body>
  642. </xhtml:html>