contractView.jsp 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462
  1. <%@ page import="java.util.List" %>
  2. <%@ page import="java.util.ArrayList" %>
  3. <%@ taglib prefix="from" uri="http://www.springframework.org/tags/form" %>
  4. <%@ page contentType="text/html;charset=UTF-8" %>
  5. <%@ include file="/WEB-INF/views/include/taglib.jsp" %>
  6. <html>
  7. <head>
  8. <title>采购信息管理</title>
  9. <meta name="decorator" content="default"/>
  10. <script type="text/javascript">
  11. $(document).ready(function () {
  12. //$("#name").focus();
  13. $("#inputForm").validate({
  14. submitHandler: function (form) {
  15. loading('正在提交,请稍等...');
  16. form.submit();
  17. },
  18. errorContainer: "#messageBox",
  19. errorPlacement: function (error, element) {
  20. $("#messageBox").text("输入有误,请先更正。");
  21. if (element.is(":checkbox") || element.is(":radio") || element.parent().is(".input-append")) {
  22. error.appendTo(element.parent().parent());
  23. } else {
  24. error.insertAfter(element);
  25. }
  26. }
  27. });
  28. var _tr = $('#shopTable tr') ;
  29. _tr.each(function (i) {
  30. var _i = _tr.eq(i);
  31. if(_i.find('input').is(':checked')){
  32. _i.children().eq(1).attr('style','color: #dd5600');
  33. }else{
  34. _i.children().eq(1).attr('style','color: #000000');
  35. }
  36. })
  37. });
  38. var arr = new Array();
  39. var j = 0;
  40. function showClubSelect(iframe) {
  41. top.$.jBox(iframe, {
  42. iframeScrolling: 'yes',
  43. width: $(top.document).width() - 400,
  44. height: $(top.document).height() - 160,
  45. persistent: true,
  46. showScrolling: false,
  47. title: "选择会所",
  48. bottomText: '请从可供选择的项目中选择一个',
  49. buttons: {"确定": '1', "关闭": '-1'},
  50. submit: function (v, h, f) {
  51. //确定
  52. var $jboxFrame = top.$('#jbox-iframe');
  53. var $mainFrame = top.$('#mainFrame');
  54. if ('1' == v && 1 == $jboxFrame.size() && 1 == $mainFrame.size()) {
  55. var items = $jboxFrame[0].contentWindow.getCheckedItems();
  56. if (items.length > 0) {
  57. //$jboxFrame[0].contentWindow.setBinding(items);
  58. setSingleSelect(items);
  59. return true;
  60. } else {
  61. top.$.jBox.tip("请选择...");
  62. return false;
  63. }
  64. }
  65. return true;
  66. }
  67. });
  68. }
  69. function showShopSelect(iframe) {
  70. top.$.jBox(iframe, {
  71. iframeScrolling: 'yes',
  72. width: $(top.document).width() - 400,
  73. height: $(top.document).height() - 160,
  74. persistent: true,
  75. title: "选择商品",
  76. bottomText: '请从可供选择的项目中选择一个',
  77. buttons: {"确定": '1', "关闭": '-1'},
  78. submit: function (v, h, f) {
  79. //确定
  80. var $jboxFrame = top.$('#jbox-iframe');
  81. var $mainFrame = top.$('#mainFrame');
  82. if ('1' == v && 1 == $jboxFrame.size() && 1 == $mainFrame.size()) {
  83. var items = $jboxFrame[0].contentWindow.getCheckedItems();
  84. if (items.length > 0) {
  85. //$jboxFrame[0].contentWindow.setBinding(items);
  86. setShopSelect(items);
  87. j++;
  88. return true;
  89. } else {
  90. top.$.jBox.tip("请选择...");
  91. return false;
  92. }
  93. }
  94. return true;
  95. },
  96. closed: function () {
  97. var path = "${ctx}/bulkpurchase/contract/addShop?flag=1";
  98. $("#inputForm").attr("action", path).submit();
  99. $(".error").remove();
  100. $("#inputForm").attr("action", path).submit();
  101. }
  102. /* loaded: function () {
  103. }*/
  104. });
  105. }
  106. function setShopSelect(items) {
  107. var product = JSON.stringify(items[0]);
  108. $.ajax({
  109. url: "${ctx}/bulkpurchase/contract/PutSession",
  110. data: {"items": product},
  111. type: "POST",
  112. async: false,
  113. })
  114. }
  115. function deleteShop(obj) {
  116. var isDelete = confirm("真的要删除吗?");
  117. if (isDelete) {
  118. /* var $ttr=obj.parent("tr");
  119. $ttr.find("[name*='purchaseProduct[${step.index}].delFlag']").val(1);
  120. $ttr.hide();*/
  121. var tr = obj.parentNode.parentNode;
  122. var tbody = tr.parentNode;
  123. var $tr = $(tr);
  124. var product = $($tr).children(":first").children().val();
  125. $.ajax({
  126. url: "${ctx}/bulkpurchase/purchaseProduct/putProductToSession",
  127. data: {"product": product},
  128. async: false,
  129. type: "POST"
  130. });
  131. var path = "${ctx}/bulkpurchase/contract/deleteShop?flag=1";
  132. if( $(".error").val()==null||$(".error").val()==""||typeof ($(".error").val())=="undefined"){
  133. $("#inputForm").attr("action", path).submit();
  134. }
  135. $(".error").remove();
  136. $("#inputForm").attr("action", path).submit();
  137. }
  138. }
  139. function editShop(obj) {
  140. var tr = obj.parentNode.parentNode;
  141. var $tr = $(tr);
  142. var product = $($tr).children(":first").children().val();
  143. $.ajax({
  144. url: "${ctx}/bulkpurchase/purchaseProduct/putProductToSession",
  145. data: {"product": product},
  146. async: false,
  147. type: "POST"
  148. });
  149. openBox();
  150. }
  151. function openBox() {
  152. top.$.jBox("iframe:${ctx}/bulkpurchase/purchaseProduct/editProduct", {
  153. width: $(top.document).width() - 400,
  154. height: $(top.document).height() - 160,
  155. persistent: true,
  156. title: "选择商品",
  157. bottomText: '请从可供选择的项目中选择一个',
  158. buttons: {"确定": '1', "关闭": '-1'},
  159. submit: function (v, h, f) {
  160. //确定
  161. var $jboxFrame = top.$('#jbox-iframe');
  162. var $mainFrame = top.$('#mainFrame');
  163. if ('1' == v && 1 == $jboxFrame.size() && 1 == $mainFrame.size()) {
  164. var items = $jboxFrame[0].contentWindow.getCheckedItems();
  165. if (items.length > 0) {
  166. setShopEdit(items);
  167. j++;
  168. return true;
  169. } else {
  170. top.$.jBox.tip("请选择...");
  171. return false;
  172. }
  173. }
  174. return true;
  175. },
  176. closed: function () {
  177. var path = "${ctx}/bulkpurchase/contract/editShop?flag=1";
  178. if( $(".error").val()==null||$(".error").val()==""||typeof ($(".error").val())=="undefined"){
  179. $("#inputForm").attr("action", path).submit();
  180. }
  181. $(".error").remove();
  182. $("#inputForm").attr("action", path).submit();
  183. }
  184. });
  185. }
  186. function setShopEdit(items) {
  187. var item =JSON.stringify(items[0]);
  188. $.ajax({
  189. url:"${ctx}/bulkpurchase/contract/putEditToSession",
  190. data:{"items":item},
  191. type:"POST",
  192. async:false
  193. })
  194. }
  195. function checkinputval() {
  196. var stipulateFee = $("#stipulateFee").val();
  197. if (isNaN(stipulateFee) || stipulateFee == null || typeof (stipulateFee) == "undefined") {
  198. alertx("您输入的数据有误");
  199. $("#stipulateFee").val("");
  200. } else if (Number(stipulateFee) < 0) {
  201. alertx("您输入的数据有误");
  202. $("#stipulateFee").val("");
  203. } else {
  204. $("#stipulateFee").val(stipulateFee);
  205. }
  206. }
  207. function toConfirmPrice(obj, index) {
  208. var stipulateFlag = "purchaseProduct" + index + ".stipulateFlag";
  209. var set = document.getElementById(stipulateFlag);
  210. var stipulateFee = $("#stipulateFee").val();
  211. if (isNaN(stipulateFee) || stipulateFee == null || typeof (stipulateFee) == "undefined" || stipulateFee == "") {
  212. alertx("请先输入规定值")
  213. $(obj).attr("checked",false);
  214. $(set).val("0");
  215. }
  216. if ($(obj).attr("checked")) {
  217. $(set).val("1");
  218. } else {
  219. $(set).val("0");
  220. }
  221. var _tr = $('#shopTable tr') ;
  222. _tr.each(function (i) {
  223. var _i = _tr.eq(i);
  224. if(_i.find('input').is(':checked')){
  225. _i.children().eq(1).attr('style','color: #dd5600');
  226. }else{
  227. _i.children().eq(1).attr('style','color: #000000');
  228. }
  229. })
  230. }
  231. function setSingleSelect(items) {
  232. var info = eval('(' + items[0] + ')');
  233. if(null==info.address||info.address==""||typeof (info.address)=="undefined"){
  234. $("#inputForm").find("[name*='cmClub.address']").val(info.recAddress);
  235. }else{
  236. $("#inputForm").find("[name*='cmClub.address']").val(info.address);
  237. }
  238. $("#inputForm").find("[name*='cmClub.contractMobile1']").val(info.contractMobile1);
  239. $("#inputForm").find("[name*='cmClub.zipCode']").val(info.postalCode);
  240. $("#inputForm").find("[name*='cmClub.linkMan1']").val(info.linkMan1);
  241. $("#inputForm").find("[name*='cmClub.id']").val(info.id);
  242. $("#inputForm").find("[name*='ClubId']").val(info.id);
  243. $("#inputForm").find("[name*='cmClub.name']").val(info.name);
  244. $("#inputForm").find("[name*='cmClub.contractPhone']").val(info.contractPhone);
  245. }
  246. </script>
  247. </head>
  248. <body>
  249. <ul class="nav nav-tabs">
  250. <li class="active"><a href="${ctx}/bulkpurchase/contract/getContract?id=${contract.id}">采购信息<shiro:hasPermission
  251. name="bulkpurchase:contract:edit">${not empty contract.id?'编辑':'添加'}</shiro:hasPermission><shiro:lacksPermission
  252. name="bulkpurchase:contract:edit">查看</shiro:lacksPermission></a></li>
  253. </ul>
  254. <br/>
  255. <form:form id="inputForm" modelAttribute="contract" action="${ctx}/bulkpurchase/contract/save?flag=1" method="post"
  256. class="form-horizontal">
  257. <form:hidden path="id"/>
  258. <input type="hidden" name="clubId" value="0">
  259. <sys:message content="${message}"/>
  260. <table id="contentTable" class="table table-striped table-bordered table-condensed">
  261. <from:hidden path="cmClub.id"/>
  262. <thead>
  263. <tr>
  264. <td colspan="4">采购信息</td>
  265. </tr>
  266. </thead>
  267. <tr>
  268. <td>买家</td>
  269. <td><form:input path="cmClub.name" readonly="true"/></td>
  270. <td>电话</td>
  271. <td><form:input path="cmClub.contractPhone" readonly="true"/></td>
  272. </tr>
  273. <tr>
  274. <td>联系人</td>
  275. <td><form:input path="cmClub.linkMan1" readonly="true"/></td>
  276. <td>手机</td>
  277. <td><form:input path="cmClub.contractMobile1" readonly="true"/></td>
  278. </tr>
  279. <tr>
  280. <td>地址</td>
  281. <td><from:input path="cmClub.address" readonly="true"/></td>
  282. <td>邮编</td>
  283. <td><form:input path="cmClub.zipCode" readonly="true"/></td>
  284. </tr>
  285. <tr>
  286. <td><font color="red">*</font>采购编号</td>
  287. <td><form:input path="no" htmlEscape="false" readonly="true" />
  288. <input id="oldNo" type="hidden" value="${contract.no}"/>
  289. </td>
  290. <td>添加采购时间</td>
  291. <td><from:hidden path="createDate" value="${contract.createDate}"/>
  292. <span style="padding-top: 6px;"><fmt:formatDate value="${contract.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></span></td>
  293. </tr>
  294. <tr>
  295. <td><font color="red">*</font>采购名称</td>
  296. <td><from:input path="name" class="required" readonly="true"/></td>
  297. <td><font color="red">*</font>是否包邮</td>
  298. <td> <form:select path="freePostFlag" class="required" >
  299. <form:options items="${fns:getDictList('yes_no')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
  300. </form:select>
  301. </select></td>
  302. </tr>
  303. <tr>
  304. <td>采购备注</td>
  305. <td colspan="3"><form:textarea path="remarks" htmlEscape="false" cssClass="form-control" rows="2"/></td>
  306. </tr>
  307. </table>
  308. <input id="shopSelected" class="btn btn-primary" type="button" value="添加商品"
  309. onclick="showShopSelect('iframe:${ctx}/bulkpurchase/purchaseProduct')"/>
  310. <table id="shopTable" class="table table-striped table-bordered table-condensed">
  311. <tr>
  312. <td colspan="14">
  313. 采购商品(请添加采购中所有商品)</br><span style="color:#FF4500">采购规定每次采购,勾选的商品总额必须≥</span>
  314. <from:input path="stipulateFee" cssStyle="width: 80px" onchange="checkinputval()"/>
  315. </td>
  316. </tr>
  317. <tr>
  318. <td>选择商品</td>
  319. <td>商品名称</td>
  320. <td>商品ID</td>
  321. <td>供应商名称</td>
  322. <td>当前单价</td>
  323. <td>折扣</td>
  324. <td>折后单价</td>
  325. <td>税率</td>
  326. <td>税费</td>
  327. <td>是否有赠送优惠</td>
  328. <td>应付供应商</td>
  329. <td>应付第三方</td>
  330. <td>应付采美</td>
  331. <td>操作</td>
  332. </tr>
  333. <c:if test="${empty contract.purchaseProduct}"></c:if>
  334. <c:if test="${!empty contract.purchaseProduct}">
  335. <c:forEach items="${contract.purchaseProduct}" var="product" varStatus="step">
  336. <tr>
  337. <td>
  338. <input type="checkbox" name="check[${step.index}]"
  339. ${(not empty product.stipulateFlag && product.stipulateFlag eq 1)?'checked="checked"':''}
  340. onclick="toConfirmPrice(this,${step.index})" id="check[${step.index}]"
  341. value='${fns:toJson(product)}'>
  342. </td>
  343. <td>${product.purchaseProductName}
  344. <from:hidden path="purchaseProduct[${step.index}].purchaseProductName"></from:hidden>
  345. </td>
  346. <td>${product.productId}
  347. <from:hidden path="purchaseProduct[${step.index}].productId"></from:hidden>
  348. </td>
  349. <td>${product.shopName}
  350. <from:hidden path="purchaseProduct[${step.index}].shopName"></from:hidden>
  351. </td>
  352. <td>
  353. <fmt:formatNumber value= "${product.price}" type="currency" pattern="0.00"/>
  354. <from:hidden path="purchaseProduct[${step.index}].price"></from:hidden>
  355. </td>
  356. <td>
  357. <fmt:formatNumber value="${product.discount/100}" type="currency" pattern="0.00%"/>
  358. <from:hidden path="purchaseProduct[${step.index}].discount"></from:hidden>
  359. </td>
  360. <td>
  361. <fmt:formatNumber value= "${product.discountPrice}" type="currency" pattern="0.00"/>
  362. <from:hidden path="purchaseProduct[${step.index}].discountPrice"></from:hidden>
  363. </td>
  364. <td>
  365. <fmt:formatNumber value="${product.taxRate/100}" type="currency" pattern="0.00%"/>
  366. <from:hidden path="purchaseProduct[${step.index}].taxRate"></from:hidden>
  367. </td>
  368. <td>
  369. <fmt:formatNumber value= "${product.addedValueTax}" type="currency" pattern="0.00"/>
  370. <from:hidden path="purchaseProduct[${step.index}].addedValueTax"></from:hidden>
  371. </td>
  372. <td>
  373. <c:if test="${empty product.productPrivilege}">---</c:if>
  374. <c:if test="${!empty product.productPrivilege}">
  375. <from:hidden path="purchaseProduct[${step.index}].shopName"></from:hidden>
  376. <c:forEach items="${ product.productPrivilege}" var="privilege" varStatus="star">
  377. 买: ${privilege.purchase} 送 :${privilege.present} </br>
  378. <from:hidden
  379. path="purchaseProduct[${step.index}].productPrivilege[${star.index}].purchase"></from:hidden>
  380. <from:hidden
  381. path="purchaseProduct[${step.index}].productPrivilege[${star.index}].present"></from:hidden>
  382. </c:forEach>
  383. </c:if>
  384. </td>
  385. <td>
  386. <fmt:formatNumber value= "${product.shopFee}" type="currency" pattern="0.00"/>
  387. <from:hidden path="purchaseProduct[${step.index}].shopFee"></from:hidden>
  388. </td>
  389. <td>
  390. <fmt:formatNumber value= "${product.otherFee}" type="currency" pattern="0.00"/>
  391. <from:hidden path="purchaseProduct[${step.index}].otherFee"></from:hidden>
  392. </td>
  393. <td>
  394. <fmt:formatNumber value= "${product.cmFee}" type="currency" pattern="0.00"/>
  395. <from:hidden path="purchaseProduct[${step.index}].cmFee"></from:hidden>
  396. </td>
  397. <td>
  398. <a href='javascript:void(0)' onclick='editShop(this)'>设置</a>
  399. <a href='javascript:void(0)' onclick='deleteShop(this)'>删除商品</a>
  400. </td>
  401. <from:hidden path="purchaseProduct[${step.index}].stipulateFlag"></from:hidden>
  402. <from:hidden path="purchaseProduct[${step.index}].shopId"></from:hidden>
  403. <from:hidden path="purchaseProduct[${step.index}].id"></from:hidden>
  404. <from:hidden path="purchaseProduct[${step.index}].delFlag"></from:hidden>
  405. </tr>
  406. </c:forEach>
  407. </c:if>
  408. </table>
  409. <div class="form-actions">
  410. <shiro:hasPermission name="bulkpurchase:contract:edit"><input id="btnSubmit" class="btn btn-primary"
  411. type="submit"
  412. value="保 存"/>&nbsp;</shiro:hasPermission>
  413. <input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
  414. </div>
  415. </form:form>
  416. </body>
  417. </html>