educode_sales 0.9.11 → 0.9.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d534830cae9ef959ed6e065bb7a22a2053fdf5f6468b419cd6b2aa9d722510d
4
- data.tar.gz: dc65d43f30d446b7fe4d2a22af6d18a165fd0e5b14625919ef8232e6491a3916
3
+ metadata.gz: 518dc2f8c5a04be4e9865d17425ef4e3f51624fef4994db928233361ec5a9ac9
4
+ data.tar.gz: 1366d52aaac7c5ac23c4c495a61a46445ac5b99984dcdb2bede6f77bf7307f1e
5
5
  SHA512:
6
- metadata.gz: b37037787d835f6abc6d78f58f56ec5344779090f68583b04ff16f3f2e2946fdd53a043f1fcb829152c9c6402e90b610cf6e08b3d0f456053b8d3a553ae69063
7
- data.tar.gz: 8ad3b95b4c49d649a43ea1b7135dd9c8f1a2ea7761657471cb235e1b9ec3b9f8dc26ef5cbf83643e0140d7eba5bd5f6d899a631bc8b84a15885197041b5daac6
6
+ metadata.gz: bcd5a2e3f17724446da729dd715201550ad4b8719ec68238ad39ce87ca2b37d1fb2f993cdbae4ec7e71e2a8afa80958e08d469150f3a229ea8394f83d8def798
7
+ data.tar.gz: 4ba4ac0b4b3ba8d62b53152d6d58056245e07b6e32305aa1b8bc77dca6e05f5b53f2a7f510db69fab4dc26017a43245e6f615c3f5512297ee29dbd950c8dce6e
@@ -81,6 +81,8 @@ module EducodeSales
81
81
  @year = params[:q][:name].split("-")[1].present? ? params[:q][:name].split("-")[1] : ''
82
82
  end
83
83
 
84
+ @budget_stage_ids = Common.where(clazz: '商机阶段', name: ['初步接洽', '准备方案','已交方案', '已立项']).pluck(:id)
85
+
84
86
  if params[:q].present? && params[:q][:name].present? && params[:q][:name] == "(销售态势-" + @year + "-现有商机)"
85
87
  ids = Common.where(extras: %w[a_class b_class c_class d_class e_class o_class]).pluck(:id)
86
88
  if @year == '全部'
@@ -11,7 +11,7 @@ module EducodeSales
11
11
  x = Common.find_by(extras: EducodeSales::Common::XTYPE)&.id
12
12
  o = Common.find_by(extras: EducodeSales::Common::OTYPE)&.id
13
13
  if (@year == '全部')
14
- @business_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).sum(:total_amount).round(2)
14
+ @business_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ? AND educode_sales_follow_ups.clazz_id != ?", x, o).sum(:total_amount).round(2)
15
15
  stage_ids = Common.where(clazz: '商机阶段', name: ['已中标', '已签单', '已验收', '回款中', '服务中', '已结束']).pluck(:id)
16
16
  # 中标总金额, 已回款总金额
17
17
  total_return = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_follow_ups.stage_id IN (?)", stage_ids).select("sum(total_amount) AS total, sum(educode_sales_businesses.return_money) AS return_money")
@@ -34,7 +34,7 @@ module EducodeSales
34
34
  year_over_time = "#{@year}-12-31 23:59:59"
35
35
 
36
36
  @sale_trend = SaleTrend.find_or_create_by(year: @year)
37
- @business_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_follow_ups.year = ?", @year).sum(:total_amount).round(2)
37
+ @business_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ? AND educode_sales_follow_ups.clazz_id != ?", x, o).where("educode_sales_follow_ups.year = ?", @year).sum(:total_amount).round(2)
38
38
  stage_ids = Common.where(clazz: '商机阶段', name: ['已中标', '已签单', '已验收', '回款中', '服务中', '已结束']).pluck(:id)
39
39
 
40
40
  # 中标总金额, 已回款总金额
@@ -214,20 +214,25 @@ module EducodeSales
214
214
  end
215
215
  format.js do
216
216
  x = EducodeSales::Common.find_by(extras: EducodeSales::Common::XTYPE)&.id
217
+ o = Common.find_by(extras: EducodeSales::Common::OTYPE)&.id
217
218
  provinces = EducodeSales::Common.where(clazz: 'area').pluck(:name)
218
219
  if params[:business_count_type] == 'money' || params[:business_count_type].blank?
220
+ data = provinces.map { |province|
221
+ if params[:business_type].blank?
222
+ Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id != ? AND educode_sales_follow_ups.clazz_id != ?", x, o).sum(:total_amount).round(2)
223
+ else
224
+ Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id = ?", params[:business_type]).sum(:total_amount).round(2)
225
+ end
226
+ }
227
+ if params[:sort_by].present?
228
+ data.sort! { |a, b| params[:sort_by] == 'asc' ? a <=> b : b <=> a }
229
+ end
219
230
  @business_data = {
220
231
  labels: provinces,
221
232
  datasets: [
222
233
  {
223
234
  label: "商机总额",
224
- data: provinces.map { |province|
225
- if params[:business_type].blank?
226
- Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id != ?", x).sum(:total_amount).round(2)
227
- else
228
- Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id = ?", params[:business_type]).sum(:total_amount).round(2)
229
- end
230
- },
235
+ data: data,
231
236
  backgroundColor: SaleTrend::COLORS[0],
232
237
  borderColor: SaleTrend::COLORS[0],
233
238
  borderWidth: 1
@@ -235,18 +240,22 @@ module EducodeSales
235
240
  ]
236
241
  }
237
242
  else
243
+ data = provinces.map { |province|
244
+ if params[:business_type].blank?
245
+ Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id != ? AND educode_sales_follow_ups.clazz_id != ?", x, o).count
246
+ else
247
+ Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id = ?", params[:business_type]).count
248
+ end
249
+ }
250
+ if params[:sort_by].present?
251
+ data.sort! { |a, b| params[:sort_by] == 'asc' ? a <=> b : b <=> a }
252
+ end
238
253
  @business_data = {
239
254
  labels: provinces,
240
255
  datasets: [
241
256
  {
242
257
  label: "商机数量",
243
- data: provinces.map { |province|
244
- if params[:business_type].blank?
245
- Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id != ?", x).count
246
- else
247
- Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id = ?", params[:business_type]).count
248
- end
249
- },
258
+ data: data,
250
259
  backgroundColor: SaleTrend::COLORS[0],
251
260
  borderColor: SaleTrend::COLORS[0],
252
261
  borderWidth: 1
@@ -5,7 +5,7 @@
5
5
  <div class="layui-inline">
6
6
  <label class="layui-form-label required">活动名称</label>
7
7
  <div class="layui-input-block">
8
- <input type="text" name="name" required lay-verify="required" autocomplete="off"
8
+ <input type="text" name="name" required lay-verify="required"
9
9
  class="layui-input" value="<%= @activity.name %>">
10
10
  </div>
11
11
  </div>
@@ -19,7 +19,7 @@
19
19
  <div class="layui-inline">
20
20
  <label class="layui-form-label required">活动天数</label>
21
21
  <div class="layui-input-block">
22
- <input type="text" name="days" required lay-verify="required" autocomplete="off"
22
+ <input type="text" name="days" required lay-verify="required"
23
23
  class="layui-input" value="<%= @activity.days %>">
24
24
  </div>
25
25
  </div>
@@ -5,7 +5,7 @@
5
5
  <div class="layui-inline">
6
6
  <label class="layui-form-label required">活动名称</label>
7
7
  <div class="layui-input-block">
8
- <input type="text" name="name" required lay-verify="required" autocomplete="off" placeholder="请输入"
8
+ <input type="text" name="name" required lay-verify="required" placeholder="请输入"
9
9
  class="layui-input" id="inputFocus">
10
10
  </div>
11
11
  </div>
@@ -18,7 +18,7 @@
18
18
  <div class="layui-inline">
19
19
  <label class="layui-form-label required">活动天数</label>
20
20
  <div class="layui-input-block">
21
- <input type="text" name="days" required lay-verify="required" autocomplete="off"
21
+ <input type="text" name="days" required lay-verify="required"
22
22
  class="layui-input">
23
23
  </div>
24
24
  </div>
@@ -4,13 +4,13 @@
4
4
  <div class="layui-inline">
5
5
  <label class="layui-form-label">所属商机</label>
6
6
  <div class="layui-input-inline">
7
- <input type="text" name="name" autocomplete="off" class="layui-input">
7
+ <input type="text" name="name" class="layui-input">
8
8
  </div>
9
9
  </div>
10
10
  <div class="layui-inline">
11
11
  <label class="layui-form-label">单位</label>
12
12
  <div class="layui-input-inline">
13
- <input type="text" name="department" autocomplete="off" class="layui-input">
13
+ <input type="text" name="department" class="layui-input">
14
14
  </div>
15
15
  </div>
16
16
  <div class="layui-inline">
@@ -34,7 +34,7 @@
34
34
  <div class="layui-inline">
35
35
  <label class="layui-form-label">最新进展</label>
36
36
  <div class="layui-input-inline">
37
- <input type="text" name="description" autocomplete="off" class="layui-input">
37
+ <input type="text" name="description" class="layui-input">
38
38
  </div>
39
39
  </div>
40
40
 
@@ -17,14 +17,14 @@
17
17
  <div class="layui-inline">
18
18
  <label class="layui-form-label">商机名称</label>
19
19
  <div class="layui-input-inline">
20
- <input type="text" name="name" autocomplete="off" class="layui-input" value="<%=params[:name] %>">
21
- <input type="text" style="display: none" name="place_id" autocomplete="off" class="layui-input" value="<%=params[:place_id] %>">
20
+ <input type="text" name="name" class="layui-input" value="<%=params[:name] %>">
21
+ <input type="text" style="display: none" name="place_id" class="layui-input" value="<%=params[:place_id] %>">
22
22
  </div>
23
23
  </div>
24
24
  <div class="layui-inline">
25
25
  <label class="layui-form-label">单位</label>
26
26
  <div class="layui-input-inline">
27
- <input type="text" name="department" autocomplete="off" value="<%=params[:school] %>" class="layui-input">
27
+ <input type="text" name="department" value="<%=params[:school] %>" class="layui-input">
28
28
  </div>
29
29
  </div>
30
30
  <div class="layui-inline">
@@ -92,7 +92,9 @@
92
92
  </div>
93
93
  </form>
94
94
  </div>
95
- <table class="layui-hide" id="businesses_table" lay-filter="businesses_table"></table>
95
+ <div id="businesses_table_wraper">
96
+ <table class="layui-hide" id="businesses_table" lay-filter="businesses_table"></table>
97
+ </div>
96
98
  </div>
97
99
  </div>
98
100
  </div>
@@ -178,7 +180,7 @@
178
180
  miniPage = layui.miniPage,
179
181
  dropdown = layui.dropdown,
180
182
  laydate = layui.laydate;
181
-
183
+ var openWH = miniPage.getOpenWidthHeight();
182
184
  laydate.render({
183
185
  elem: '#date',
184
186
  range: true
@@ -188,12 +190,10 @@
188
190
  range: true
189
191
  });
190
192
 
191
- // function hn() {
192
- // $("#search_bt").trigger("click");
193
- // }
194
- //
195
- // $(document).ready(function () {
196
- // window.onload = hn;
193
+ // $('#businesses_table_wraper .layui-table-body').on('scroll', function(e) {
194
+ // var leftPx = $(e.target).scrollLeft(); //获取表格body,滚动条距离左边的长度
195
+ // var left = 'translateX(-' + leftPx + 'px)';
196
+ // $('#businesses_table_wraper .layui-table-header .layui-table').css('transform', left); //设置表格header的内容反向(-)移动
197
197
  // });
198
198
 
199
199
  var is_show =
@@ -262,7 +262,7 @@
262
262
 
263
263
  var data = form.val("search_form");
264
264
  data.business_type = "<%=params[:clazz_id] %>";
265
-
265
+
266
266
 
267
267
  table = layui.table;
268
268
  var cols_table = [
@@ -375,6 +375,13 @@
375
375
  sort: true,
376
376
  hide: gon.filter.bidded_date
377
377
  },
378
+ {
379
+ field: 'budget_money',
380
+ width: 105,
381
+ title: '预算金额',
382
+ sort: true,
383
+ hide: gon.filter.budget_money
384
+ },
378
385
  {
379
386
  field: 'signed_date',
380
387
  width: 105,
@@ -498,10 +505,18 @@
498
505
  limits: [10,15,20,30,40,50,60,70,80,90],
499
506
  page: true,
500
507
  skin: 'line',
501
- done: function (res) {
502
- exportData=res.data;
503
- drowpdwonRender()
504
- export_drowpdwonRender()
508
+ done: function (res, curr, coun) {
509
+ exportData=res.data;
510
+ drowpdwonRender();
511
+ export_drowpdwonRender();
512
+ // let headerTop = $('.layui-table-header').offset().top; //获取表格头到文档顶部的距离
513
+ // $(".layuimini-content-page").scroll(function () {
514
+ // if ((headerTop - $(".layuimini-content-page").scrollTop()) < -185) { //超过了
515
+ // $('#businesses_table_wraper .layui-table-header').addClass('table-header-fixed'); //添加样式,固定住表头
516
+ // } else { //没超过
517
+ // $('#businesses_table_wraper .layui-table-header').removeClass('table-header-fixed'); //移除样式
518
+ // }
519
+ // });
505
520
  }
506
521
  });
507
522
 
@@ -26,7 +26,7 @@ json.data do
26
26
  break
27
27
  end
28
28
  end
29
-
29
+ json.budget_money d.follow_ups.where(stage_id: @budget_stage_ids).order("created_at desc").first&.total_amount&.round(2) || 0
30
30
  json.area d.department.school.province
31
31
  school_property = d.department.school.school_property
32
32
  property = []
@@ -4,7 +4,7 @@
4
4
  <div class="layui-inline">
5
5
  <label class="layui-form-label">客户名称</label>
6
6
  <div class="layui-input-inline">
7
- <input type="text" name="name" autocomplete="off" class="layui-input">
7
+ <input type="text" name="name" class="layui-input">
8
8
  </div>
9
9
  </div>
10
10
  <div class="layui-inline">
@@ -4,13 +4,13 @@
4
4
  <div class="layui-inline">
5
5
  <label class="layui-form-label">所属商机</label>
6
6
  <div class="layui-input-inline">
7
- <input type="text" name="business" autocomplete="off" class="layui-input">
7
+ <input type="text" name="business" class="layui-input">
8
8
  </div>
9
9
  </div>
10
10
  <div class="layui-inline">
11
11
  <label class="layui-form-label">单位</label>
12
12
  <div class="layui-input-inline">
13
- <input type="text" name="school" autocomplete="off" class="layui-input">
13
+ <input type="text" name="school" class="layui-input">
14
14
  </div>
15
15
  </div>
16
16
  <div class="layui-inline">
@@ -4,7 +4,7 @@
4
4
  <div class="layui-inline">
5
5
  <label class="layui-form-label required">渠道名称</label>
6
6
  <div class="layui-input-block" style="line-height: 36px;">
7
- <input type="text" name="name" id="name" required lay-verify="required" autocomplete="off"
7
+ <input type="text" name="name" id="name" required lay-verify="required"
8
8
  class="layui-input" value="<%= @place.name %>">
9
9
  <%#= text_field_tag(:name, @place.name) %>
10
10
  </div>
@@ -4,7 +4,7 @@
4
4
  <div class="layui-inline">
5
5
  <label class="layui-form-label">渠道名称</label>
6
6
  <div class="layui-input-inline">
7
- <input type="text" name="name" autocomplete="off" class="layui-input">
7
+ <input type="text" name="name" class="layui-input">
8
8
  </div>
9
9
  </div>
10
10
  <div class="layui-inline">
@@ -4,7 +4,7 @@
4
4
  <div class="layui-inline">
5
5
  <label class="layui-form-label required">渠道名称</label>
6
6
  <div class="layui-input-block">
7
- <input type="text" name="name" required lay-verify="required" autocomplete="off"
7
+ <input type="text" name="name" required lay-verify="required"
8
8
  class="layui-input" id="inputFocus">
9
9
  </div>
10
10
  </div>
@@ -15,6 +15,12 @@
15
15
  <%= select_tag "business_type", options_for_select(EducodeSales::Common.where(clazz: 'business_type').where.not(extras: "x_class").pluck(:name, :id), params[:business_type]), { 'lay-filter': 'clazz_id', include_blank: true } %>
16
16
  </div>
17
17
  </div>
18
+ <div class="layui-inline m-t-10">
19
+ <label class="layui-form-label">顺序</label>
20
+ <div class="layui-input-inline">
21
+ <%= select_tag "sort_by", options_for_select([['', ''], ['升序', 'asc'], ['降序', 'desc']], params[:sort_by]), { include_blank: true } %>
22
+ </div>
23
+ </div>
18
24
  <div class="layui-inline">
19
25
  <button type="button" id="search_bt" class="business_bt layui-btn layui-btn-primary" lay-submit lay-filter="business_area">确定
20
26
  </button>
@@ -10,7 +10,7 @@
10
10
  <div class="layui-inline">
11
11
  <label class="layui-form-label">用户名</label>
12
12
  <div class="layui-input-inline large-select">
13
- <input type="text" class="layui-input" id="name" autocomplete="off" name="name">
13
+ <input type="text" class="layui-input" id="name" name="name">
14
14
  </div>
15
15
  </div>
16
16
  <div class="layui-inline">
@@ -4,13 +4,13 @@
4
4
  <div class="layui-inline">
5
5
  <label class="layui-form-label">教师姓名</label>
6
6
  <div class="layui-input-inline">
7
- <input type="text" name="name" autocomplete="off" class="layui-input">
7
+ <input type="text" name="name" class="layui-input">
8
8
  </div>
9
9
  </div>
10
10
  <div class="layui-inline">
11
11
  <label class="layui-form-label">单位</label>
12
12
  <div class="layui-input-inline">
13
- <input type="text" name="school" autocomplete="off" class="layui-input">
13
+ <input type="text" name="school" class="layui-input">
14
14
  </div>
15
15
  </div>
16
16
  <div class="layui-inline">
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.9.11'
2
+ VERSION = '0.9.12'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: educode_sales
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.11
4
+ version: 0.9.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-06 00:00:00.000000000 Z
11
+ date: 2022-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails