PlaceGather.aspx 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage/ErpView.master" AutoEventWireup="true" CodeFile="PlaceGather.aspx.cs" Inherits="ECharts_PlaceGather" %>
  2. <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
  3. <script type="text/javascript">
  4. //查询按钮
  5. function searchFn() {
  6. var form = new mini.Form("#ctl00_f_all");
  7. var data = form.getData(true, false);
  8. var s = data;
  9. grid.load({
  10. date1: s.placedate1, date2: s.placedate2
  11. });
  12. mini.get("supplier_grid").load({
  13. date1: s.placedate1, date2: s.placedate2
  14. });
  15. mini.get("supplier_all_grid").load({
  16. date1: s.placedate1, date2: s.placedate2
  17. });
  18. }
  19. function exportAfterFn(id) {
  20. let grid = mini.get(id);
  21. let extname = "";
  22. extname = extname == "" ? "下单部每日下单数据" : extname
  23. if (grid == null) {
  24. alert("无法导出");
  25. return;
  26. }
  27. let columns = grid.columns;
  28. function getColumns(columns) {
  29. let cols = [];
  30. let h = "";
  31. for (let i = 0; i < columns.length; i++) {
  32. let column = columns[i];
  33. //if (!column.visible || column.header == undefined) {
  34. // continue;
  35. //}
  36. if (column.header == undefined || column.header == "#") {
  37. continue;
  38. }
  39. if (typeof column.header == "function") continue;
  40. if (column.header.indexOf("<") != -1) h = column.header.toString().substring(0, column.header.indexOf("<"));
  41. else h = column.header.toString();
  42. h = h.replace(/ /g, "");
  43. //if (i == 1) alert(h);
  44. //alert(column.header);
  45. //var col = { header: h, field: column.field, type: column.type, visible: column.visible };
  46. let col = { header: h, field: column.field, type: column.type, width: column.width, visible: true };
  47. if (column.columns) {
  48. col.columns = getColumns(column.columns);
  49. }
  50. cols.push(col);
  51. }
  52. return cols;
  53. }
  54. columns = getColumns(columns);
  55. let type = "";
  56. let sel_row = grid.getSelecteds();
  57. if (grid.multiSelect && sel_row.length > 0 || grid.url == "" || grid.showPager == false) {
  58. type = "bexcel";
  59. }
  60. else type = grid.url == "" ? "bexcel" : "excel";
  61. downLoad(grid, GetPrePath() + "/Reports/comExports.aspx", { extname: extname, url: encodeURIComponent(grid.url), type: type, columns: columns }, function () {
  62. //alert("导出成功");
  63. });
  64. }
  65. function downLoad(grid, url, fields, callback) {
  66. //创建Form
  67. var submitfrm = document.createElement("form");
  68. submitfrm.action = url;
  69. submitfrm.method = "post";
  70. submitfrm.target = "_blank";
  71. document.body.appendChild(submitfrm);
  72. if (fields) {
  73. for (var p in fields) {
  74. var input = mini.append(submitfrm, "<input type='hidden' name='" + p + "'>");
  75. var v = fields[p];
  76. if (typeof v != "string") v = mini.encode(v);
  77. input.value = v;
  78. }
  79. }
  80. if (grid == null) {
  81. alert("无法导出");
  82. return;
  83. }
  84. var parms = grid._dataSource.loadParams;
  85. for (var item in parms) {
  86. if (parms[item] == undefined || parms[item] == null) continue;
  87. mini.append(submitfrm, "<input type='hidden' name='" + item + "' value=\"" + parms[item] + "\">");
  88. }
  89. var sel_row = grid.getSelecteds();
  90. if (grid.multiSelect && sel_row.length > 0) {
  91. mini.append(submitfrm, "<input type='hidden' name='hExData' value='" + mini.encode(sel_row) + "'>");
  92. } else {
  93. if (grid.url == undefined || grid.url == "" || grid.showPager == false) {
  94. //ame = 'hExData' value = '" + mini.encode(grid.data)
  95. mini.append(submitfrm, "<input type='hidden' name='hExData' value='" + mini.encode(grid.data) + "'>");
  96. }
  97. }
  98. if (mini.get("txtSdate") != null && mini.get("txtSdate").getText() != "") {
  99. mini.append(submitfrm, "<input type='hidden' name='hExSdate' value=\"" + mini.get("txtSdate").getText() + "\">");
  100. }
  101. if (mini.get("txtEdate") != null && mini.get("txtEdate").getText() != "") {
  102. mini.append(submitfrm, "<input type='hidden' name='hExEdate' value=\"" + mini.get("txtEdate").getText() + "\">");
  103. }
  104. //mini.append()
  105. submitfrm.submit();
  106. setTimeout(function () {
  107. submitfrm.parentNode.removeChild(submitfrm);
  108. if (callback) callback();
  109. }, 1000);
  110. }
  111. function onSearchCheckedChanged(e) {
  112. var btn = e.sender;
  113. var checked = btn.getChecked();
  114. var text = btn.getText();
  115. var form = new mini.Form("#ctl00_f_all");
  116. var data = form.getData(true, false);
  117. var s = data;
  118. if (checked) {
  119. var stime = "";
  120. var etime = "";
  121. var timearr = [];
  122. if (text == "本日") {
  123. var day = getCurDate();
  124. timearr.push(day);
  125. timearr.push(day);
  126. }
  127. else if (text == "本周") {
  128. timearr = getWeekStartAndEnd();
  129. }
  130. else if (text == "本月") {
  131. timearr = getMonthStartAndEnd();
  132. }
  133. stime = timearr[0];
  134. etime = timearr[1];
  135. console.log(text, stime, etime)
  136. grid.load({
  137. shopname: s.shop, designer: s.design, order_area: s.order_area, org: s.designerorg, date1: stime, date2: etime, UpDate1: s.UpDate1, UpDate2: s.UpDate2
  138. });
  139. }
  140. mini.get("aSearchMonth").setChecked(false);
  141. mini.get("aSearchDay").setChecked(false);
  142. mini.get("aSearchWeek").setChecked(false);
  143. }
  144. //查询本日
  145. function onSearchToday() {
  146. var form = new mini.Form("#ctl00_f_all");
  147. var data = form.getData(true, false);
  148. var s = data;
  149. var DateType = "Today";
  150. grid.load({
  151. shopname: s.shop, designer: s.designer, order_area: s.order_area, org: s.designerorg, dateType: DateType
  152. });
  153. }
  154. //查询本周
  155. function onSearchThisWeek() {
  156. var form = new mini.Form("#ctl00_f_all");
  157. var data = form.getData(true, false);
  158. var s = data;
  159. var DateType = "Week";
  160. grid.load({
  161. shopname: s.shop, designer: s.designer, order_area: s.order_area, org: s.designerorg, dateType: DateType
  162. });
  163. }
  164. //查询本月
  165. function onSearchThisMonth() {
  166. var form = new mini.Form("#ctl00_f_all");
  167. var data = form.getData(true, false);
  168. var s = data;
  169. var DateType = "Month";
  170. grid.load({
  171. shopname: s.shop, designer: s.designer, order_area: s.order_area, org: s.designerorg, dateType: DateType
  172. });
  173. }
  174. //清除查询内容
  175. function clearFn() {
  176. //$("#ctl00_f_all").find("input").val("");
  177. var form = new mini.Form("#ctl00_f_all");
  178. form.clear();
  179. mini.get("aSearchMonth").setChecked(false);
  180. mini.get("aSearchDay").setChecked(false);
  181. mini.get("aSearchWeek").setChecked(false);
  182. }
  183. function onDrawSummaryCell(e) {
  184. var result = e.result;
  185. var rdata = result.data;
  186. //console.log("result:", result);
  187. var totalPayment = 0;
  188. var allOrder = 0;
  189. var wait = 0;
  190. var designing = 0;
  191. var finish = 0;
  192. var rateAp = 0;
  193. var payPrice = 0;
  194. for (var item of rdata) {
  195. totalPayment += parseFloat(item.Amount);
  196. allOrder += parseInt(item.AllOrder);
  197. wait += parseInt(item.WaitDesign);
  198. designing += parseInt(item.Designing);
  199. finish += parseInt(item.DesignFinish);
  200. rateAp += parseFloat(item.FinalizationRate);
  201. payPrice += parseFloat(item.PayPrice);
  202. }
  203. var grid = e.sender;
  204. totalPayment = Math.floor(totalPayment * 100) / 100;
  205. rateAp = Math.floor(rateAp / rdata.length * 100) / 100;
  206. //客户端汇总计算
  207. if (e.field == "Amount") {
  208. var s = "<span style='color:Brown;'>"
  209. s += "合计:" + totalPayment
  210. + "</span>";
  211. e.cellHtml = s;
  212. }
  213. else if (e.field == "AllOrder") {
  214. var s = "<span style='color:Brown;'>"
  215. s += "合计:" + allOrder
  216. + "</span>";
  217. e.cellHtml = s;
  218. }
  219. else if (e.field == "WaitDesign") {
  220. var s = "<span style='color:Brown;'>"
  221. s += "合计:" + wait
  222. + "</span>";
  223. e.cellHtml = s;
  224. }
  225. else if (e.field == "Designing") {
  226. var s = "<span style='color:Brown;'>"
  227. s += "合计:" + designing
  228. + "</span>";
  229. e.cellHtml = s;
  230. }
  231. else if (e.field == "DesignFinish") {
  232. var s = "<span style='color:Brown;'>"
  233. s += "合计:" + finish
  234. + "</span>";
  235. e.cellHtml = s;
  236. }
  237. else if (e.field == "FinalizationRate") {
  238. var s = "<span style='color:Brown;'>"
  239. s += "平均:" + rateAp
  240. + "</span>";
  241. e.cellHtml = s;
  242. }
  243. else if (e.field == "PayPrice") {
  244. var s = "<span style='color:Brown;'>"
  245. s += "合计:" + payPrice
  246. + "</span>";
  247. e.cellHtml = s;
  248. }
  249. }
  250. </script>
  251. </asp:Content>
  252. <asp:Content ID="Content2" ContentPlaceHolderID="btn" runat="Server">
  253. </asp:Content>
  254. <asp:Content ID="Content4" ContentPlaceHolderID="content" runat="Server">
  255. <div class="mini-fit">
  256. <div id="supplier_grid_panel" class="mini-panel mini-panel-info" style="width: 100%; height: 50%; padding: 0px; margin: 10px 0;">
  257. <a class="mini-button mini-button-primary" iconcls="icon-folder" onclick="exportAfterFn('supplier_grid')">导出</a>
  258. <div id="supplier_grid" class="mini-datagrid" sortmode="client" style="width: 100%; height: 100%;" showemptytext="true" showpager="false" showsummaryrow="false" ondrawsummarycell="onDrawSummaryCell"
  259. emptytext="暂无记录" url="../handler/sync.ashx?t=get_place_order_data">
  260. <div property="columns">
  261. <div field="ProductName" width="160" align="center" headeralign="center">品类</div>
  262. <div field="SupplierName" width="160" align="center" headeralign="center">车间</div>
  263. <div field="dayDev" width="160" align="center" headeralign="center">当天出货的下单数量</div>
  264. <div field="dayTotal" width="160" align="center" headeralign="center">当天下单总数量</div>
  265. <div field="payTotal" width="160" align="center" headeralign="center">金额5百以上单量</div>
  266. <div field="today" width="160" align="center" headeralign="center">当天出货</div>
  267. <div field="aftersale" width="160" align="center" headeralign="center">售后单</div>
  268. <div field="deliveryNum" width="160" align="center" headeralign="center">待发货单</div>
  269. <div field="unusua" width="160" align="center" headeralign="center">异常单</div>
  270. <div field="unusua_reson" width="160" visible="false" align="center" headeralign="center">异常原因</div>
  271. </div>
  272. </div>
  273. </div>
  274. <div id="supplier_all_grid_panel" class="mini-panel mini-panel-info" style="width: 100%; height: 50%; padding: 0px; margin: 10px 0">
  275. <a class="mini-button mini-button-primary" iconcls="icon-folder" onclick="exportAfterFn('supplier_all_grid')">导出</a>
  276. <div id="supplier_all_grid" class="mini-datagrid" sortmode="client" style="width: 100%; height: 100%;" showemptytext="true" showpager="false" showsummaryrow="false" ondrawsummarycell="onDrawSummaryCell"
  277. emptytext="暂无记录" url="../handler/sync.ashx?t=get_place_all_order_data">
  278. <div property="columns">
  279. <div field="ProductName" width="160" align="center" headeralign="center">品类</div>
  280. <div field="SupplierName" width="160" align="center" headeralign="center">车间</div>
  281. <div field="all" width="160" align="center" headeralign="center">全部</div>
  282. <div field="unusua" width="160" align="center" headeralign="center">异常单</div>
  283. <div field="normal" width="160" align="center" headeralign="center">正常单</div>
  284. <div field="noMatch" width="160" align="center" headeralign="center">未匹配单</div>
  285. <div field="shipmentRate" width="160" align="center" headeralign="center">出货率</div>
  286. </div>
  287. </div>
  288. </div>
  289. <div id="m_grid_panel" class="mini-panel mini-panel-info" style="width: 100%; height: 50%; padding: 0px; margin: 10px 0">
  290. <a class="mini-button mini-button-primary" iconcls="icon-folder" onclick="exportFn()">导出</a>
  291. <div id="m_grid" class="mini-datagrid" sortmode="client" style="width: 100%; height: 100%;" showemptytext="true" showpager="false" showsummaryrow="false" ondrawsummarycell="onDrawSummaryCell"
  292. emptytext="暂无记录" url="../handler/sync.ashx?t=get_erp_place_gather">
  293. <div property="columns">
  294. <div type="indexcolumn" width="20"></div>
  295. <div type="checkcolumn" width="20"></div>
  296. <div field="DesignerName" width="60" align="center" headeralign="center">下单员</div>
  297. <div field="AllOrder" datatype="int" width="60" align="center" headeralign="center" allowsort="true">总数量</div>
  298. </div>
  299. </div>
  300. </div>
  301. </div>
  302. </asp:Content>