addProBonApply.jsp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. <%@ page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <!-- by qianqw 20150317 -->
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  9. <!-- end -->
  10. <meta http-equiv="Content-Type" content="text/html;charset=GBK">
  11. <title>新增项目奖金申请</title>
  12. <link href="${pageContext.request.contextPath }/main.css" rel="stylesheet" type="text/css" />
  13. <link href="${pageContext.request.contextPath }/liger/lib/ligerUI/skins/${sessionScope.css}/css/ligerui-all.css" rel="stylesheet" type="text/css" />
  14. <script src="${pageContext.request.contextPath }/liger/lib/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
  15. <script type="text/javascript" src="/shares/js/constant.js"></script>
  16. <script type="text/javascript" src="/shares/js/common.js"></script>
  17. <script type="text/javascript" src="/shares/js/file.js"></script>
  18. <script src="${pageContext.request.contextPath }/liger/lib/ligerUI/js/core/base.js" type="text/javascript"></script>
  19. <script type="text/javascript" src="/shares/datePicker/WdatePicker.js"></script>
  20. <!-- 选择窗口需要加载的js文件 start-->
  21. <script src="${pageContext.request.contextPath}/liger/lib/json2.js" type="text/javascript"></script>
  22. <script src="${pageContext.request.contextPath}/liger/lib/ligerUI/js/plugins/ligerDialog.js" type="text/javascript"></script>
  23. <script type="text/javascript" src="${pageContext.request.contextPath}/liger/lib/ligerUI/js/ligerui.all.js"></script>
  24. <script src="/shares/js/yw/hr/train/planTableVar.js" type="text/javascript"></script>
  25. <script type="text/javascript" src="/shares/js/constant.js"></script>
  26. <!-- 选择项目名称js -->
  27. <script type="text/javascript" src="/shares/js/yw/fm/common/chooseProject.js"></script>
  28. <!-- 选择合同里程碑 -->
  29. <script type="text/javascript" src="/shares/js/yw/fm/common/chooseContractMilestone.js"></script>
  30. <script type="text/javascript" src="/shares/js/yw/fm/common/chooseProject.js"></script>
  31. <!-- 选择金额大小写js文件 -->
  32. <script type="text/javascript" src="/shares/js/yw/fm/common/gatheringMoneyDisplay.js"></script>
  33. <script type="text/javascript">
  34. $(function (){
  35. initgrid();
  36. });
  37. $(document).ready(function(){
  38. var money=$("#fmAllot\\.gathering_money").val();
  39. displayChinese(money);
  40. }
  41. );
  42. //保存
  43. function saveProBonusApplyForm(){
  44. var rs = $.validate({name:"proBonApply.project_name",model:[{type:"len",min:0,max:100,msg:"输入长度不要超过100个字符!",msgField : "btn_suppliers"}]});
  45. rs &=$.validate({name :"proBonApply.project_bonus_number",model :[{type:"len",min:0,max:60,msg:"输入长度不要超过60个字符!"}]});
  46. rs &=$.validate({name :"proBonApply.contract_number",model :[{type:"len",min:0,max:100,msg:"输入长度不要超过500个字符!"}]});
  47. rs &=$.validate({name :"proBonApply.project_manager",model :[{type:"len",min:0,max:32,msg:"输入长度不要超过32个字符!"}]});
  48. rs &=$.validate({name :"proBonApply.project_total_money",model :[{type:"len",min:0,max:18,msg:"输入长度不要超过18个字符!"},{ type : "isNumber",msg : "输入只能为数字!" }]});
  49. rs &=$.validate({name :"proBonApply.project_cost",model :[{type:"len",min:0,max:18,msg:"输入长度不要超过18个字符!"},{ type : "isNumber",msg : "输入只能为数字!" }]});
  50. rs &=$.validate({name :"proBonApply.project_profit",model :[{type:"len",min:0,max:18,msg:"输入长度不要超过18个字符!"},{ type : "isNumber",msg : "输入只能为数字!" }]});
  51. rs &=$.validate({name :"proBonApply.assign_money",model :[{type:"len",min:0,max:18,msg:"输入长度不要超过18个字符!"},{ type : "isNumber",msg : "输入只能为数字!" }]});
  52. rs &=$.validate({name :"proBonApply.project_now_stage",model :[{type:"len",min:0,max:30,msg:"输入长度不要超过30个字符!"}]});
  53. rs &=$.validate({name :"proBonApply.now_assign_money",model :[{type:"require",msg:"本阶段可供分配奖金不能为空!"},{type:"len",min:0,max:18,msg:"输入长度不要超过18个字符!"},{ type : "isNumber",msg : "输入只能为数字!" }]});
  54. rs &=$.validate({name :"proBonApply.project_remark",model :[{type:"len",min:0,max:256,msg:"输入长度不要超过256个字符!"}]});
  55. if(!rs)return;
  56. // grid.saveProBonusApplyForm();
  57. var bonusApply=JSON.stringify(grid.getData());
  58. var msg="";
  59. var arrays=[];
  60. var arrayScal=[];
  61. $.each(grid.getData(),function(index,obj){
  62. var user_name=obj.user_name;
  63. var assign_scale=obj.assign_scale;
  64. var html="第"+(parseInt(index)+1)+"行:";
  65. var content="";
  66. arrays.push(user_name);
  67. if(user_name==null || user_name==""){
  68. content+="姓名不能为空;";
  69. }
  70. if(user_name.length>16){
  71. content+="姓名输入不能超过16个字符";
  72. }
  73. arrayScal.push(assign_scale);
  74. if(assign_scale==null || assign_scale==""){
  75. content+="分配比例不能为空;";
  76. }
  77. if(assign_scale==0){
  78. content+="请输入分配比例;";
  79. }
  80. if(assign_scale.length>16){
  81. content+="分配比例输入不能超过16个字符";
  82. }
  83. if(content !=""){
  84. html +=content;
  85. msg +=html+"<br/>";
  86. }
  87. });
  88. if(msg !=""){
  89. $.ligerDialog.error(msg);
  90. return ;
  91. }else {
  92. arrays.sort();
  93. arrayScal.sort();
  94. var content="";
  95. var s=parseFloat("0.00");
  96. for(var t=0;t<arrayScal.length;t++){
  97. s+=parseFloat(arrayScal[t]);
  98. }
  99. for(var i=1;i<arrays.length;i++){
  100. if(arrays[i-1]==arrays[i]){
  101. content +=arrays[i-1]+";";
  102. }
  103. }
  104. if(content !=""){
  105. $.ligerDialog.error("姓名存在重复值,如下:<br/>"+content);
  106. return ;
  107. }
  108. if(s>100){
  109. $.ligerDialog.error("分配比例超过100%,且值为:<br/>"+s+"%"+"请重新分配!");
  110. return ;
  111. }
  112. if(s!=100 && s!=0.0){
  113. $.ligerDialog.error("分配比例不足100%,且值为:<br/>"+s+"%"+"请重新分配!");
  114. return ;
  115. }
  116. }
  117. // alert(bonusApply);
  118. $("#bonus_apply_data").val(bonusApply);//页面要定义隐藏bonus_apply_data
  119. formJs(submitProBonusApplyForm);
  120. }
  121. function submitProBonusApplyForm(){
  122. $("#proBonusApplyForm").submit();
  123. }
  124. // function savePlanForm(){
  125. // $("#planForm").submit();
  126. // }
  127. var grid = null;
  128. function initgrid(){
  129. grid=$("#to_count").ligerGrid({
  130. columns:[
  131. {display:"奖金申请分配名单id",name:"universalid",isSort: false,width:1,hide:true},
  132. { display: '姓名ID', name: 'user_id', align: 'center',isSort:false,hide:true},
  133. { display: '姓名', name: 'user_name', align: 'center',isSort:false,
  134. editor: { type: 'select',
  135. ext : function (rowdata){
  136. return {
  137. onBeforeOpen: openMyTree
  138. };
  139. }
  140. }
  141. },
  142. {display:"分配比例(%)",name:"assign_scale",align: 'center',width: 130,
  143. editor : {
  144. type : 'float',
  145. minValue : '0',
  146. maxValue:'100'
  147. },
  148. render : function(row) {
  149. if (row.assign_scale!= "") {
  150. return row.assign_scale + "%";
  151. } else {
  152. return row.assign_scale;
  153. }
  154. }
  155. },
  156. {display:"金额(¥)",name:"money",align: 'center',width: 130,
  157. render : function(row) {
  158. // alert($("#now_assign_money").val());
  159. if($("#now_assign_money").val()>0){
  160. var money=row.assign_scale*0.01*$("#now_assign_money").val();
  161. return money.toFixed(3);
  162. }else{
  163. alert("请先输入本阶段可供分配奖金!")
  164. return ;
  165. }
  166. }
  167. },
  168. {display:"备注",name:"remark",align: 'center',width: 400,editor: { type: 'text' }},
  169. { display: '操作', isSort: false, width: 130, render: function (rowdata, rowindex){
  170. var h = "<a href='javascript:cancelEdit(" + rowindex + ",1)'>删除</a> ";
  171. return h;
  172. }
  173. }
  174. ],
  175. url:"fmProBonusApplyAction.do?task=myProBonusApplyList5555&time="+new Date().getTime(),
  176. // onAfterEdit : f_onAfterEdit,
  177. height : '210',
  178. rownumbers:true,
  179. enabledEdit:true,
  180. width :'99.8%',
  181. usePager: false
  182. });
  183. }
  184. // function f_onAfterEdit(e) {
  185. // var now_assign_money=$("#now_assign_money").val();
  186. // if (now_assign_money > 0) {
  187. // if ("assign_scale" == e.column.columnname) {
  188. // var totalprice = e.record.assign_scale * now_assign_money;
  189. // totalprice = totalprice.toFixed(3);
  190. // // .substring(0,totalprice.indexOf(".")+3);
  191. // manager.updateCell('money', totalprice, e.record);
  192. // var totallevied = e.record.money
  193. // * (1 + e.record.insd_rate / 100);
  194. // totallevied = totallevied.toFixed(3);
  195. // manager.updateCell('money', totallevied, e.record);
  196. // } else {
  197. // if (e.record.insd_totallevied != 0) {
  198. // var in_totalprice = e.record.insd_totallevied
  199. // / (1 + e.record.insd_rate / 100);
  200. // in_totalprice = in_totalprice.toFixed(3);
  201. // manager.updateCell('money', in_totalprice, e.record);
  202. // var in_price = e.record.money
  203. // / now_assign_money;
  204. // in_price = in_price.toFixed(4);
  205. // manager.updateCell('assign_scale', in_price, e.record);
  206. // }
  207. // }
  208. // } else {
  209. // $.ligerDialog.warn(now_assign_money + "金额必须大于0!");
  210. // manager.updateCell('now_assign_money', 1, e.record);
  211. // return;
  212. // }
  213. //分配人
  214. function openMyTree(){
  215. openTypeTree("hidePlan", {
  216. type : "usersingle",
  217. tab : "1",
  218. okpress:function(ids, names){
  219. var managert = $("#to_count").ligerGetGridManager();
  220. var rows = managert.getSelectedRows();
  221. if(rows.length >1){
  222. alert("只能选择一行修改!");
  223. return;
  224. }else{
  225. var row = managert.getSelectedRow();
  226. if (!row) { alert('请选择行!'); return; }
  227. managert.updateCell('user_id', ids, row);
  228. managert.updateCell('user_name', names, row);
  229. managert.endEdit();
  230. return;
  231. }
  232. }
  233. });
  234. }
  235. function addProjectRow(){
  236. var now_assign_money=$("#now_assign_money").val()
  237. if(now_assign_money>0){
  238. var manager = $("#to_count").ligerGetGridManager();
  239. manager.addRow({
  240. universalid:"",
  241. user_id: "",
  242. user_name:"",
  243. assign_scale :"0",
  244. money : "0.000",
  245. remark:""
  246. });
  247. }else{
  248. alert("请检查输入本阶段可供分配奖金是否正确且为数字!")
  249. return;
  250. }
  251. }
  252. function beginEdit(rowid) {
  253. grid.beginEdit(rowid);
  254. }
  255. function cancelEdit(rowid,isDelete) {
  256. grid.cancelEdit(rowid);
  257. if(isDelete){
  258. grid.deleteRow(rowid);
  259. }
  260. }
  261. function CloseWin() {
  262. var tabid = getCurrentTabId(); //刷新整个页面
  263. parent.window.location=tabid;
  264. window.parent.dialog.close();
  265. }
  266. </script>
  267. <style type="text/css">
  268. /* 选择金额大小写css样式 */
  269. </style>
  270. </head>
  271. <body>
  272. <form id="proBonusApplyForm" action="fmProBonusApplyAction.do" method="post">
  273. <input type="hidden" name="bonus_apply_data" id="bonus_apply_data" />
  274. <textarea rows="11" cols="11" style="display:none" id="grade" name="grade"></textarea>
  275. <div id="title" class="form-button">
  276. <input id="btnSave" type="button" class="l-button" value="提交" onclick="saveProBonusApplyForm()" ${flowOnOff=='off'? 'disabled="disabled"':'' }/>
  277. <input type="button" value="关闭" class="l-button" onclick="closeWindow();"/>
  278. <c:if test="${flowOnOff=='off' }">
  279. <span style="color:red;">请先配置审核流程</span>
  280. </c:if>
  281. </div>
  282. <div class="container-layout">
  283. <div class="forum-container">
  284. <center>
  285. <span style="font-size:30px;">项目奖金申请</span>
  286. <table class="l-table-edit line">
  287. <tr>
  288. <td class="l-table-edit-text" width="10%">项目名称<FONT COLOR="red"></FONT>:</td>
  289. <td class="l-table-edit-td" width="39%">
  290. <input type="hidden" id="project_id_3" name="proBonApply.project_id" value="" />
  291. <input style="width: 200px;" type="text" id="project_name_3" name="proBonApply.project_name" value="" />
  292. <c:if test="${isHidden=='show' }">
  293. <input id="btn_suppliers" type="button" class="l-button" value="请选择" onclick="chooseProject({'project_id':'project_id_3','project_name':'project_name_3','project_manager':'project_manager','subtotal':'project_cost'});" />
  294. <!-- <input id="btn_suppliers" type="button" class="l-button" value="请选择" -->
  295. <!-- onclick="chooseContractMilestone({milestone_id:'milestone_id',status_name:'status_name','project_id':'project_id_3','project_name':'project_name_3','contract_id':'contract_id_3','contract_name':'contract_name','contract_number':'contract_number_3','trade_money':'trade_money'});" /> -->
  296. </c:if>
  297. </td>
  298. <td class="l-table-edit-text" width="18%">单号<FONT COLOR="red"></FONT>:</td>
  299. <td class="l-table-edit-td" width="33%">
  300. 自动生成
  301. <input type="hidden" id="income_plan_number" name="proBonApply.project_bonus_number" class="notFirstFocus" value="自动生成" size="32" onblur="onBlurCheck(this.value);" onfocus="onFocusCheck(this.value);" readonly="readonly"/>
  302. <%-- <input style="width:230px;" type="text" id="plan.train_name" name="plan.train_name" value="${requestScope.plan.train_name}"/> --%>
  303. </td>
  304. </tr>
  305. <tr>
  306. <th colspan="4">项目信息</th>
  307. </tr>
  308. <tr>
  309. <td class="l-table-edit-text">合同编号<FONT COLOR="red"></FONT>:</td>
  310. <td class="l-table-edit-td" >
  311. <input type="hidden" id="contract_id_3" name="proBonApply.contract_id" value="" />
  312. <input type="hidden" id="contract_name" name="contract_name" value="" readonly="readonly" />
  313. <input type="text" id="contract_number_3" name="proBonApply.contract_number" size="32" value="" />
  314. </td>
  315. <td class="l-table-edit-text">项目经理<FONT COLOR="red"></FONT>:</td>
  316. <td class="l-table-edit-td" >
  317. <input type="text" id="project_manager" name="proBonApply.project_manager" value="" size="32"/>
  318. </td>
  319. </tr>
  320. <tr>
  321. <td class="l-table-edit-text">项目总额(¥)<FONT COLOR="red"></FONT>:</td>
  322. <td class="l-table-edit-td" >
  323. <input type="text" id="project_total_money" name="proBonApply.project_total_money" size="32" value="" />
  324. </td>
  325. <td class="l-table-edit-text">项目成本费用(¥)<FONT COLOR="red"></FONT>:</td>
  326. <td class="l-table-edit-td" colspan="3">
  327. <input type="text" id="project_cost" name="proBonApply.project_cost" size="32" value="" />
  328. </td>
  329. </tr>
  330. <tr>
  331. <td class="l-table-edit-text">项目利润(¥)<FONT COLOR="red"></FONT>:</td>
  332. <td class="l-table-edit-td" >
  333. <input type="text" id="project_profit" name="proBonApply.project_profit" size="32" value="" />
  334. </td>
  335. <td class="l-table-edit-text">可供分配奖金(¥)<FONT COLOR="red"></FONT>:</td>
  336. <td class="l-table-edit-td" colspan="3">
  337. <input type="text" id="assign_money" name="proBonApply.assign_money" size="32" value=""/>
  338. </td>
  339. </tr>
  340. <tr>
  341. <td class="l-table-edit-text">项目当前阶段<FONT COLOR="red"></FONT>:</td>
  342. <td class="l-table-edit-td" >
  343. <input type="text" id="project_now_stage" name="proBonApply.project_now_stage" size="32" value=""/>
  344. </td>
  345. <td class="l-table-edit-text">本阶段可供分配奖金(¥)<FONT COLOR="red">*</FONT>:</td>
  346. <td class="l-table-edit-td" colspan="3">
  347. <input type="text" id="now_assign_money" name="proBonApply.now_assign_money" size="32" value="" />
  348. </td>
  349. </tr>
  350. <tr>
  351. <td class="l-table-edit-text">项目分配描述<FONT COLOR="red"></FONT>:</td>
  352. <td class="l-table-edit-td" colspan="3">
  353. <textarea id="project_remark" name="proBonApply.project_remark" rows="6" cols="137"></textarea>
  354. </td>
  355. </tr>
  356. <tr>
  357. <th colspan="4">奖金分配名单</th>
  358. </tr>
  359. <tr >
  360. <td colspan="4" style="height:220">
  361. <input type="hidden" id="hidePlan" name="hidePlan" value="">
  362. <input type="button" class="l-button" value="添加" onclick="addProjectRow()" style="width: 90px; margin-bottom:6px;margin-top:5px;"/>
  363. <div class="l-clear"></div>
  364. <div id="to_count" style="marging:0; padding: 0"></div>
  365. <br />
  366. <div style="display:none;"></div>
  367. </td>
  368. </tr>
  369. <tr>
  370. <td class="l-table-edit-text">申请人:</td>
  371. <td class="l-table-edit-td" >
  372. ${requestScope.create_user}
  373. </td>
  374. <td class="l-table-edit-text">申请日期<FONT COLOR="red"></FONT>:</td>
  375. <td class="l-table-edit-td">
  376. <fmt:formatDate value="${requestScope.create_date}" pattern="yyyy-MM-dd"/>
  377. </td>
  378. </tr>
  379. </table>
  380. <input type="hidden" id="tabid" name="tabid" value="${param.tabid }">
  381. <input type="hidden" name="fmodel" value="${fmodel.modelId }">
  382. <input type="hidden" name="tmodel" value="${tmodel.tmodelId }">
  383. <input type="hidden" id="task" name="task" value="addProBonusApply">
  384. </center>
  385. </div>
  386. </div>
  387. <%@include file="/yw/eu/codeflow/workflow/workflow_start_process.jsp"%>
  388. </form>
  389. <%@include file="/include/message.jsp"%>
  390. </body>
  391. </html>