SMANB00800_식품재고관리.xfdl 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMANB00800" position="absolute 0 0 1200 790" titletext="식품재고관리" oninit="SMANB00800_oninit" onload="SMANB00800_onload">
  5. <Layouts>
  6. <Layout>
  7. <Div position="absolute 0 14 1195 758" id="group3" scrollbars="autoboth">
  8. <Layouts>
  9. <Layout>
  10. <Div position="absolute 0 10 1194 45" align="align:center top;" id="group2" class="div_SA">
  11. <Layouts>
  12. <Layout>
  13. <Button position="absolute 1122 7 1178 29" id="btn_search" class="btn1" text="조회" onclick="group3_group2_btn_search_onclick"/>
  14. <Shape position="absolute 1103 7 1109 29" linetype="vertical" id="line13"/>
  15. <Static text="재고일자 :" position="absolute 11 8 87 25" id="caption3" class="search_name"/>
  16. <Calendar position="absolute 90 7 178 26" id="ipt_reqfromdd" class="input_s_essential" autoselect="true"/>
  17. <Static text="구분 :" position="absolute 291 9 340 26" id="caption4" class="search_name"/>
  18. <Radio position="absolute 341 8 475 27" id="rdo_diet" class="radio_search" columncount="4" rowcount="1" codecolumn="codecolumn" datacolumn="datacolumn">
  19. <Dataset id="innerdataset">
  20. <ColumnInfo>
  21. <Column id="codecolumn"/>
  22. <Column id="datacolumn"/>
  23. </ColumnInfo>
  24. <Rows>
  25. <Row>
  26. <Col id="codecolumn">P</Col>
  27. <Col id="datacolumn">환자식</Col>
  28. </Row>
  29. <Row>
  30. <Col id="codecolumn">E</Col>
  31. <Col id="datacolumn">직원식</Col>
  32. </Row>
  33. </Rows>
  34. </Dataset>
  35. </Radio>
  36. <Button position="absolute 845 5 945 25" id="button1" visible="false" text="button1" onclick="group3_group2_button1_onclick"/>
  37. </Layout>
  38. </Layouts>
  39. </Div>
  40. <Shape position="absolute 0 70 1194 76" linetype="horizontal" id="line1" class="line_10"/>
  41. <Button position="absolute 1142 49 1193 68" id="btn_excel" class="btn7" text="엑셀" onclick="group3_btn_excel_onclick"/>
  42. </Layout>
  43. </Layouts>
  44. </Div>
  45. <Grid position="absolute 0 89 1194 754" align="align:center middle;" id="grd_data" binddataset="ds_main_foodlist_item" autoenter="key">
  46. <Formats>
  47. <Format id="default">
  48. <Columns>
  49. <Column size="20" band="left"/>
  50. <Column size="75"/>
  51. <Column size="140"/>
  52. <Column size="30"/>
  53. <Column size="75"/>
  54. <Column size="75"/>
  55. <Column size="75"/>
  56. <Column size="75"/>
  57. <Column size="75"/>
  58. <Column size="75"/>
  59. <Column size="65"/>
  60. <Column size="65"/>
  61. <Column size="65"/>
  62. <Column size="65"/>
  63. <Column size="75"/>
  64. <Column size="75"/>
  65. <Column size="75"/>
  66. <Column size="170"/>
  67. <Column size="0"/>
  68. <Column size="0"/>
  69. <Column size="0"/>
  70. <Column size="100"/>
  71. </Columns>
  72. <Rows>
  73. <Row size="24" band="head"/>
  74. <Row size="24" band="head"/>
  75. <Row size="24"/>
  76. </Rows>
  77. <Band id="head">
  78. <Cell rowspan="2" taborder="undefined"/>
  79. <Cell col="1" rowspan="2" text="식품코드" taborder="undefined"/>
  80. <Cell col="2" rowspan="2" text="식품명" taborder="undefined"/>
  81. <Cell col="3" rowspan="2" text="단위" taborder="undefined"/>
  82. <Cell col="4" colspan="2" text="전일재고" taborder="undefined"/>
  83. <Cell col="6" colspan="2" text="입고량" taborder="undefined"/>
  84. <Cell col="8" colspan="2" text="출고량" taborder="undefined"/>
  85. <Cell col="10" colspan="3" text="출고단가계산" taborder="undefined"/>
  86. <Cell col="13" rowspan="2" text="전월단가" taborder="undefined"/>
  87. <Cell col="14" colspan="2" text="현재고량" taborder="undefined"/>
  88. <Cell col="16" rowspan="2" text="당월출고량" taborder="undefined"/>
  89. <Cell col="17" rowspan="2" text="비고" taborder="undefined"/>
  90. <Cell col="18" text="마감"/>
  91. <Cell col="19" text="입출고일자"/>
  92. <Cell col="20" text="환자직원식"/>
  93. <Cell col="21" rowspan="2" text="선택" taborder="undefined"/>
  94. <Cell row="1" col="4" text="총재고"/>
  95. <Cell row="1" col="5" text="총금액"/>
  96. <Cell row="1" col="6" text="입고"/>
  97. <Cell row="1" col="7" text="입고단가"/>
  98. <Cell row="1" col="8" text="출고"/>
  99. <Cell row="1" col="9" text="출고단가"/>
  100. <Cell row="1" col="10" text="전월재고량"/>
  101. <Cell row="1" col="11" text="당월처리량"/>
  102. <Cell row="1" col="12" text="전월처리량"/>
  103. <Cell row="1" col="14" text="현재고"/>
  104. <Cell row="1" col="15" text="현재고금액"/>
  105. <Cell row="1" col="18" text="마감"/>
  106. <Cell row="1" col="19" text="입출고일자"/>
  107. <Cell row="1" col="20" text="환자직원식"/>
  108. </Band>
  109. <Band id="body">
  110. <Cell celltype="head"/>
  111. <Cell col="1" text="bind:goodcd"/>
  112. <Cell col="2" style="align:left;" text="bind:goodnm"/>
  113. <Cell col="3" style="align:right;" text="bind:purcunit"/>
  114. <Cell col="4" displaytype="number" style="align:right;" text="bind:junil" mask="##0.0"/>
  115. <Cell col="5" displaytype="number" style="align:right;" text="bind:junilamt" mask="##0.0"/>
  116. <Cell col="6" displaytype="number" style="align:right;" text="bind:receive" mask="##0.0"/>
  117. <Cell col="7" displaytype="number" style="align:right;" text="bind:reunitcost" mask="#,##0"/>
  118. <Cell col="8" displaytype="number" edittype="masknumber" style="align:right;" text="bind:outgo" mask="##0.0"/>
  119. <Cell col="9" displaytype="number" style="align:right;" text="bind:outunitcost" mask="#,##0"/>
  120. <Cell col="10" displaytype="number" style="align:right;" text="bind:agomonqty" mask="##0.0"/>
  121. <Cell col="11" displaytype="number" style="align:right;" text="bind:hyunqty" mask="##0.0"/>
  122. <Cell col="12" displaytype="number" style="align:right;" text="bind:agoqty" mask="##0.0"/>
  123. <Cell col="13" displaytype="number" text="bind:agounitcost" mask="##0.0"/>
  124. <Cell col="14" displaytype="number" style="align:right;" text="bind:hyunjae" mask="##0.0"/>
  125. <Cell col="15" displaytype="number" style="align:right;" text="bind:hyunjaeamt" mask="##0.0"/>
  126. <Cell col="16" displaytype="number" style="align:right;" text="bind:outgomon" mask="##0.0"/>
  127. <Cell col="17" displaytype="text" edittype="text" text="bind:rem"/>
  128. <Cell col="18" text="bind:stockflag"/>
  129. <Cell col="19" text="bind:iodd"/>
  130. <Cell col="20" text="bind:pat_emp"/>
  131. <Cell col="21" style="align:center top;padding:4 2 2 2;" text="bind:goodspec" wordwrap="word"/>
  132. </Band>
  133. </Format>
  134. </Formats>
  135. </Grid>
  136. <Div position="absolute 0 758 1195 785" id="group4" scrollbars="autoboth">
  137. <Layouts>
  138. <Layout>
  139. <Button position="absolute 1077 3 1133 25" id="btn_save" class="btn4" text="저장" onclick="group4_btn_save_onclick" anchor="default"/>
  140. <Button position="absolute 939 3 995 25" id="btn_magam" class="btn4" text="마감" onclick="group4_btn_magam_onclick" anchor="default"/>
  141. <Button position="absolute 996 3 1076 25" id="btn_magamcncl" class="btn4" text="마감취소" onclick="group4_btn_magamcncl_onclick" anchor="default"/>
  142. <Button position="absolute 1134 3 1190 25" id="btn_del" class="btn4" text="삭제" onclick="group4_btn_del_onclick" anchor="default"/>
  143. <Button position="absolute 0 3 56 25" id="button3" class="btn3" text="재고" onclick="group4_button3_onclick" anchor="default"/>
  144. <Button position="absolute 57 3 125 25" id="button2" class="btn3" text="입·출고" onclick="group4_button2_onclick" anchor="default"/>
  145. <Button id="btn_rice" taborder="2" text="일괄적용" class="btn2" position="absolute 867 3 929 22" onclick="group4_btn_rice_onclick"/>
  146. <MaskEdit id="ipt_ricecd" taborder="3" type="number" mask="#,##0.0" autoselect="true" position="absolute 770 3 862 22" style="align:left middle; :disabled {align:center middle;}"/>
  147. </Layout>
  148. </Layouts>
  149. </Div>
  150. <Static id="caption1" text="식품재고관리" onclick="group1_caption1_onclick" class="tit_1" position="absolute 0 0 114 24"/>
  151. </Layout>
  152. </Layouts>
  153. <Objects>
  154. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  155. <ColumnInfo>
  156. <Column id="iodd" type="STRING" size="256" sumtext="재고일자"/>
  157. <Column id="pat_emp" type="STRING" size="256" sumtext="구분"/>
  158. <Column id="goodcd" type="STRING" size="256" sumtext="제품코드"/>
  159. <Column id="receive" type="STRING" size="256" sumtext="입고"/>
  160. <Column id="reunitcost" type="STRING" size="256" sumtext="입고단가"/>
  161. <Column id="reamt" type="STRING" size="256" sumtext="입고금액"/>
  162. <Column id="outgo" type="STRING" size="256" sumtext="출고"/>
  163. <Column id="outunitcost" type="STRING" size="256" sumtext="출고단가"/>
  164. <Column id="rem" type="STRING" size="256" sumtext="비고"/>
  165. <Column id="magamflag" type="STRING" size="256" sumtext="마감여부"/>
  166. <Column id="stockflag" type="STRING" size="256" sumtext="마감여부"/>
  167. <Column id="cnclflag" type="STRING" size="256" sumtext="마감취소여부"/>
  168. <Column id="ricecd" type="STRING" size="256"/>
  169. </ColumnInfo>
  170. <Rows>
  171. <Row/>
  172. </Rows>
  173. </Dataset>
  174. <Dataset id="ds_main_foodlist_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  175. <ColumnInfo>
  176. <Column id="goodcd" type="STRING" size="256" sumtext="식품코드"/>
  177. <Column id="goodnm" type="STRING" size="256" sumtext="식품명"/>
  178. <Column id="purcunit" type="STRING" size="256" sumtext="단위"/>
  179. <Column id="junil" type="BIGDECIMAL" size="256" sumtext="전일총재고"/>
  180. <Column id="junilamt" type="BIGDECIMAL" size="256" sumtext="전일총금액"/>
  181. <Column id="receive" type="BIGDECIMAL" size="256" sumtext="입고량"/>
  182. <Column id="reunitcost" type="BIGDECIMAL" size="256" sumtext="입고단가"/>
  183. <Column id="outgo" type="BIGDECIMAL" size="256" sumtext="출고량"/>
  184. <Column id="outunitcost" type="BIGDECIMAL" size="256" sumtext="출고단가"/>
  185. <Column id="agomonqty" type="BIGDECIMAL" size="256" sumtext="이월량"/>
  186. <Column id="hyunqty" type="BIGDECIMAL" size="256" sumtext="당월처리량"/>
  187. <Column id="agoqty" type="BIGDECIMAL" size="256" sumtext="전월처리량"/>
  188. <Column id="agounitcost" type="BIGDECIMAL" size="256" sumtext="전월단가"/>
  189. <Column id="hyunjae" type="BIGDECIMAL" size="256" sumtext="현재고"/>
  190. <Column id="hyunjaeamt" type="BIGDECIMAL" size="256" sumtext="현재고금액"/>
  191. <Column id="outgomon" type="BIGDECIMAL" size="256" sumtext="당월출고량"/>
  192. <Column id="rem" type="STRING" size="256" sumtext="비고"/>
  193. <Column id="stockflag" type="STRING" size="256" sumtext="flag"/>
  194. <Column id="iodd" type="STRING" size="256" sumtext="입출고일자"/>
  195. <Column id="pat_emp" type="STRING" size="256" sumtext="환자식직원식"/>
  196. <Column id="magamflag" type="STRING" size="256" sumtext="마감여부"/>
  197. <Column id="goodspec" type="STRING" size="256" sumtext="규격"/>
  198. </ColumnInfo>
  199. </Dataset>
  200. <Dataset id="ds_hidden_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  201. <ColumnInfo>
  202. <Column id="count" type="STRING" size="256" sumtext="success count"/>
  203. </ColumnInfo>
  204. </Dataset>
  205. <Dataset id="ds_send_req" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  206. <ColumnInfo>
  207. <Column id="m" type="STRING" size="256" sumtext="실행구분"/>
  208. <Column id="iodd" type="STRING" size="256" sumtext="입출고일자"/>
  209. <Column id="pat_emp" type="STRING" size="256" sumtext="환자식직원식"/>
  210. <Column id="goodcd" type="STRING" size="256" sumtext="제품코드"/>
  211. <Column id="receive" type="STRING" size="256" sumtext="입고"/>
  212. <Column id="reunitcost" type="STRING" size="256" sumtext="입고단가"/>
  213. <Column id="reamt" type="STRING" size="256" sumtext="입고금액"/>
  214. <Column id="outgo" type="STRING" size="256" sumtext="출고"/>
  215. <Column id="outunitcost" type="STRING" size="256" sumtext="출고단가"/>
  216. <Column id="rem" type="STRING" size="256" sumtext="비고"/>
  217. <Column id="magamflag" type="STRING" size="256" sumtext="마감여부"/>
  218. <Column id="stockflag" type="STRING" size="256" sumtext="마감여부"/>
  219. <Column id="hyunqty" type="STRING" size="256" sumtext="당월처리량"/>
  220. <Column id="agoqty" type="STRING" size="256" sumtext="전월처리량"/>
  221. <Column id="agounitcost" type="STRING" size="256" sumtext="전월단가"/>
  222. </ColumnInfo>
  223. </Dataset>
  224. <Dataset id="ds_rexprnt_foodlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  225. <ColumnInfo>
  226. <Column id="iodd" type="STRING" size="256"/>
  227. <Column id="patemp" type="STRING" size="256"/>
  228. </ColumnInfo>
  229. <Rows>
  230. <Row/>
  231. </Rows>
  232. </Dataset>
  233. <Dataset id="ds_rexprnt_foodlist_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  234. <ColumnInfo>
  235. <Column id="goodcd" type="STRING" size="256" sumtext="식품코드"/>
  236. <Column id="goodnm" type="STRING" size="256" sumtext="식품명"/>
  237. <Column id="purcunit" type="STRING" size="256" sumtext="단위"/>
  238. <Column id="junil" type="BIGDECIMAL" size="256" sumtext="전일총재고"/>
  239. <Column id="junilamt" type="BIGDECIMAL" size="256" sumtext="전일총금액"/>
  240. <Column id="receive" type="BIGDECIMAL" size="256" sumtext="입고량"/>
  241. <Column id="reunitcost" type="BIGDECIMAL" size="256" sumtext="입고단가"/>
  242. <Column id="outgo" type="BIGDECIMAL" size="256" sumtext="출고량"/>
  243. <Column id="outunitcost" type="BIGDECIMAL" size="256" sumtext="출고단가"/>
  244. <Column id="agomonqty" type="BIGDECIMAL" size="256" sumtext="이월량"/>
  245. <Column id="hyunqty" type="BIGDECIMAL" size="256" sumtext="당월처리량"/>
  246. <Column id="agoqty" type="BIGDECIMAL" size="256" sumtext="전월처리량"/>
  247. <Column id="agounitcost" type="BIGDECIMAL" size="256" sumtext="전월단가"/>
  248. <Column id="hyunjae" type="BIGDECIMAL" size="256" sumtext="현재고"/>
  249. <Column id="hyunjaeamt" type="BIGDECIMAL" size="256" sumtext="현재고금액"/>
  250. <Column id="outgomon" type="BIGDECIMAL" size="256" sumtext="당월출고량"/>
  251. <Column id="rem" type="STRING" size="256" sumtext="비고"/>
  252. <Column id="stockflag" type="STRING" size="256" sumtext="flag"/>
  253. <Column id="iodd" type="STRING" size="256" sumtext="입출고일자"/>
  254. <Column id="pat_emp" type="STRING" size="256" sumtext="환자식직원식"/>
  255. <Column id="magamflag" type="STRING" size="256" sumtext="마감여부"/>
  256. <Column id="goodspec" type="STRING" size="256" sumtext="규격"/>
  257. <Column id="styleflag" type="STRING" size="256"/>
  258. </ColumnInfo>
  259. </Dataset>
  260. <Dataset id="ds_send2" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  261. <ColumnInfo>
  262. <Column id="iodd" type="STRING" size="256" sumtext="재고일자"/>
  263. <Column id="pat_emp" type="STRING" size="256" sumtext="구분"/>
  264. <Column id="goodcd" type="STRING" size="256" sumtext="제품코드"/>
  265. <Column id="receive" type="STRING" size="256" sumtext="입고"/>
  266. <Column id="reunitcost" type="STRING" size="256" sumtext="입고단가"/>
  267. <Column id="reamt" type="STRING" size="256" sumtext="입고금액"/>
  268. <Column id="outgo" type="STRING" size="256" sumtext="출고"/>
  269. <Column id="outunitcost" type="STRING" size="256" sumtext="출고단가"/>
  270. <Column id="rem" type="STRING" size="256" sumtext="비고"/>
  271. <Column id="magamflag" type="STRING" size="256" sumtext="마감여부"/>
  272. <Column id="stockflag" type="STRING" size="256" sumtext="마감여부"/>
  273. <Column id="cnclflag" type="STRING" size="256" sumtext="마감취소여부"/>
  274. <Column id="ricecd" type="STRING" size="256"/>
  275. </ColumnInfo>
  276. <Rows>
  277. <Row/>
  278. </Rows>
  279. </Dataset>
  280. </Objects>
  281. <Bind>
  282. <BindItem id="item0" compid="group3.group2.ipt_reqfromdd" propid="value" datasetid="ds_send" columnid="iodd"/>
  283. <BindItem id="item1" compid="group3.group2.rdo_diet" propid="value" datasetid="ds_send" columnid="pat_emp"/>
  284. <BindItem id="item20" compid="group4.ipt_ricecd" propid="value" datasetid="ds_send" columnid="ricecd"/>
  285. </Bind>
  286. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  287. * System Name : 경대 의료정보시스템
  288. * Job Name : ast_dietxp -> SMANB00800
  289. * Creator : yjh
  290. * Make Date : 2017-10-26
  291. * Description :
  292. *---------------------------------------------------------------------------------------
  293. * Modify Date Modifier Modify Description
  294. *---------------------------------------------------------------------------------------
  295. * 2017-10-26 yjh TF->XP
  296. *
  297. *---------------------------------------------------------------------------------------
  298. ****************************************************************************************/
  299. //=======================================================================================
  300. // Lib Include
  301. //---------------------------------------------------------------------------------------
  302. include "com_commonxp::comm_main.xjs";
  303. //=======================================================================================
  304. // Global Form Variable
  305. //---------------------------------------------------------------------------------------
  306. var arErrorCode = new HashArray();
  307. //=======================================================================================
  308. // Function
  309. //---------------------------------------------------------------------------------------
  310. function finit() {
  311. var instcd = sysf_getUserInfo("dutplceinstcd");
  312. // 화면open시 공통코드 setting
  313. //zbcfGetCodeList( new Array( "A0055", "A0433" ), new Array( "/root/init/basecode/meal", "/root/init/basecode/aprvrslt" ) );
  314. //zbcfGetDeptCodeList( instcd, 'orduseyn', 'W', '/root/init/basecode/ward');
  315. //zsdfGetWardDeptList(instcd, '/root/init/basecode/ward', 'depthngnm', 'asc', new Date().getDateFormat("YYYYMMDD"), 'after');
  316. ds_send.setColumn(0, "iodd", utlf_getCurrentDate());
  317. //model.removeNodeset("/root/main/data");
  318. var userid = sysf_getUserInfo("userid");
  319. if(userid != "AST"){
  320. grd_data.setFormatColProperty(10, "size", 0);
  321. grd_data.setFormatColProperty(11, "size", 0);
  322. grd_data.setFormatColProperty(12, "size", 0);
  323. group3.group2.button1.visible = false;
  324. }
  325. }
  326. //전월 단가가 다르게 되면 전월재고량 부터 처리후 현재월 단가로 처리한다.
  327. function frealqtycalc() {
  328. var agomonqty = 0; //이월된재고량
  329. var hyunqty = 0; //
  330. var agoqty = 0; //
  331. var agounitcost = 0; //전월단가
  332. var outgo = 0; //출고량
  333. var outgomon = 0; //당월 출고량
  334. var realqty = 0; //이월된 재고량이 남은량
  335. ds_main_foodlist_item.enableevent = false;
  336. ds_main_foodlist_item.updatecontrol = false;
  337. for(var i = 0 ; i < ds_main_foodlist_item.rowcount ; i++ ){
  338. agomonqty = ds_main_foodlist_item.getColumn(i, "agomonqty");
  339. outgo = ds_main_foodlist_item.getColumn(i, "outgo");
  340. outgomon = ds_main_foodlist_item.getColumn(i, "outgomon");
  341. //var goodnm = model.getValue("/root/main/foodlist/item[" + i + "]/goodnm");
  342. //alert(goodnm + "=>"+outgo);
  343. //현재시점 전월재고
  344. realqty = agomonqty - outgomon;
  345. //현재시점 전월재고가 남아 있다면
  346. if(realqty > 0 ){
  347. //전월재고 보다 출고량이 작다면
  348. if(realqty > outgo){
  349. ds_main_foodlist_item.setColumn(i, "agoqty",outgo);
  350. ds_main_foodlist_item.setColumn(i, "hyunqty",0);
  351. }else {
  352. ds_main_foodlist_item.setColumn(i, "agoqty",realqty);
  353. ds_main_foodlist_item.setColumn(i, "hyunqty",outgo - realqty);
  354. }
  355. }else{
  356. ds_main_foodlist_item.setColumn(i, "agoqty",0);
  357. ds_main_foodlist_item.setColumn(i, "hyunqty",outgo);
  358. }
  359. }
  360. ds_main_foodlist_item.updatecontrol = true;
  361. ds_main_foodlist_item.enableevent = true;
  362. }
  363. //=======================================================================================
  364. // Event
  365. //---------------------------------------------------------------------------------------
  366. /****************************************************************************************
  367. * Components : Form
  368. * Components ID : SMANB00800
  369. * Event : oninit
  370. * Argument : 01.obj : Object Event has occurred
  371. * : 02.e : Event Object
  372. * Description : 화면 처음 초기화시
  373. ****************************************************************************************/
  374. function SMANB00800_oninit(obj:Form, e:InitEventInfo)
  375. {
  376. frmf_initForm(obj); //폼 초기화
  377. }
  378. /****************************************************************************************
  379. * Components : Form
  380. * Components ID : SMANB00800
  381. * Event : onload
  382. * Argument : 01.obj : Object Event has occurred
  383. * : 02.e : Event Object
  384. * Description : 화면 로딩 완료시
  385. ****************************************************************************************/
  386. function SMANB00800_onload(obj:Form, e:LoadEventInfo)
  387. {
  388. grdf_setRowTypeIcon(grd_data, 0);
  389. ds_send.setColumn(0, "pat_emp", "P");
  390. ds_send.setColumn(0, "stockflag", "S");
  391. finit();
  392. var auth_id = sysf_getUserInfo("userid");
  393. if ( auth_id == "99262" || auth_id == "99207" ) {
  394. group4.btn_magam.visible = true; //마감버튼 보이도록
  395. group4.btn_magamcncl.visible = true; //마감취소버튼 보이도록
  396. }else {
  397. group4.btn_magam.visible = false; //마감버튼 안보이도록
  398. group4.btn_magamcncl.visible = false; //마감취소버튼 안보이도록
  399. }
  400. }
  401. /****************************************************************************************
  402. * Components : Static
  403. * Components ID : caption1
  404. * Event : onclick
  405. * Argument : 01.obj : Object Event has occurred
  406. * : 02.e : Event Object
  407. * Description : Static 클릭시
  408. ****************************************************************************************/
  409. function group1_caption1_onclick(obj:Static, e:ClickEventInfo)
  410. {
  411. frealqtycalc();
  412. }
  413. /****************************************************************************************
  414. * Components : Button
  415. * Components ID : btn_search
  416. * Event : onclick
  417. * Argument : 01.obj : Object Event has occurred
  418. * : 02.e : Event Object
  419. * Description : 조회버튼 클릭시
  420. ****************************************************************************************/
  421. function group3_group2_btn_search_onclick(obj:Button, e:ClickEventInfo)
  422. {
  423. ds_send2.setColumn(0, "iodd", ds_send.getColumn(0, "iodd"));
  424. ds_send2.setColumn(0, "pat_emp", ds_send.getColumn(0, "pat_emp"));
  425. var oParam = {};
  426. oParam.id = "TRANB00800";
  427. oParam.service = "dietsumapp.DietSum";
  428. oParam.method = "reqGetStockFoodLst";
  429. oParam.inds = "req=ds_send2";
  430. oParam.outds = "ds_main_foodlist_item=item";
  431. oParam.async = false;
  432. oParam.callback = "cf_TRANB00800";
  433. tranf_submit(oParam);
  434. if (arErrorCode.pop("TRANB00800") > -1) {
  435. if(ds_main_foodlist_item.getColumn(0, "stockflag") == "I" ){
  436. ds_main_foodlist_item.enableevent = false;
  437. ds_main_foodlist_item.updatecontrol = false;
  438. for(var i = 0 ; i < ds_main_foodlist_item.rowcount ; i++ ){
  439. ds_main_foodlist_item.setRowType(i, 2);
  440. }
  441. ds_main_foodlist_item.updatecontrol = true;
  442. ds_main_foodlist_item.enableevent = true;
  443. }
  444. // 2011.04.22 식품재고 조회시 마감여부 파악해서 버튼 활성화해주기. - cyw
  445. if(ds_main_foodlist_item.getColumn(0, "magamflag") == "Y" ){
  446. group4.btn_magamcncl.enable = true;
  447. group4.btn_magam.enable = false;
  448. }else if(ds_main_foodlist_item.getColumn(0, "magamflag") == "N" ){
  449. group4.btn_magamcncl.enable = false;
  450. group4.btn_magam.enable = true;
  451. }else{
  452. group4.btn_magamcncl.enable = false;
  453. group4.btn_magam.enable = false;
  454. }
  455. ds_send.setColumn(0, "ricecd","");
  456. }
  457. }
  458. function cf_TRANB00800(sSvcId, nErrorCode, sErrorMsg) {
  459. arErrorCode.push(sSvcId, nErrorCode);
  460. }
  461. /****************************************************************************************
  462. * Components : Button
  463. * Components ID : button1
  464. * Event : onclick
  465. * Argument : 01.obj : Object Event has occurred
  466. * : 02.e : Event Object
  467. * Description : 버튼 클릭시
  468. ****************************************************************************************/
  469. function group3_group2_button1_onclick(obj:Button, e:ClickEventInfo)
  470. {
  471. frealqtycalc();
  472. }
  473. /****************************************************************************************
  474. * Components : Button
  475. * Components ID : btn_excel
  476. * Event : onclick
  477. * Argument : 01.obj : Object Event has occurred
  478. * : 02.e : Event Object
  479. * Description : 엑셀버튼 클릭시
  480. ****************************************************************************************/
  481. function group3_btn_excel_onclick(obj:Button, e:ClickEventInfo)
  482. {
  483. grdf_exportExcel(grd_data, "식품재고관리", "grd_data", false, "", "user", false);
  484. }
  485. /****************************************************************************************
  486. * Components : Button
  487. * Components ID : btn_save
  488. * Event : onclick
  489. * Argument : 01.obj : Object Event has occurred
  490. * : 02.e : Event Object
  491. * Description : 저장버튼 클릭시
  492. ****************************************************************************************/
  493. function group4_btn_save_onclick(obj:Button, e:ClickEventInfo)
  494. {
  495. if(ds_main_foodlist_item.getColumn(0, "magamflag") == "S" ){
  496. sysf_messageBox("마감데이터는 수정할수 없습니다.", "I");
  497. }else{
  498. if ( sysf_messageBox("식품재고정보를", "Q002") == 6 ) {
  499. //재계산
  500. frealqtycalc();
  501. ds_main_foodlist_item.enableevent = false;
  502. ds_main_foodlist_item.updatecontrol = false;
  503. grdf_setStatusColumn(ds_main_foodlist_item, "m");
  504. ds_main_foodlist_item.updatecontrol = true;
  505. ds_main_foodlist_item.enableevent = true;
  506. ds_send_req.assign(grdf_getGridUpdateData(grd_data, "all"));
  507. if (ds_send_req.rowcount < 1 ) {
  508. sysf_messageBox("업데이트 정보가 없습니다.", "I");
  509. }
  510. else {
  511. ds_send.setColumn(0, "cnclflag", "S");
  512. ds_send_req.enableevent = false;
  513. ds_send_req.updatecontrol = false;
  514. ds_send_req.deleteColumn("magamflag");
  515. ds_send_req.updatecontrol = true;
  516. ds_send_req.enableevent = true;
  517. var oParam = {};
  518. oParam.id = "TXANB00801";
  519. oParam.service = "dietsumapp.DietSum";
  520. oParam.method = "reqExecStockFoodLst";
  521. oParam.inds = "req=ds_send_req:A";
  522. oParam.outds = "ds_hidden_item=count";
  523. oParam.async = false;
  524. //oParam.callback = "cf_TXANB00801";
  525. tranf_submit(oParam);
  526. group3.group2.btn_search.click();
  527. }
  528. }
  529. }
  530. }
  531. /****************************************************************************************
  532. * Components : Button
  533. * Components ID : btn_magam
  534. * Event : onclick
  535. * Argument : 01.obj : Object Event has occurred
  536. * : 02.e : Event Object
  537. * Description : 마감버튼 클릭시
  538. ****************************************************************************************/
  539. function group4_btn_magam_onclick(obj:Button, e:ClickEventInfo)
  540. {
  541. if(ds_main_foodlist_item.getColumn(0, "stockflag") == "S" ){
  542. if ( sysf_messageBox("마감을", "Q002") == 6 ) {
  543. ds_send.setColumn(0, "cnclflag", "N");
  544. ds_send.setColumn(0, "stockflag", "S");
  545. var oParam = {};
  546. oParam.id = "TXANB00802";
  547. oParam.service = "dietsumapp.DietSum";
  548. oParam.method = "reqExecStockMagamLst";
  549. oParam.inds = "req=ds_send";
  550. oParam.outds = "ds_hidden_item=count";
  551. oParam.async = false;
  552. oParam.callback = "cf_TXANB00802";
  553. tranf_submit(oParam);
  554. if(arErrorCode.pop("TXANB00802") > -1){
  555. group3.group2.btn_search.click();
  556. }
  557. }
  558. }else{
  559. sysf_messageBox("출고되지 않은 데이터는 마감할수 없습니다.", "I");
  560. }
  561. }
  562. function cf_TXANB00802(sSvcId, nErrorCode, sErrorMsg) {
  563. arErrorCode.push(sSvcId, nErrorCode);
  564. }
  565. /****************************************************************************************
  566. * Components : Button
  567. * Components ID : btn_magamcncl
  568. * Event : onclick
  569. * Argument : 01.obj : Object Event has occurred
  570. * : 02.e : Event Object
  571. * Description : 마감취소버튼 클릭시
  572. ****************************************************************************************/
  573. function group4_btn_magamcncl_onclick(obj:Button, e:ClickEventInfo)
  574. {
  575. // 2011.04.18 cyw 마감취소기능 추가.
  576. if(ds_main_foodlist_item.getColumn(0, "stockflag") == "S" ){
  577. if ( sysf_messageBox("마감취소를", "Q002") == 6 ) {
  578. ds_send.setColumn(0, "cnclflag", "Y");
  579. ds_send.setColumn(0, "stockflag", "S");
  580. var oParam = {};
  581. oParam.id = "TXANB00802";
  582. oParam.service = "dietsumapp.DietSum";
  583. oParam.method = "reqExecStockMagamLst";
  584. oParam.inds = "req=ds_send";
  585. oParam.outds = "ds_hidden_item=count";
  586. oParam.async = false;
  587. oParam.callback = "cf_TXANB00802";
  588. tranf_submit(oParam);
  589. if(arErrorCode.pop("TXANB00802") > -1){
  590. group3.group2.btn_search.click();
  591. }
  592. }
  593. }else{
  594. sysf_messageBox("출고되지 않은 데이터는 마감할수 없습니다.", "I");
  595. }
  596. }
  597. /****************************************************************************************
  598. * Components : Button
  599. * Components ID : btn_del
  600. * Event : onclick
  601. * Argument : 01.obj : Object Event has occurred
  602. * : 02.e : Event Object
  603. * Description : 삭제버튼 클릭시
  604. ****************************************************************************************/
  605. function group4_btn_del_onclick(obj:Button, e:ClickEventInfo)
  606. {
  607. if(ds_main_foodlist_item.getColumn(0, "magamflag") == "Y" ){
  608. sysf_messageBox("마감취소 후에 삭제 가능합니다.", "I");
  609. }else{
  610. var siodd = ds_main_foodlist_item.getColumn(0, "iodd");
  611. var spat_emp = ds_main_foodlist_item.getColumn(0, "pat_emp");
  612. ds_send.setColumn(0, "iodd", siodd );
  613. ds_send.setColumn(0, "pat_emp", spat_emp);
  614. if (utlf_isNull(siodd) || utlf_isNull(spat_emp)){
  615. sysf_messageBox("삭제할 리스트를 다시 조회하세요.","I");
  616. return;
  617. }
  618. var fData = false;
  619. ds_main_foodlist_item.enableevent = false;
  620. ds_main_foodlist_item.updatecontrol = false;
  621. for(var i = 0 ; i < ds_main_foodlist_item.rowcount ; i++ ){
  622. fData = true;
  623. ds_main_foodlist_item.setRowType(i, 8);
  624. }
  625. grdf_setStatusColumn(ds_main_foodlist_item, "m");
  626. ds_main_foodlist_item.updatecontrol = true;
  627. ds_main_foodlist_item.enableevent = true;
  628. ds_send_req.assign(grdf_getGridUpdateData(grd_data, "all"));
  629. if (fData == false ) {
  630. sysf_messageBox("업데이트 정보가 없습니다.", "I");
  631. }
  632. else {
  633. ds_send.setColumn(0, "cnclflag", "S");
  634. var oParam = {};
  635. oParam.id = "TXANB00801";
  636. oParam.service = "dietsumapp.DietSum";
  637. oParam.method = "reqExecStockFoodLst";
  638. oParam.inds = "req=ds_send_req:A";
  639. oParam.outds = "ds_hidden_item=count";
  640. oParam.async = false;
  641. //oParam.callback = "cf_TXANB00801";
  642. tranf_submit(oParam);
  643. sysf_messageBox(siodd +"일 재고 삭제가", "I001")
  644. group3.group2.btn_search.click();
  645. }
  646. }
  647. }
  648. /****************************************************************************************
  649. * Components : Button
  650. * Components ID : button3
  651. * Event : onclick
  652. * Argument : 01.obj : Object Event has occurred
  653. * : 02.e : Event Object
  654. * Description : 재고버튼 클릭시
  655. ****************************************************************************************/
  656. function group4_button3_onclick(obj:Button, e:ClickEventInfo)
  657. {
  658. // 2011.09.14_By 김금련 재고목록 출력기능 추가.
  659. ds_rexprnt_foodlist.setColumn(0, "iodd", group3.group2.ipt_reqfromdd.text );
  660. ds_rexprnt_foodlist.setColumn(0, "patemp", group3.group2.rdo_diet.text );
  661. ds_rexprnt_foodlist_item.clearData();
  662. var cnt = ds_main_foodlist_item.rowcount;
  663. for( var i = 0; i < cnt ; i++ ){
  664. ds_rexprnt_foodlist_item.addRow();
  665. ds_rexprnt_foodlist_item.copyRow(i, ds_main_foodlist_item, i);
  666. if( i % 3 == 0 ){
  667. ds_rexprnt_foodlist_item.setColumn(i, "styleflag", "Y");
  668. }else{
  669. ds_rexprnt_foodlist_item.setColumn(i, "styleflag", "N");
  670. }
  671. }
  672. var objDOM = rptf_createDOM(); // DOM 객체 설정
  673. rptf_setNodeListToDOM(objDOM, "/root/rexprnt/foodlist/item", ds_rexprnt_foodlist_item); // 데이터셋 1
  674. var objParam = new Object();
  675. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  676. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  677. rptf_exeReportPreview30(["RPANB00801"],[objParam], option);
  678. }
  679. /****************************************************************************************
  680. * Components : Button
  681. * Components ID : button2
  682. * Event : onclick
  683. * Argument : 01.obj : Object Event has occurred
  684. * : 02.e : Event Object
  685. * Description : 입출고버튼 클릭시
  686. ****************************************************************************************/
  687. function group4_button2_onclick(obj:Button, e:ClickEventInfo)
  688. {
  689. // 2011.04.18 cyw 출력기능 추가.
  690. ds_rexprnt_foodlist.setColumn(0, "iodd", group3.group2.ipt_reqfromdd.text );
  691. ds_rexprnt_foodlist.setColumn(0, "patemp", group3.group2.rdo_diet.text );
  692. ds_rexprnt_foodlist_item.clearData();
  693. var cnt = ds_main_foodlist_item.rowcount;
  694. for( var i = 0; i < cnt ; i++ ){
  695. ds_rexprnt_foodlist_item.addRow();
  696. ds_rexprnt_foodlist_item.copyRow(i, ds_main_foodlist_item, i);
  697. if( i % 3 == 2 ){
  698. ds_rexprnt_foodlist_item.setColumn(i, "styleflag", "Y");
  699. }else{
  700. ds_rexprnt_foodlist_item.setColumn(i, "styleflag", "N");
  701. }
  702. }
  703. var objDOM = rptf_createDOM(); // DOM 객체 설정
  704. rptf_setNodeListToDOM(objDOM, "/root/rexprnt/foodlist", ds_rexprnt_foodlist); // 데이터셋 1
  705. rptf_setNodeListToDOM(objDOM, "/root/rexprnt/foodlist/item", ds_rexprnt_foodlist_item); // 데이터셋 1
  706. var objParam = new Object();
  707. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  708. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  709. rptf_exeReportPreview30(["RPANB00802"],[objParam], option);
  710. }
  711. /****************************************************************************************
  712. * Components : Button
  713. * Components ID : btn_rice
  714. * Event : onclick
  715. * Argument : 01.obj : Object Event has occurred
  716. * : 02.e : Event Object
  717. * Description : 일괄적용버튼 클릭시
  718. ****************************************************************************************/
  719. function group4_btn_rice_onclick(obj:Button, e:ClickEventInfo)
  720. {
  721. var ricecd = ds_send.getColumn(0, "ricecd");
  722. if(!utlf_isNull(ricecd)){
  723. var btnchk = sysf_messageBox("변경된 백미단가를 일괄", "Q009", "");
  724. if(btnchk == "6"){
  725. if(ds_main_foodlist_item.getColumn(0, "magamflag") == "S" ){
  726. sysf_messageBox("마감데이터는 수정할수 없습니다.", "I");
  727. }else{
  728. var oParam = {};
  729. oParam.id = "TXANB00803";
  730. oParam.service = "dietsumapp.DietSum";
  731. oParam.method = "reqExecRiceFoodLst";
  732. oParam.inds = "req=ds_send";
  733. oParam.outds = "ds_hidden_item=count";
  734. oParam.async = false;
  735. //oParam.callback = "cf_TXANB00803";
  736. tranf_submit(oParam);
  737. }
  738. }else{
  739. return;
  740. }
  741. // for(var i = 1; i < grd_data.rows ; i++ ){
  742. // var goodcd = model.getValue("/root/main/foodlist/item[" + i + "]/goodcd");
  743. // if(goodcd == "S01101000"){
  744. // model.setValue("/root/main/foodlist/item[" + i + "]/reunitcost",ricecd);
  745. // model.setValue("/root/main/foodlist/item[" + i + "]/outunitcost",ricecd);
  746. // grd_data.addStatus( i+1 ,"update");
  747. // //재계산
  748. // frealqtycalc();
  749. // }
  750. // }
  751. }else{
  752. sysf_messageBox("변경된 백미단가를", "C001", "");
  753. group4.ipt_ricecd.setFocus();
  754. }
  755. }
  756. ]]></Script>
  757. </Form>
  758. </FDL>