SMADT12140_마약류저장소일괄이동.xfdl 48 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMADT12140" classname="SMADT12140_마약류저장소일괄이동" inheritanceid="" position="absolute 0 0 1200 780" titletext="마약류 저장소 일괄이동" onload="SMADT12140_onload" oninit="SMADT12140_oninit">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption6" text="마약류 저장소 일괄이동" class="tit_1" position="absolute 0 0 174 25"/>
  8. <Div id="grp_search" anchor="left top right" taborder="1" class="div_SA" position="absolute 0 50 1195 109">
  9. <Layouts>
  10. <Layout>
  11. <Static id="caption2" text="저장소 :" class="search_name" position="absolute 405 10 467 27" anchor="default"/>
  12. <Button id="btn_search" taborder="58" text="조회" class="btn1" position="absolute 800 7 856 29" anchor="default" onclick="grp_search_btn_search_onclick"/>
  13. <Static id="caption1" text="입고일자 :" class="search_name" position="absolute 21 10 92 27" anchor="default"/>
  14. <Calendar id="ipt_indd_from" taborder="59" autoselect="true" dateformat="yyyy-MM-dd" class="input_essential" position="absolute 97 8 191 27" style="align:center;" align="align:center middle;" mask="yyyy-mm-dd" anchor="default"/>
  15. <Static id="caption00" text="~" position="absolute 195 9 206 26" style="align:center;font:dotum,9,bold;" anchor="default"/>
  16. <Calendar id="ipt_indd_to" taborder="60" autoselect="true" dateformat="yyyy-MM-dd" class="input_essential" position="absolute 209 8 303 27" style="align:left;" mask="yyyy-mm-dd" anchor="default"/>
  17. <Combo id="cmb_storge_no" taborder="61" innerdataset="@ds_storgelist" codecolumn="storge_no" datacolumn="storge_nonm" class="combo_default" position="absolute 469 8 611 27"/>
  18. <Static id="caption03" text="약품코드 :" class="search_name" position="absolute 21 34 96 51"/>
  19. <Edit id="ipt_gtin" taborder="62" autoselect="true" class="input_search" position="absolute 403 37 496 56" visible="false"/>
  20. <Button id="btn_gtin" taborder="63" class="icon_search" position="absolute 194 34 210 50" onclick="grp_search_btn_gtin_onclick"/>
  21. <Edit id="opt_hngnm" taborder="64" readonly="true" autoselect="true" class="output" position="absolute 215 33 488 52"/>
  22. <Button id="btn_backward" taborder="65" text="&lt;" position="absolute 308 7 330 29" onclick="grp_search_btn_backward_onclick"/>
  23. <Button id="btn_forward" taborder="66" text="&gt;" position="absolute 364 7 386 29" onclick="grp_search_btn_forward_onclick"/>
  24. <Button id="btn_today" taborder="67" text="당일" position="absolute 331 7 363 29" onclick="grp_search_btn_today_onclick"/>
  25. <Edit id="ipt_drugcd" taborder="68" autoselect="true" class="input_search" position="absolute 97 33 190 52" inputmode="upper" imemode="alpha" onkeydown="grp_search_ipt_drugcd_onkeydown"/>
  26. </Layout>
  27. </Layouts>
  28. </Div>
  29. <Static id="caption01" text="재고 목록" class="tit_2" position="absolute -1 187 170 208"/>
  30. <Grid id="grd_movlist" taborder="17" boutddataset="ds_movlist" autoenter="select" useinputpanel="false" selecttype="multirow" cellsizingtype="both" position="absolute 0 209 1195 719" anchor="all" binddataset="ds_movlist" ontextchange="grd_movlist_ontextchange" onheadclick="grd_movlist_onheadclick" onrbuttondown="grd_movlist_onrbuttondown" summarytype="default">
  31. <Formats>
  32. <Format id="default">
  33. <Columns>
  34. <Column size="25" band="left"/>
  35. <Column size="30"/>
  36. <Column size="70"/>
  37. <Column size="83"/>
  38. <Column size="96"/>
  39. <Column size="87"/>
  40. <Column size="207"/>
  41. <Column size="73"/>
  42. <Column size="86"/>
  43. <Column size="155"/>
  44. <Column size="40"/>
  45. <Column size="44"/>
  46. <Column size="40"/>
  47. <Column size="44"/>
  48. <Column size="33"/>
  49. <Column size="0"/>
  50. <Column size="0"/>
  51. <Column size="0"/>
  52. </Columns>
  53. <Rows>
  54. <Row size="24" band="head"/>
  55. <Row size="24"/>
  56. </Rows>
  57. <Band id="head">
  58. <Cell/>
  59. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="0"/>
  60. <Cell col="2" text="저장소"/>
  61. <Cell col="3" text="약품코드"/>
  62. <Cell col="4" text="Label No"/>
  63. <Cell col="5" text="제품코드"/>
  64. <Cell col="6" text="제품명"/>
  65. <Cell col="7" text="유효기간"/>
  66. <Cell col="8" text="제조번호"/>
  67. <Cell col="9" text="일련번호"/>
  68. <Cell col="10" colspan="2" text="유통단위 수" taborder="undefined"/>
  69. <Cell col="12" colspan="2" text="낱개단위 수" taborder="undefined"/>
  70. <Cell col="14" text="구분"/>
  71. <Cell col="15" text="제품최소유통단위수량"/>
  72. <Cell col="16" text="제품총낱개단위수량"/>
  73. <Cell col="17" text="바코드"/>
  74. </Band>
  75. <Band id="body">
  76. <Cell celltype="head" text="expr:currow+1"/>
  77. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:chkfg"/>
  78. <Cell col="2" style="align:left;" text="bind:storge_nm"/>
  79. <Cell col="3" style="align:left;" text="bind:drugcd"/>
  80. <Cell col="4" displaytype="normal" text="bind:labelno" mask="@@@@-@@-@@ @@@"/>
  81. <Cell col="5" displaytype="text" style="align:center;" text="bind:gtin"/>
  82. <Cell col="6" style="align:left;" text="bind:hngnm"/>
  83. <Cell col="7" displaytype="date" text="bind:prd_valid_de"/>
  84. <Cell col="8" displaytype="text" style="align:center;" text="bind:mnf_no"/>
  85. <Cell col="9" displaytype="text" style="align:center;" text="bind:mnf_seq"/>
  86. <Cell col="10" displaytype="text" edittype="text" editfilter="number" style="align:center;" text="bind:min_distb_qy" editautoselect="true"/>
  87. <Cell col="11" text="bind:prd_min_distb_unit"/>
  88. <Cell col="12" displaytype="text" edittype="text" editfilter="number" style="align:center;" text="bind:pce_qy" editautoselect="true"/>
  89. <Cell col="13" text="bind:prd_pce_unit"/>
  90. <Cell col="14" text="bind:prtm_se_nm"/>
  91. <Cell col="15" text="bind:prd_min_distb_qy"/>
  92. <Cell col="16" text="bind:prd_tot_pce_qy"/>
  93. <Cell col="17" text="bind:prd_sgtin"/>
  94. </Band>
  95. </Format>
  96. </Formats>
  97. </Grid>
  98. <Shape id="line01" class="line_1" position="absolute 0 139 1195 145"/>
  99. <Static id="caption14" text="입고될 저장소" class="cell_1" position="absolute 208 145 302 168" style="font:dotum,9;"/>
  100. <Shape id="line03" class="line_1" position="absolute 0 170 1195 176"/>
  101. <Shape id="line7" class="line_10" position="absolute 0 204 1195 210" anchor="left top right"/>
  102. <Div id="grp_button" anchor="left top right" taborder="40" position="absolute 0 13 1195 45">
  103. <Layouts>
  104. <Layout>
  105. <Shape id="line2" class="line_6" position="absolute 0 25 1195 31" anchor="left top right"/>
  106. </Layout>
  107. </Layouts>
  108. </Div>
  109. <Static id="caption09" text="저장소이동 정보" class="tit_2" position="absolute 0 123 167 140"/>
  110. <Combo id="cmb_out_storge_no" taborder="42" innerdataset="ds_out_storgelist" codecolumn="storge_no" datacolumn="storge_nonm" class="combo_default" position="absolute 305 147 456 166" style="color:red;font:dotum,9,bold;"/>
  111. <Static id="caption24" text="이동일자" class="cell_1" position="absolute 0 145 86 168"/>
  112. <Calendar id="ipt_outdd" taborder="48" autoselect="true" dateformat="yyyy-MM-dd" class="input_default" position="absolute 89 147 198 166" style="color:red;align:left;font:dotum,9,bold;" mask="yyyy-mm-dd"/>
  113. <Static id="Static00" text="※ 입고일자(조회조건)는 구입, 저장소이동, 양수, 반환 등 모든 입고형태의 취급일자를 의미합니다." position="absolute 8 722 810 742" onclick="Static00_onclick" style="color:red;" anchor="left bottom"/>
  114. <Button id="btn_save" taborder="49" text="저장" onclick="btn_save_onclick" class="btn3" position="absolute 470 147 523 166"/>
  115. <Button id="btn_history" taborder="50" text="이동이력 조회" class="btn5" position="absolute 527 147 624 166" onclick="btn_history_onclick"/>
  116. <Button id="btn_deduct" taborder="51" text="기재고 차감" onclick="btn_deduct_onclick" class="btn4" position="absolute 1002 183 1102 202" anchor="top right"/>
  117. <Button id="btn_download" taborder="52" text="엑셀 Download" onclick="btn_download_onclick" class="btn2" position="absolute 890 183 998 202" anchor="top right"/>
  118. <Button id="btn_deduct2" taborder="53" text="재고 차감" class="btn4" position="absolute 1106 183 1194 202" anchor="top right" onclick="btn_deduct2_onclick"/>
  119. <Static id="Static01" text="기재고 차감 - 제도 시행일(2018년 5월 18일) 이전 구입분만 대상으로 함" onclick="Static00_onclick" position="absolute 24 738 826 758" anchor="left bottom" style="color:red;"/>
  120. <Static id="Static02" text="재고 차감 - 제도 시행 이후 구입분을 대상으로 강제로 재고를 차감함(신고대상에서 제외됨)" onclick="Static00_onclick" position="absolute 24 754 826 774" anchor="left bottom" style="color:red;"/>
  121. <Static id="caption05" text="관리구분 :" class="search_name" position="absolute 629 59 704 76"/>
  122. <Combo id="cmb_prtm_se_nm" taborder="54" codecolumn="codecolumn" datacolumn="datacolumn" class="combo_search" position="absolute 707 57 778 76">
  123. <Dataset id="innerdataset">
  124. <ColumnInfo>
  125. <Column id="codecolumn" size="256"/>
  126. <Column id="datacolumn" size="256"/>
  127. </ColumnInfo>
  128. <Rows>
  129. <Row>
  130. <Col id="codecolumn"/>
  131. <Col id="datacolumn">전체</Col>
  132. </Row>
  133. <Row>
  134. <Col id="codecolumn">중점</Col>
  135. <Col id="datacolumn">중점</Col>
  136. </Row>
  137. <Row>
  138. <Col id="codecolumn">일반</Col>
  139. <Col id="datacolumn">일반</Col>
  140. </Row>
  141. </Rows>
  142. </Dataset>
  143. </Combo>
  144. </Layout>
  145. </Layouts>
  146. <Bind>
  147. <BindItem id="item20" compid="cmb_out_storge_no" propid="value" datasetid="ds_send_search" columnid="out_storge_no"/>
  148. <BindItem id="item12" compid="SMADT12140" propid="text" datasetid="ds_main_prntlist_patinfo" columnid=""/>
  149. <BindItem id="item14" compid="grp_search.ipt_indd_from" propid="value" datasetid="ds_send_search" columnid="indd_from"/>
  150. <BindItem id="item15" compid="grp_search.ipt_indd_to" propid="value" datasetid="ds_send_search" columnid="indd_to"/>
  151. <BindItem id="item0" compid="grp_search.cmb_storge_no" propid="value" datasetid="ds_send_search" columnid="storge_no"/>
  152. <BindItem id="item5" compid="grp_search.ipt_gtin" propid="value" datasetid="ds_send_search" columnid="gtin"/>
  153. <BindItem id="item22" compid="grp_search.opt_hngnm" propid="value" datasetid="ds_send_search" columnid="hngnm"/>
  154. <BindItem id="item1" compid="ipt_outdd" propid="value" datasetid="ds_send_search" columnid="outdd"/>
  155. <BindItem id="item2" compid="grp_search.ipt_drugcd" propid="value" datasetid="ds_send_search" columnid="drugcd"/>
  156. <BindItem id="item26" compid="cmb_prtm_se_nm" propid="value" datasetid="ds_send_search" columnid="prtm_se_nm"/>
  157. </Bind>
  158. <Objects>
  159. <Dataset id="ds_send_search" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_send_search_oncolumnchanged">
  160. <ColumnInfo>
  161. <Column id="indd_from" type="STRING" size="256"/>
  162. <Column id="indd_to" type="STRING" size="256"/>
  163. <Column id="storge_no" type="STRING" size="256" sumtext="연도"/>
  164. <Column id="gtin" type="STRING" size="256"/>
  165. <Column id="hngnm" type="STRING" size="256"/>
  166. <Column id="outdd" type="STRING" size="256"/>
  167. <Column id="out_storge_no" type="STRING" size="256"/>
  168. <Column id="drugcd" type="STRING" size="256"/>
  169. <Column id="prtm_se_nm" type="STRING" size="256"/>
  170. </ColumnInfo>
  171. <Rows>
  172. <Row/>
  173. </Rows>
  174. </Dataset>
  175. <Dataset id="ds_out_storgelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  176. <ColumnInfo>
  177. <Column id="storge_no" type="STRING" size="256"/>
  178. <Column id="storge_nm" type="STRING" size="256"/>
  179. <Column id="storge_nonm" type="STRING" size="256"/>
  180. </ColumnInfo>
  181. </Dataset>
  182. <Dataset id="ds_storgelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  183. <ColumnInfo>
  184. <Column id="storge_no" type="STRING" size="256"/>
  185. <Column id="storge_nm" type="STRING" size="256"/>
  186. <Column id="storge_nonm" type="STRING" size="256"/>
  187. </ColumnInfo>
  188. </Dataset>
  189. <Dataset id="ds_movlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_movlist_oncolumnchanged">
  190. <ColumnInfo>
  191. <Column id="outdd" type="STRING" size="256"/>
  192. <Column id="gtin" type="STRING" size="256"/>
  193. <Column id="prd_valid_de" type="STRING" size="256"/>
  194. <Column id="mnf_no" type="STRING" size="256"/>
  195. <Column id="mnf_seq" type="STRING" size="256"/>
  196. <Column id="prd_sgtin" type="STRING" size="256"/>
  197. <Column id="storge_no" type="STRING" size="256"/>
  198. <Column id="prd_min_distb_qy" type="STRING" size="256"/>
  199. <Column id="prd_min_distb_unit" type="STRING" size="256"/>
  200. <Column id="prd_tot_pce_qy" type="STRING" size="256"/>
  201. <Column id="prd_pce_unit" type="STRING" size="256"/>
  202. <Column id="min_distb_qy" type="STRING" size="256"/>
  203. <Column id="pce_qy" type="STRING" size="256"/>
  204. <Column id="prtm_se_nm" type="STRING" size="256"/>
  205. <Column id="hngnm" type="STRING" size="256"/>
  206. <Column id="drugcd" type="STRING" size="256"/>
  207. <Column id="storge_nm" type="STRING" size="256"/>
  208. <Column id="indd" type="STRING" size="256"/>
  209. <Column id="stoc_min_distb_qy" type="STRING" size="256"/>
  210. <Column id="stoc_pce_qy" type="STRING" size="256"/>
  211. <Column id="chkfg" type="STRING" size="256"/>
  212. <Column id="status" type="STRING" size="256"/>
  213. <Column id="labelno" type="STRING" size="256"/>
  214. </ColumnInfo>
  215. </Dataset>
  216. <Dataset id="ds_send_prd_sgtin" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  217. <ColumnInfo>
  218. <Column id="prd_sgtin" type="STRING" size="256"/>
  219. <Column id="basedd" type="STRING" size="256"/>
  220. </ColumnInfo>
  221. <Rows>
  222. <Row/>
  223. </Rows>
  224. </Dataset>
  225. <Dataset id="ds_prdinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  226. <Column id="instcd" type="STRING" size="256"/>
  227. <Column id="drugcd" type="STRING" size="256"/>
  228. <Column id="fromdd" type="STRING" size="256"/>
  229. <Column id="todd" type="STRING" size="256"/>
  230. <Column id="ordnm" type="STRING" size="256"/>
  231. <Column id="hngnm" type="STRING" size="256"/>
  232. <Column id="gtin" type="STRING" size="256"/>
  233. <Column id="gtins" type="STRING" size="256"/>
  234. <Column id="gtine" type="STRING" size="256"/>
  235. <Column id="lots" type="STRING" size="256"/>
  236. <Column id="lote" type="STRING" size="256"/>
  237. <Column id="exps" type="STRING" size="256"/>
  238. <Column id="expe" type="STRING" size="256"/>
  239. <Column id="sns" type="STRING" size="256"/>
  240. <Column id="sne" type="STRING" size="256"/>
  241. <Column id="prtm_se_nm" type="STRING" size="256"/>
  242. <Column id="prd_min_distb_qy" type="STRING" size="256"/>
  243. <Column id="prd_min_distb_unit" type="STRING" size="256"/>
  244. <Column id="prd_tot_pce_qy" type="STRING" size="256"/>
  245. <Column id="prd_pce_unit" type="STRING" size="256"/>
  246. <ColumnInfo>
  247. <Column id="drugcd" type="STRING" size="256"/>
  248. <Column id="fromdd" type="STRING" size="256"/>
  249. <Column id="todd" type="STRING" size="256"/>
  250. <Column id="ordnm" type="STRING" size="256"/>
  251. <Column id="hngnm" type="STRING" size="256"/>
  252. <Column id="gtin" type="STRING" size="256"/>
  253. <Column id="gtins" type="STRING" size="256"/>
  254. <Column id="gtine" type="STRING" size="256"/>
  255. <Column id="lots" type="STRING" size="256"/>
  256. <Column id="lote" type="STRING" size="256"/>
  257. <Column id="exps" type="STRING" size="256"/>
  258. <Column id="expe" type="STRING" size="256"/>
  259. <Column id="sns" type="STRING" size="256"/>
  260. <Column id="sne" type="STRING" size="256"/>
  261. <Column id="prtm_se_nm" type="STRING" size="256"/>
  262. <Column id="prd_min_distb_qy" type="STRING" size="256"/>
  263. <Column id="prd_min_distb_unit" type="STRING" size="256"/>
  264. <Column id="prd_tot_pce_qy" type="STRING" size="256"/>
  265. <Column id="prd_pce_unit" type="STRING" size="256"/>
  266. </ColumnInfo>
  267. </Dataset>
  268. <Dataset id="ds_temp_receivedata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  269. <ColumnInfo>
  270. <Column id="receiveref" type="STRING" size="256"/>
  271. <Column id="receive_drugcd" type="STRING" size="256"/>
  272. <Column id="receive_hngnm" type="STRING" size="256"/>
  273. <Column id="receive_gtin" type="STRING" size="256"/>
  274. <Column id="receive_prtm_se_nm" type="STRING" size="256"/>
  275. <Column id="receive_prd_min_distb_qy" type="STRING" size="256"/>
  276. <Column id="receive_prd_min_distb_unit" type="STRING" size="256"/>
  277. <Column id="receive_prd_tot_pce_qy" type="STRING" size="256"/>
  278. <Column id="receive_prd_pce_unit" type="STRING" size="256"/>
  279. <Column id="basedd" type="STRING" size="256"/>
  280. </ColumnInfo>
  281. <Rows>
  282. <Row/>
  283. </Rows>
  284. </Dataset>
  285. <Dataset id="ds_history_param" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  286. <ColumnInfo>
  287. <Column id="receiveref" type="STRING" size="256"/>
  288. <Column id="receive_drugcd" type="STRING" size="256"/>
  289. <Column id="receive_hngnm" type="STRING" size="256"/>
  290. <Column id="receive_gtin" type="STRING" size="256"/>
  291. <Column id="receive_prtm_se_nm" type="STRING" size="256"/>
  292. <Column id="receive_prd_min_distb_qy" type="STRING" size="256"/>
  293. <Column id="receive_prd_min_distb_unit" type="STRING" size="256"/>
  294. <Column id="receive_prd_tot_pce_qy" type="STRING" size="256"/>
  295. <Column id="receive_prd_pce_unit" type="STRING" size="256"/>
  296. <Column id="basedd" type="STRING" size="256"/>
  297. </ColumnInfo>
  298. <Rows>
  299. <Row/>
  300. </Rows>
  301. </Dataset>
  302. </Objects>
  303. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  304. * System Name : 경대 의료정보시스템
  305. * Job Name : ast_pharmacydrugsumxp-> SMADT12140
  306. * Creator : pjb
  307. * Make Date : 2018-04-11
  308. * Description :
  309. *---------------------------------------------------------------------------------------
  310. * Modify Date Modifier Modify Description
  311. *---------------------------------------------------------------------------------------
  312. * 2018-04-11 pjb XP개발
  313. *
  314. *---------------------------------------------------------------------------------------
  315. ****************************************************************************************/
  316. //=======================================================================================
  317. // Lib Include
  318. //---------------------------------------------------------------------------------------
  319. include "com_commonxp::comm_main.xjs";
  320. //include "mis_miscommonxp::MIS.xjs";
  321. //include "mis_humtrafactmngtxp::RPB001.xjs";
  322. //=======================================================================================
  323. // Global Form Variable
  324. //---------------------------------------------------------------------------------------
  325. var arErrorCode = new HashArray();
  326. //=======================================================================================
  327. // Function
  328. //---------------------------------------------------------------------------------------
  329. //=======================================================================================
  330. // Event
  331. //---------------------------------------------------------------------------------------
  332. /****************************************************************************************
  333. * Components : Form
  334. * Components ID : SMADT12140
  335. * Event : oninit
  336. * Argument : 01.obj : Object Event has occurred
  337. * : 02.e : Event Object
  338. * Description : 화면 처음 초기화시
  339. ****************************************************************************************/
  340. function SMADT12140_oninit(obj:Form, e:InitEventInfo)
  341. {
  342. frmf_initForm(obj); //폼 초기화
  343. }
  344. /****************************************************************************************
  345. * Components : Form
  346. * Components ID : SMADT12140
  347. * Event : onload
  348. * Argument : 01.obj : Object Event has occurred
  349. * : 02.e : Event Object
  350. * Description : 화면 로딩 완료시
  351. ****************************************************************************************/
  352. function SMADT12140_onload(obj:Form, e:LoadEventInfo)
  353. {
  354. //grdf_setRowTypeIcon(grd_movlist, 0);
  355. grdf_setGridSort(grd_movlist);
  356. frmf_createPopupMenu("pmn_popupMenu", "pmn_popupMenu_onmenuclick", [{id: "f_cellCheck", level: "1", title: "선택"},{id: "f_cellCheckCancel", level: "1", title: "선택해제"}]);
  357. var curdd = utlf_getCurrentDate();
  358. ds_send_search.setColumn(0, "indd_from", curdd );
  359. ds_send_search.setColumn(0, "indd_to", curdd );
  360. ds_send_search.setColumn(0, "outdd", curdd);
  361. //ds_movinfo.setColumn(0, "status", "i"); // 작업구분(i, u, d)
  362. //저장소 목록 조회
  363. var oParam = {};
  364. oParam.id = "TRADT12112";
  365. oParam.service = "pharmacydrugsumapp.NarcManagent";
  366. oParam.method = "reqGetStorgeList";
  367. oParam.inds = "req=";
  368. oParam.outds = "ds_storgelist=storgelist";
  369. oParam.async = false;
  370. // oParam.callback = "cf_TRADT12112";
  371. tranf_submit(oParam);
  372. ds_out_storgelist.copyData(ds_storgelist);
  373. //frmf_addComboItem("grp_search.cmb_storge_no","전체","","above");
  374. ds_send_search.setColumn(0, "storge_no", "S0001"); //default setting : S0001 기본저장소
  375. frmf_addComboItem("cmb_out_storge_no","선택","","above");
  376. ds_send_search.setColumn(0, "out_storge_no", ""); //초기화
  377. grp_search.cmb_storge_no.setFocus();
  378. }
  379. /****************************************************************************************
  380. * Components : Button
  381. * Components ID : grp_search_btn_search
  382. * Event : onclick
  383. * Argument : 01.obj : Object Event has occurred
  384. * : 02.e : Event Object
  385. * Description : 조회버튼 클릭시
  386. ****************************************************************************************/
  387. function grp_search_btn_search_onclick(obj:Button, e:ClickEventInfo)
  388. {
  389. if (utlf_transNullToEmpty(ds_send_search.getColumn(0, "indd_from")).length != 8){
  390. sysf_messageBox("입고일자를 확인하십시요. ", "E999", "");
  391. grp_search.ipt_indd_from.setFocus();
  392. return;
  393. }
  394. if (utlf_transNullToEmpty(ds_send_search.getColumn(0, "indd_to")).length != 8){
  395. sysf_messageBox("입고일자를 확인하십시요. ", "E999", "");
  396. grp_search.ipt_indd_to.setFocus();
  397. return;
  398. }
  399. //창고별 재고 목록 조회
  400. var oParam = {};
  401. oParam.id = "TRADT12141";
  402. oParam.service = "pharmacydrugsumapp.NarcManagent";
  403. oParam.method = "reqGetStocList";
  404. oParam.inds = "req=ds_send_search";
  405. oParam.outds = "ds_movlist=stoclist";
  406. oParam.async = false;
  407. oParam.callback = "cf_TRADT12141";
  408. tranf_submit(oParam);
  409. if (arErrorCode.pop("TRADT12141") > -1){
  410. //ds_movinfo.clearData();
  411. //ds_movinfo.addRow();
  412. /*
  413. //입력가능 모드
  414. cmb_out_storge_no.enable = true;
  415. grp_movinfo.enable = true;
  416. btn_save.enable = true;
  417. btn_delete.enable = false;
  418. //ds_movinfo clear
  419. ds_movinfo.setColumn(0, "status", "i"); //작업구분(i, u, d)
  420. ds_movinfo.setColumn(0, "gtin", "");
  421. ds_movinfo.setColumn(0, "hngnm", "");
  422. ds_movinfo.setColumn(0, "prtm_se_nm", "");
  423. ds_movinfo.setColumn(0, "prd_sgtin", "");
  424. ds_movinfo.setColumn(0, "prd_valid_de", "");
  425. //ds_movinfo.setColumn(0, "storge_no", "");
  426. ds_movinfo.setColumn(0, "mnf_no", "");
  427. ds_movinfo.setColumn(0, "prd_min_distb_qy", "");
  428. ds_movinfo.setColumn(0, "prd_min_distb_unit", "");
  429. ds_movinfo.setColumn(0, "prd_tot_pce_qy", "");
  430. ds_movinfo.setColumn(0, "prd_pce_unit", "");
  431. ds_movinfo.setColumn(0, "mnf_seq", "");
  432. ds_movinfo.setColumn(0, "min_distb_qy", "");
  433. ds_movinfo.setColumn(0, "pce_qy", "");
  434. ds_movinfo.setColumn(0, "drugcd", "");
  435. grp_movinfo.ipt_prd_sgtin.setFocus();
  436. */
  437. }
  438. }
  439. function cf_TRADT12141(sSvcId, nErrorCode, sErrorMsg) {
  440. arErrorCode.push(sSvcId, nErrorCode);
  441. }
  442. /****************************************************************************************
  443. * Components : Button
  444. * Components ID : btn_save
  445. * Event : onclick
  446. * Argument : 01.obj : Object Event has occurred
  447. * : 02.e : Event Object
  448. * Description : 저장 버튼 Click시
  449. ****************************************************************************************/
  450. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  451. {
  452. /*
  453. if( sysf_messageBox("저장하시겠습니까? " , "Q99" ) != 6 ) {
  454. return;
  455. }
  456. */
  457. if (utlf_isNull(ds_send_search.getColumn(0, "outdd"))) {
  458. sysf_messageBox("이동일자가 입력되지 않았습니다.", "E999", "");
  459. grp_movinfo.ipt_outdd.setFocus();
  460. return;
  461. }
  462. if (utlf_isNull(ds_send_search.getColumn(0, "out_storge_no"))) {
  463. sysf_messageBox("입고될 저장소가 선택되지 않았습니다.", "E999", "");
  464. cmb_out_storge_no.setFocus();
  465. return;
  466. }
  467. if (utlf_transNullToEmpty(ds_send_search.getColumn(0, "out_storge_no")) == utlf_transNullToEmpty(ds_send_search.getColumn(0, "storge_no"))) {
  468. sysf_messageBox("입고될 저장소가 현저장소와 동일합니다. 입고될 저장소를 확인하십시요.", "E999", "");
  469. cmb_out_storge_no.setFocus();
  470. return;
  471. }
  472. for(var i = 0; i < ds_movlist.rowcount; i++) {
  473. if (ds_movlist.getColumn(i, "chkfg") == "1") {
  474. // ( 이동일자 >= 구입일자 ) 여부를 check함
  475. if (ds_send_search.getColumn(0, "outdd") < ds_movlist.getColumn(i, "labelno").substr(0, 8)) {
  476. sysf_messageBox("이동일자가 구입일자 이전일 수 없습니다. [행번호 " + (i + 1) + " 번]", "E999", "");
  477. ds_movlist.selectRow(i + 1);
  478. return;
  479. }
  480. //0을 null로 변경함
  481. if (ds_movlist.getColumn(i, "min_distb_qy") == "0") ds_movlist.setColumn(i, "min_distb_qy", "");
  482. if (ds_movlist.getColumn(i, "pce_qy") == "0") ds_movlist.setColumn(i, "pce_qy", "");
  483. if (utlf_isNull(ds_movlist.getColumn(i, "min_distb_qy")) && utlf_isNull(ds_movlist.getColumn(i, "pce_qy"))) {
  484. sysf_messageBox("이동수량이 입력되지 않았습니다. [행번호 " + (i + 1) + " 번]", "E999", "");
  485. ds_movlist.selectRow(i + 1);
  486. return;
  487. }
  488. ds_movlist.setColumn(i, "status", "i"); //작업구분(i, u, d)
  489. ds_movlist.setColumn(i, "outdd", ds_send_search.getColumn(0, "outdd") );
  490. ds_movlist.setColumn(i, "out_storge_no", ds_send_search.getColumn(0, "out_storge_no"));
  491. }
  492. }
  493. //저장소이동내역 저장(입력/삭제/기재고차감)
  494. var oParam = {};
  495. oParam.id = "TXADT12141";
  496. oParam.service = "pharmacydrugsumapp.NarcManagent";
  497. oParam.method = "reqExeSaveMovList";
  498. oParam.inds = "movlist=ds_movlist";
  499. oParam.outds = ""; //"ds_hidden_item=item";
  500. oParam.async = false;
  501. oParam.callback = "cf_TXADT12141";
  502. tranf_submit(oParam);
  503. if (arErrorCode.pop("TXADT12141") > -1){
  504. /*
  505. //해당 저장소이동내역의 이동일자, 저장소, 입고저장소로 조회를 실시한다.
  506. ds_send_search.setColumn(0, "indd_from", ds_movinfo.getColumn(0, "outdd") );
  507. ds_send_search.setColumn(0, "indd_to", ds_movinfo.getColumn(0, "outdd") );
  508. ds_send_search.setColumn(0, "storge_no", ds_movinfo.getColumn(0, "storge_no") );
  509. ds_send_search.setColumn(0, "out_storge_no", ds_movinfo.getColumn(0, "out_storge_no") );
  510. */
  511. //조회버튼 Click Event Call
  512. var e = new ClickEventInfo;
  513. grp_search.btn_search.onclick.fireEvent(grp_search.btn_search, e);
  514. //ds_pcmlist.selectRow(ds_pcmlist.rowcount-1);
  515. }
  516. //grp_movinfo.ipt_prd_sgtin.setFocus();
  517. }
  518. function cf_TXADT12141(sSvcId, nErrorCode, sErrorMsg) {
  519. arErrorCode.push(sSvcId, nErrorCode);
  520. }
  521. /****************************************************************************************
  522. * Components : Edit
  523. * Components ID : ipt_prd_sgtin
  524. * Event : onkeydown
  525. * Argument : 01.obj : Object Event has occurred
  526. * : 02.e : Event Object
  527. * Description : Enter키 누를 때
  528. ****************************************************************************************/
  529. function grp_movinfo_ipt_prd_sgtin_onkeydown(obj:Edit, e:KeyEventInfo)
  530. {
  531. if(e.keycode == 13) {
  532. obj.updateToDataset();
  533. if (utlf_isNull(ds_movinfo.getColumn(0, "prd_sgtin"))) {
  534. return;
  535. }
  536. if (utlf_transNullToEmpty(ds_movinfo.getColumn(0, "outdd")).length != 8){
  537. sysf_messageBox("이동일자를 확인하십시요. ", "E999", "");
  538. grp_movinfo.ipt_outdd.setFocus();
  539. return;
  540. }
  541. ds_send_prd_sgtin.setColumn(0, "prd_sgtin", obj.value);
  542. ds_send_prd_sgtin.setColumn(0, "basedd", ds_movinfo.getColumn(0, "outdd"));
  543. //품목 정보 조회
  544. var oParam = {};
  545. oParam.id = "TRADT12115";
  546. oParam.service = "pharmacydrugsumapp.NarcManagent";
  547. oParam.method = "reqGetPrdInfo";
  548. oParam.inds = "req=ds_send_prd_sgtin";
  549. oParam.outds = "ds_prdinfo=prdinfo";
  550. oParam.async = false;
  551. oParam.callback = "cf_TRADT12115";
  552. tranf_submit(oParam);
  553. if (arErrorCode.pop("TRADT12115") > -1){
  554. var exps = parseInt(ds_prdinfo.getColumn(0, "exps"));
  555. var expe = parseInt(ds_prdinfo.getColumn(0, "expe"));
  556. var lots = parseInt(ds_prdinfo.getColumn(0, "lots"));
  557. var lote = parseInt(ds_prdinfo.getColumn(0, "lote"));
  558. var sns = parseInt(ds_prdinfo.getColumn(0, "sns"));
  559. var sne = parseInt(ds_prdinfo.getColumn(0, "sne"));
  560. ds_movinfo.setColumn(0, "gtin", ds_prdinfo.getColumn(0, "gtin"));
  561. ds_movinfo.setColumn(0, "hngnm", ds_prdinfo.getColumn(0, "hngnm"));
  562. ds_movinfo.setColumn(0, "prtm_se_nm", ds_prdinfo.getColumn(0, "prtm_se_nm"));
  563. if(expe == 6) { //날짜가 6자리로 구성되어 있는 경우
  564. ds_movinfo.setColumn(0, "prd_valid_de", '20' + String(obj.text).substr(exps - 1, expe));
  565. } else {
  566. ds_movinfo.setColumn(0, "prd_valid_de", String(obj.text).substr(exps - 1, expe));
  567. }
  568. //ds_movinfo.setColumn(0, "storge_no", "");
  569. ds_movinfo.setColumn(0, "mnf_no", String(obj.value).substr(lots - 1, lote));
  570. ds_movinfo.setColumn(0, "prd_min_distb_qy", ds_prdinfo.getColumn(0, "prd_min_distb_qy"));
  571. ds_movinfo.setColumn(0, "prd_min_distb_unit", ds_prdinfo.getColumn(0, "prd_min_distb_unit"));
  572. ds_movinfo.setColumn(0, "prd_tot_pce_qy", ds_prdinfo.getColumn(0, "prd_tot_pce_qy"));
  573. ds_movinfo.setColumn(0, "prd_pce_unit", ds_prdinfo.getColumn(0, "prd_pce_unit"));
  574. ds_movinfo.setColumn(0, "mnf_seq", String(obj.value).substr(sns - 1, sne));
  575. if(utlf_isNull(ds_movinfo.getColumn(0, "pce_qy"))) {
  576. ds_movinfo.setColumn(0, "min_distb_qy", "1"); //기본을 1개로 setting.
  577. }
  578. //ds_movinfo.setColumn(0, "pce_qy", "");
  579. ds_movinfo.setColumn(0, "drugcd", ds_prdinfo.getColumn(0, "drugcd"));
  580. //바코드 스캔시 자동저장
  581. if(ds_send_search.getColumn(0, "autofg") == "true") { //자동저장 여부가 true일 때
  582. //저장버튼 Click Event Call
  583. var e = new ClickEventInfo;
  584. btn_save.onclick.fireEvent(btn_save, e);
  585. }
  586. } else {
  587. //ds_movinfo clear
  588. ds_movinfo.setColumn(0, "status", "i"); //작업구분(i, u, d)
  589. ds_movinfo.setColumn(0, "gtin", "");
  590. ds_movinfo.setColumn(0, "hngnm", "");
  591. ds_movinfo.setColumn(0, "prtm_se_nm", "");
  592. //ds_movinfo.setColumn(0, "prd_sgtin", "");
  593. ds_movinfo.setColumn(0, "prd_valid_de", "");
  594. //ds_movinfo.setColumn(0, "storge_no", "");
  595. ds_movinfo.setColumn(0, "mnf_no", "");
  596. ds_movinfo.setColumn(0, "prd_min_distb_qy", "");
  597. ds_movinfo.setColumn(0, "prd_min_distb_unit", "");
  598. ds_movinfo.setColumn(0, "prd_tot_pce_qy", "");
  599. ds_movinfo.setColumn(0, "prd_pce_unit", "");
  600. ds_movinfo.setColumn(0, "mnf_seq", "");
  601. ds_movinfo.setColumn(0, "min_distb_qy", "");
  602. ds_movinfo.setColumn(0, "pce_qy", "");
  603. ds_movinfo.setColumn(0, "drugcd", "");
  604. grp_movinfo.ipt_prd_sgtin.setFocus();
  605. }
  606. }
  607. }
  608. function cf_TRADT12115(sSvcId, nErrorCode, sErrorMsg) {
  609. arErrorCode.push(sSvcId, nErrorCode);
  610. }
  611. /****************************************************************************************
  612. * Components : Dataset
  613. * Components ID : ds_send_search
  614. * Event : oncolumnchanged
  615. * Argument : 01.obj : Object Event has occurred
  616. * : 02.e : Event Object
  617. * Description : 컬럼의 값 변경시
  618. ****************************************************************************************/
  619. function ds_send_search_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  620. {
  621. /*
  622. if(e.columnid == "autofg") {
  623. if(e.newvalue == "true") {
  624. grp_movinfo.ipt_min_distb_qy.enable = false;
  625. grp_movinfo.ipt_in_pce_qy.enable = false;
  626. } else {
  627. grp_movinfo.ipt_min_distb_qy.enable = true;
  628. grp_movinfo.ipt_in_pce_qy.enable = true;
  629. }
  630. }
  631. */
  632. if(e.columnid == "indd_from" || e.columnid == "indd_to" || e.columnid == "storge_no" || e.columnid == "prtm_se_nm" ) {
  633. //Grid Clear
  634. ds_movlist.clearData();
  635. }
  636. else if(e.columnid == "drugcd") {
  637. if(e.newvalue != e.oldvalue) {
  638. obj.setColumn(0, "hngnm", "");
  639. obj.setColumn(0, "gtin", "");
  640. }
  641. }
  642. }
  643. /****************************************************************************************
  644. * Components : Button
  645. * Components ID : btn_gtin
  646. * Event : onclick
  647. * Argument : 01.obj : Object Event has occurred
  648. * : 02.e : Event Object
  649. * Description : 제품코드 버튼 Click시
  650. ****************************************************************************************/
  651. function grp_search_btn_gtin_onclick(obj:Button, e:ClickEventInfo)
  652. {
  653. ds_temp_receivedata.setColumn(0,"receiveref","ds_send_search");
  654. ds_temp_receivedata.setColumn(0,"receive_drugcd","drugcd");
  655. ds_temp_receivedata.setColumn(0,"receive_hngnm","hngnm");
  656. ds_temp_receivedata.setColumn(0,"receive_gtin","gtin");
  657. ds_temp_receivedata.setColumn(0,"receive_prtm_se_nm","prtm_se_nm");
  658. ds_temp_receivedata.setColumn(0,"receive_prd_min_distb_qy","prd_min_distb_qy");
  659. ds_temp_receivedata.setColumn(0,"receive_prd_min_distb_unit","prd_min_distb_unit");
  660. ds_temp_receivedata.setColumn(0,"receive_prd_tot_pce_qy","prd_tot_pce_qy");
  661. ds_temp_receivedata.setColumn(0,"receive_prd_pce_unit","prd_pce_unit");
  662. ds_temp_receivedata.setColumn(0,"basedd",""); //ds_send_search.getColumn(0, "indd_to")
  663. var objArg = new Object();
  664. objArg.arg_ds_temp_receivedata = ds_temp_receivedata;
  665. frmf_modal("SMADT12120","SMADT12120", objArg, "", "", 100, 150, "", "", "", "", "", "M");
  666. }
  667. /****************************************************************************************
  668. * Components : Dataset
  669. * Components ID : ds_movlist
  670. * Event : oncolumnchanged
  671. * Argument : 01.obj : Object Event has occurred
  672. * : 02.e : Event Object
  673. * Description : ds_movlist의 컬럼값 변경시
  674. ****************************************************************************************/
  675. function ds_movlist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  676. {
  677. /*
  678. if(e.columnid == "pce_qy") {
  679. obj.setColumn(e.row, "min_distb_qy", "");
  680. } else if(e.columnid == "min_distb_qy") {
  681. obj.setColumn(e.row, "pce_qy", "");
  682. }
  683. */
  684. }
  685. function grd_movlist_ontextchange(obj:Grid, e:GridEditTextChangeEventInfo)
  686. {
  687. if(obj.getCellProperty("Body", e.col, "text").replace("bind:", "") == "pce_qy") {
  688. ds_movlist.setColumn(e.row, "min_distb_qy", "");
  689. } else if(obj.getCellProperty("Body", e.col, "text").replace("bind:", "") == "min_distb_qy") {
  690. ds_movlist.setColumn(e.row, "pce_qy", "");
  691. }
  692. }
  693. function grp_search_btn_backward_onclick(obj:Button, e:ClickEventInfo)
  694. {
  695. var curdd = utlf_getCurrentDate();
  696. ds_send_search.setColumn(0, "indd_from", utlf_addDate(ds_send_search.getColumn(0, "indd_from"), -1) );
  697. ds_send_search.setColumn(0, "indd_to", utlf_addDate(ds_send_search.getColumn(0, "indd_to"), -1) );
  698. }
  699. function grp_search_btn_today_onclick(obj:Button, e:ClickEventInfo)
  700. {
  701. var curdd = utlf_getCurrentDate();
  702. ds_send_search.setColumn(0, "indd_from", curdd );
  703. ds_send_search.setColumn(0, "indd_to", curdd );
  704. }
  705. function grp_search_btn_forward_onclick(obj:Button, e:ClickEventInfo)
  706. {
  707. var curdd = utlf_getCurrentDate();
  708. ds_send_search.setColumn(0, "indd_from", utlf_addDate(ds_send_search.getColumn(0, "indd_from"), 1) );
  709. ds_send_search.setColumn(0, "indd_to", utlf_addDate(ds_send_search.getColumn(0, "indd_to"), 1) );
  710. }
  711. function btn_history_onclick(obj:Button, e:ClickEventInfo)
  712. {
  713. var objArg = new Object();
  714. objArg.arg_ds_sTemp = ds_send_search;
  715. frmf_modal("SMADT12130","SMADT12130", objArg, "", "", 100, 150, "", "", "", "", "", "M");
  716. }
  717. /****************************************************************************************
  718. * Components : Grid
  719. * Components ID : grd_movlist
  720. * Event : onheadclick
  721. * Argument : 01.obj : Object Event has occurred
  722. * : 02.e : Event Object
  723. * Description : grd_movlist의 Head 클릭시
  724. ****************************************************************************************/
  725. function grd_movlist_onheadclick(obj:Grid, e:GridClickEventInfo)
  726. {
  727. /* 백성우 차장 참고 소스
  728. if(e.cell==0){
  729. if(grd_projlist.getCellProperty('Head', 0, 'text')==0){
  730. for (var i = 0 ; i < ds_grid_grd_projlist.rowcount; i++ ){
  731. ds_grid_grd_projlist.setColumn(i, "check", "Y");
  732. grd_projlist.setCellProperty('Head', 0, 'text', 1);
  733. }
  734. } else {
  735. for (var i = 0 ; i < ds_grid_grd_projlist.rowcount; i++ ){
  736. ds_grid_grd_projlist.setColumn(i, "check", "N");
  737. grd_projlist.setCellProperty('Head', 0, 'text', 0);
  738. }
  739. }
  740. }
  741. */
  742. if(e.cell == 1) {
  743. // alert(grd_movlist.getCellProperty("Head", 1, "text"));
  744. if(grd_movlist.getCellProperty("Head", 1, "text").substr(0,1) == "0") {
  745. for (var i = 0; i < ds_movlist.rowcount; i++) {
  746. ds_movlist.setColumn(i, "chkfg", "1");
  747. grd_movlist.setCellProperty("Head", 1, "text", "1");
  748. }
  749. } else {
  750. for (var i = 0; i < ds_movlist.rowcount; i++) {
  751. ds_movlist.setColumn(i, "chkfg", "0");
  752. grd_movlist.setCellProperty("Head", 1, "text", "0");
  753. }
  754. }
  755. }
  756. }
  757. function grd_movlist_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  758. {
  759. this.ds_movlist.rowposition = e.row;
  760. pmn_popupMenu.trackPopup(e.screenX,e.screenY);
  761. }
  762. function pmn_popupMenu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  763. {
  764. eval(e.id + "()"); //함수호출
  765. }
  766. function f_cellCheck(){ //선택
  767. // trace(grd_movlist.selectcount);
  768. // trace('startRowIndex: ' + grd_movlist.selectstartrow);
  769. // trace('endRowIndex: ' + grd_movlist.selectendrow);
  770. for(var k = 0; k < grd_movlist.selectcount; k++) {
  771. var startIndex = grd_movlist.selectstartrow[k];
  772. var endIndex = grd_movlist.selectendrow[k];
  773. for(var i = startIndex; i <= endIndex; i++) {
  774. ds_movlist.setColumn(i, "chkfg", "1");
  775. }
  776. }
  777. }
  778. function f_cellCheckCancel(){ //선택해제
  779. // trace(grd_movlist.selectcount);
  780. // trace('startRowIndex: ' + grd_movlist.selectstartrow); //Array 받음
  781. // trace('endRowIndex: ' + grd_movlist.selectendrow); //Array 받음
  782. for(var k = 0; k < grd_movlist.selectcount; k++) {
  783. var startIndex = grd_movlist.selectstartrow[k];
  784. var endIndex = grd_movlist.selectendrow[k];
  785. for(var i = startIndex; i <= endIndex; i++) {
  786. ds_movlist.setColumn(i, "chkfg", "0");
  787. }
  788. }
  789. }
  790. function grp_search_ipt_drugcd_onkeydown(obj:Edit, e:KeyEventInfo)
  791. {
  792. if(e.keycode == 13) {
  793. obj.updateToDataset();
  794. }
  795. }
  796. /****************************************************************************************
  797. * Components : Button
  798. * Components ID : btn_deduct
  799. * Event : onclick
  800. * Argument : 01.obj : Object Event has occurred
  801. * : 02.e : Event Object
  802. * Description : 기재고차감 버튼 Click시
  803. ****************************************************************************************/
  804. function btn_deduct_onclick(obj:Button, e:ClickEventInfo)
  805. {
  806. if( sysf_messageBox("기재고 차감 작업을 진행하시겠습니까? " , "Q99" ) != 6 ) {
  807. return;
  808. }
  809. if (utlf_isNull(ds_send_search.getColumn(0, "outdd"))) {
  810. sysf_messageBox("이동일자가 입력되지 않았습니다.", "E999", "");
  811. grp_movinfo.ipt_outdd.setFocus();
  812. return;
  813. }
  814. // if (utlf_isNull(ds_send_search.getColumn(0, "out_storge_no"))) {
  815. // sysf_messageBox("입고될 저장소가 선택되지 않았습니다.", "E999", "");
  816. // cmb_out_storge_no.setFocus();
  817. // return;
  818. // }
  819. //
  820. // if (utlf_transNullToEmpty(ds_send_search.getColumn(0, "out_storge_no")) == utlf_transNullToEmpty(ds_send_search.getColumn(0, "storge_no"))) {
  821. // sysf_messageBox("입고될 저장소가 현저장소와 동일합니다. 입고될 저장소를 확인하십시요.", "E999", "");
  822. // cmb_out_storge_no.setFocus();
  823. // return;
  824. // }
  825. for(var i = 0; i < ds_movlist.rowcount; i++) {
  826. if (ds_movlist.getColumn(i, "chkfg") == "1") {
  827. //0을 null로 변경함
  828. if (ds_movlist.getColumn(i, "min_distb_qy") == "0") ds_movlist.setColumn(i, "min_distb_qy", "");
  829. if (ds_movlist.getColumn(i, "pce_qy") == "0") ds_movlist.setColumn(i, "pce_qy", "");
  830. if (utlf_isNull(ds_movlist.getColumn(i, "min_distb_qy")) && utlf_isNull(ds_movlist.getColumn(i, "pce_qy"))) {
  831. sysf_messageBox("수량이 입력되지 않았습니다. [행번호 " + (i + 1) + " 번]", "E999", "");
  832. ds_movlist.selectRow(i + 1);
  833. return;
  834. }
  835. ds_movlist.setColumn(i, "status", "c"); //작업구분(i, u, d, c) : c는 기재고차감
  836. ds_movlist.setColumn(i, "outdd", ds_send_search.getColumn(0, "outdd") );
  837. //ds_movlist.setColumn(i, "out_storge_no", ds_send_search.getColumn(0, "out_storge_no"));
  838. }
  839. }
  840. //기재고차감 내역 저장
  841. var oParam = {};
  842. oParam.id = "TXADT12142";
  843. oParam.service = "pharmacydrugsumapp.NarcManagent";
  844. oParam.method = "reqExeSaveDeductList";
  845. oParam.inds = "movlist=ds_movlist";
  846. oParam.outds = ""; //"ds_hidden_item=item";
  847. oParam.async = false;
  848. oParam.callback = "cf_TXADT12142";
  849. tranf_submit(oParam);
  850. if (arErrorCode.pop("TXADT12142") > -1){
  851. /*
  852. //해당 저장소이동내역의 이동일자, 저장소, 입고저장소로 조회를 실시한다.
  853. ds_send_search.setColumn(0, "indd_from", ds_movinfo.getColumn(0, "outdd") );
  854. ds_send_search.setColumn(0, "indd_to", ds_movinfo.getColumn(0, "outdd") );
  855. ds_send_search.setColumn(0, "storge_no", ds_movinfo.getColumn(0, "storge_no") );
  856. ds_send_search.setColumn(0, "out_storge_no", ds_movinfo.getColumn(0, "out_storge_no") );
  857. */
  858. //조회버튼 Click Event Call
  859. var e = new ClickEventInfo;
  860. grp_search.btn_search.onclick.fireEvent(grp_search.btn_search, e);
  861. //ds_pcmlist.selectRow(ds_pcmlist.rowcount-1);
  862. }
  863. //grp_movinfo.ipt_prd_sgtin.setFocus();
  864. }
  865. function cf_TXADT12142(sSvcId, nErrorCode, sErrorMsg) {
  866. arErrorCode.push(sSvcId, nErrorCode);
  867. }
  868. /****************************************************************************************
  869. * Components : Button
  870. * Components ID : btn_deduct2
  871. * Event : onclick
  872. * Argument : 01.obj : Object Event has occurred
  873. * : 02.e : Event Object
  874. * Description : 재고차감 버튼 Click시
  875. ****************************************************************************************/
  876. function btn_deduct2_onclick(obj:Button, e:ClickEventInfo)
  877. {
  878. if( sysf_messageBox("재고 차감 작업을 진행하시겠습니까? " , "Q99" ) != 6 ) {
  879. return;
  880. }
  881. if (utlf_isNull(ds_send_search.getColumn(0, "outdd"))) {
  882. sysf_messageBox("이동일자가 입력되지 않았습니다.", "E999", "");
  883. grp_movinfo.ipt_outdd.setFocus();
  884. return;
  885. }
  886. // if (utlf_isNull(ds_send_search.getColumn(0, "out_storge_no"))) {
  887. // sysf_messageBox("입고될 저장소가 선택되지 않았습니다.", "E999", "");
  888. // cmb_out_storge_no.setFocus();
  889. // return;
  890. // }
  891. //
  892. // if (utlf_transNullToEmpty(ds_send_search.getColumn(0, "out_storge_no")) == utlf_transNullToEmpty(ds_send_search.getColumn(0, "storge_no"))) {
  893. // sysf_messageBox("입고될 저장소가 현저장소와 동일합니다. 입고될 저장소를 확인하십시요.", "E999", "");
  894. // cmb_out_storge_no.setFocus();
  895. // return;
  896. // }
  897. for(var i = 0; i < ds_movlist.rowcount; i++) {
  898. if (ds_movlist.getColumn(i, "chkfg") == "1") {
  899. //0을 null로 변경함
  900. if (ds_movlist.getColumn(i, "min_distb_qy") == "0") ds_movlist.setColumn(i, "min_distb_qy", "");
  901. if (ds_movlist.getColumn(i, "pce_qy") == "0") ds_movlist.setColumn(i, "pce_qy", "");
  902. if (utlf_isNull(ds_movlist.getColumn(i, "min_distb_qy")) && utlf_isNull(ds_movlist.getColumn(i, "pce_qy"))) {
  903. sysf_messageBox("수량이 입력되지 않았습니다. [행번호 " + (i + 1) + " 번]", "E999", "");
  904. ds_movlist.selectRow(i + 1);
  905. return;
  906. }
  907. ds_movlist.setColumn(i, "status", "c"); //작업구분(i, u, d, c) : c는 재고차감
  908. ds_movlist.setColumn(i, "outdd", ds_send_search.getColumn(0, "outdd") );
  909. //ds_movlist.setColumn(i, "out_storge_no", ds_send_search.getColumn(0, "out_storge_no"));
  910. }
  911. }
  912. //재고차감 내역 저장
  913. var oParam = {};
  914. oParam.id = "TXADT12143";
  915. oParam.service = "pharmacydrugsumapp.NarcManagent";
  916. oParam.method = "reqExeSaveDeductList2";
  917. oParam.inds = "movlist=ds_movlist";
  918. oParam.outds = ""; //"ds_hidden_item=item";
  919. oParam.async = false;
  920. oParam.callback = "cf_TXADT12143";
  921. tranf_submit(oParam);
  922. if (arErrorCode.pop("TXADT12143") > -1){
  923. /*
  924. //해당 저장소이동내역의 이동일자, 저장소, 입고저장소로 조회를 실시한다.
  925. ds_send_search.setColumn(0, "indd_from", ds_movinfo.getColumn(0, "outdd") );
  926. ds_send_search.setColumn(0, "indd_to", ds_movinfo.getColumn(0, "outdd") );
  927. ds_send_search.setColumn(0, "storge_no", ds_movinfo.getColumn(0, "storge_no") );
  928. ds_send_search.setColumn(0, "out_storge_no", ds_movinfo.getColumn(0, "out_storge_no") );
  929. */
  930. //조회버튼 Click Event Call
  931. var e = new ClickEventInfo;
  932. grp_search.btn_search.onclick.fireEvent(grp_search.btn_search, e);
  933. //ds_pcmlist.selectRow(ds_pcmlist.rowcount-1);
  934. }
  935. //grp_movinfo.ipt_prd_sgtin.setFocus();
  936. }
  937. function cf_TXADT12143(sSvcId, nErrorCode, sErrorMsg) {
  938. arErrorCode.push(sSvcId, nErrorCode);
  939. }
  940. function btn_download_onclick(obj:Button, e:ClickEventInfo)
  941. {
  942. //조회된 자료가 없으면 먼저 조회하라고 message
  943. if(ds_movlist.rowcount < 1) {
  944. sysf_messageBox("조회된 결과가 존재하지 않습니다. \n\n먼저 조회 후 Download 하십시요. ", "E999", "");
  945. return;
  946. }
  947. grdf_exportExcel(grd_movlist, "excel", "savetype", false, "", "user", false);
  948. }
  949. ]]></Script>
  950. </Form>
  951. </FDL>