educode_sales 1.10.31 → 1.10.34
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/educode_sales/businesses_controller.rb +27 -1
- data/app/controllers/educode_sales/follow_ups_controller.rb +4 -0
- data/app/controllers/educode_sales/money_plan_records_controller.rb +40 -29
- data/app/controllers/educode_sales/sale_trends_controller.rb +18 -3
- data/app/views/educode_sales/businesses/_follows.html.erb +11 -0
- data/app/views/educode_sales/businesses/index.html.erb +31 -4
- data/app/views/educode_sales/follow_ups/index.json.jbuilder +5 -0
- data/app/views/educode_sales/ideas/_index.html.erb +2 -2
- data/app/views/educode_sales/ideas/edit.html.erb +1 -1
- data/app/views/educode_sales/ideas/new.html.erb +1 -1
- data/app/views/educode_sales/money_plan_records/_index.html.erb +17 -1
- data/app/views/educode_sales/money_plan_records/edit.html.erb +38 -1
- data/app/views/educode_sales/money_plan_records/index.json.jbuilder +5 -0
- data/app/views/educode_sales/money_plans/index.json.jbuilder +1 -1
- data/lib/educode_sales/version.rb +1 -1
- metadata +6 -7
- data/app/assets/images/educode_sales/indexlogo.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52b8f7e5581a123fa5c31a62315e82bec3319527020fa03913bffcfd1042b06e
|
4
|
+
data.tar.gz: 11e3cfc12f2f4c596d89eb4688342272eaafea877c617b5402ecc577911fcb62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 954e4d382776f70d03b3e97fac74cc2d1bd28d1abb712ca5a438910290463608a90dc52404f400e729d80085c097f50c7fd0e92e188b8b8789ee427c3b861485
|
7
|
+
data.tar.gz: 908bc050383f64a1b199f6444094b5c72fe901f2a8b28ca6e8cb950ce7b6edeec2aac2c4d5fce52f26d32f76ca4345ee1114b154f33bf89efe11714e871b9f2c
|
@@ -133,7 +133,19 @@ module EducodeSales
|
|
133
133
|
elsif params[:q][:clazz] == 'delete_list'
|
134
134
|
@businesses = Business.unscoped.where(state_id: [1, 3])
|
135
135
|
elsif params[:q][:clazz] == 'plan_year'
|
136
|
-
@
|
136
|
+
if @current_admin.is_admin?
|
137
|
+
@businesses = Business
|
138
|
+
else
|
139
|
+
# 年度计划,按负责区域和专项客户类型查看对应的年度商机
|
140
|
+
school_ids = School.where(province: @current_admin.areas.pluck(:name)).pluck(:id) + StaffSchool.where(staff_id: @current_admin.id).pluck(:school_id)
|
141
|
+
if @current_admin.staff_school_tags.present?
|
142
|
+
# 如果设置专项客户类型,则视为专项经理,根据专项客户查看对应商机
|
143
|
+
school_ids += School.joins(:school_tags).where("school_tags.id in (?)", @current_admin.staff_school_tags.pluck(:school_tag_id)).pluck(:id)
|
144
|
+
end
|
145
|
+
@businesses = Business.joins("JOIN departments ON educode_sales_businesses.department_id = departments.id").where("departments.school_id in (?) ", school_ids.uniq)
|
146
|
+
end
|
147
|
+
|
148
|
+
@businesses = @businesses.joins(:last_follow_up).where("educode_sales_follow_ups.plan_a_date > :year OR educode_sales_follow_ups.plan_return_date > :year OR educode_sales_follow_ups.invitation_at > :year", year: Time.now.beginning_of_year)
|
137
149
|
end
|
138
150
|
else
|
139
151
|
if @current_admin.is_admin?
|
@@ -293,6 +305,20 @@ module EducodeSales
|
|
293
305
|
JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
|
294
306
|
").where("educode_sales_follow_ups.invitation_at > ? AND educode_sales_follow_ups.invitation_at < ?", date[0] + '00:00:00', date[1] + '23:59:59')
|
295
307
|
end
|
308
|
+
|
309
|
+
if params[:q].present? && params[:q][:plan_return_date].present?
|
310
|
+
date = params[:q][:plan_return_date].split(" - ")
|
311
|
+
@businesses = @businesses.joins("
|
312
|
+
JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
|
313
|
+
").where("educode_sales_follow_ups.plan_return_date > ? AND educode_sales_follow_ups.plan_return_date < ?", date[0] + '00:00:00', date[1] + '23:59:59')
|
314
|
+
end
|
315
|
+
|
316
|
+
if params[:q].present? && params[:q][:plan_a_date].present?
|
317
|
+
date = params[:q][:plan_a_date].split(" - ")
|
318
|
+
@businesses = @businesses.joins("
|
319
|
+
JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
|
320
|
+
").where("educode_sales_follow_ups.plan_a_date > ? AND educode_sales_follow_ups.plan_a_date < ?", date[0] + '00:00:00', date[1] + '23:59:59')
|
321
|
+
end
|
296
322
|
|
297
323
|
# 根据编号获取商机
|
298
324
|
if params[:q].present? && params[:q][:number].present?
|
@@ -55,6 +55,10 @@ module EducodeSales
|
|
55
55
|
date = params[:q][:follows_date].split(" - ")
|
56
56
|
@follow_ups = @follow_ups.where("educode_sales_follow_ups.created_at > ? AND educode_sales_follow_ups.created_at < ?", date[0], date[1] + '23:59:59')
|
57
57
|
end
|
58
|
+
if params[:q].present? && params[:q][:property].present?
|
59
|
+
# 客户类型
|
60
|
+
@follow_ups = @follow_ups.joins(business: [department: [school: :school_tags]]).where("school_tags.id = ?", params[:q][:property])
|
61
|
+
end
|
58
62
|
if params[:q].present? && params[:q][:staff_id].present?
|
59
63
|
@follow_ups = @follow_ups.where(staff_id: params[:q][:staff_id])
|
60
64
|
end
|
@@ -57,6 +57,11 @@ module EducodeSales
|
|
57
57
|
|
58
58
|
end
|
59
59
|
|
60
|
+
if params[:q].present? && params[:q][:property].present?
|
61
|
+
# 客户类型
|
62
|
+
@money_plan_records = @money_plan_records.joins(business: [department: [school: :school_tags]]).where("school_tags.id = ?", params[:q][:property])
|
63
|
+
end
|
64
|
+
|
60
65
|
if params[:q].present? && params[:q][:staff_manages].present?
|
61
66
|
# 销售经理
|
62
67
|
@money_plan_records = @money_plan_records.joins(:business).joins("
|
@@ -161,34 +166,6 @@ module EducodeSales
|
|
161
166
|
businesses << business
|
162
167
|
money_plan_record.update(business_id: business.id)
|
163
168
|
# business.update(return_money: claim.money_plan.money_plan_claims.sum(:amount))
|
164
|
-
|
165
|
-
|
166
|
-
# # 生成跟进信息
|
167
|
-
# last_follow_up = business.last_follow_up
|
168
|
-
# if last_follow_up.present?
|
169
|
-
# follow_up = last_follow_up.dup
|
170
|
-
|
171
|
-
# follow_up.description = "认领了回款记录"
|
172
|
-
|
173
|
-
# follow_up.staff = @current_admin
|
174
|
-
|
175
|
-
# last_follow_up.assign_follow_ups.each do |d|
|
176
|
-
# follow_up.assign_follow_ups.build(staff_id: d.staff_id)
|
177
|
-
# end
|
178
|
-
|
179
|
-
# if follow_up.save!
|
180
|
-
# last_follow_up.key_person.each do |d|
|
181
|
-
# key_person = d.dup
|
182
|
-
# key_person.follow_up_id = follow_up.id
|
183
|
-
# key_person.save
|
184
|
-
# end
|
185
|
-
# last_follow_up.money_plans.each do |d|
|
186
|
-
# d.follow_up_id = follow_up.id
|
187
|
-
# d.save
|
188
|
-
# end
|
189
|
-
# business.update(last_follow_up_id: follow_up.id)
|
190
|
-
# end
|
191
|
-
# end
|
192
169
|
end
|
193
170
|
end
|
194
171
|
businesses.uniq.each do |d|
|
@@ -198,6 +175,40 @@ module EducodeSales
|
|
198
175
|
staff_manage_ids = d&.last_follow_up&.assign_follow_ups.present? ? d.last_follow_up.assign_follow_ups.pluck(:staff_id) : [d.staff_id]
|
199
176
|
common_id = EducodeSales::Common.find_by(clazz: '计划类型', name: '回款计划')&.id
|
200
177
|
EducodeSales::SalePlan.where(month: Time.now.beginning_of_month, business: d, staff_id: staff_manage_ids, common_id: common_id).update_all(finish_rate: 100)
|
178
|
+
|
179
|
+
|
180
|
+
# 生成跟进信息
|
181
|
+
last_follow_up = d.last_follow_up
|
182
|
+
if last_follow_up.present?
|
183
|
+
follow_up = last_follow_up.dup
|
184
|
+
follow_up.description = "认领了回款记录"
|
185
|
+
follow_up.staff = @current_admin
|
186
|
+
|
187
|
+
last_follow_up.assign_follow_ups.each do |d|
|
188
|
+
follow_up.assign_follow_ups.build(staff_id: d.staff_id)
|
189
|
+
end
|
190
|
+
|
191
|
+
if follow_up.save!
|
192
|
+
last_follow_up.key_person.each do |d|
|
193
|
+
key_person = d.dup
|
194
|
+
key_person.follow_up_id = follow_up.id
|
195
|
+
key_person.save
|
196
|
+
end
|
197
|
+
|
198
|
+
last_follow_up.money_plans.each do |d|
|
199
|
+
money = d.dup
|
200
|
+
money.staff = @current_admin
|
201
|
+
money.follow_up_id = follow_up.id
|
202
|
+
money.save
|
203
|
+
end
|
204
|
+
|
205
|
+
# 合同里签到日期全同步到最新跟进
|
206
|
+
last_follow_up.contract_date_lists.update_all(follow_up_id: follow_up.id)
|
207
|
+
|
208
|
+
follow_up.follow_up_trends.create(clazz: '跟进信息', content: "认领了回款记录", staff_id: @current_admin.id)
|
209
|
+
d.update(last_follow_up_id: follow_up.id)
|
210
|
+
end
|
211
|
+
end
|
201
212
|
end
|
202
213
|
render_success
|
203
214
|
end
|
@@ -205,7 +216,7 @@ module EducodeSales
|
|
205
216
|
private
|
206
217
|
|
207
218
|
def money_plan_record_params
|
208
|
-
params.permit(:amount, :payer_name, :date_at)
|
219
|
+
params.permit(:amount, :payer_name, :date_at, :business_id)
|
209
220
|
end
|
210
221
|
end
|
211
222
|
end
|
@@ -23,7 +23,15 @@ module EducodeSales
|
|
23
23
|
@service_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_follow_ups.stage_id IN (?)", s_stage_ids).sum(:total_amount).round(2)
|
24
24
|
@actual_service_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_follow_ups.stage_id IN (?)", s_stage_ids).sum(:actual_amount).round(2)
|
25
25
|
|
26
|
-
|
26
|
+
|
27
|
+
@return_amount = EducodeSales::MoneyPlanRecord.from("(
|
28
|
+
SELECT distinct(educode_sales_money_plan_records.id), educode_sales_money_plan_records.amount
|
29
|
+
FROM educode_sales_money_plan_records
|
30
|
+
JOIN educode_sales_money_plan_claims ON educode_sales_money_plan_claims.money_plan_record_id = educode_sales_money_plan_records.id
|
31
|
+
GROUP BY educode_sales_money_plan_records.id
|
32
|
+
) AS educode_sales_money_plan_records
|
33
|
+
").sum("amount").round(2)
|
34
|
+
# @return_amount = Business.joins(last_follow_up: :money_plans).where("educode_sales_follow_ups.clazz_id != ?", x).where.not("educode_sales_money_plans.clazz!= ?", 1).sum(:amount).round(2)
|
27
35
|
# # @return_amount = total_return[0]['return_money']&.round(2) || 0
|
28
36
|
# @receivable_amount = @goal_amount - @return_amount
|
29
37
|
|
@@ -50,8 +58,15 @@ module EducodeSales
|
|
50
58
|
s_stage_ids = Common.where(clazz: '商机阶段', name: ['已签单', '已验收', '回款中', '服务中', '已结束']).pluck(:id)
|
51
59
|
@service_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_follow_ups.signed_date >= ? AND educode_sales_follow_ups.signed_date <= ? AND educode_sales_follow_ups.stage_id IN (?)", "#{@year}-01-01", "#{@year}-12-31", s_stage_ids).sum(:total_amount).round(2)
|
52
60
|
@actual_service_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_follow_ups.signed_date >= ? AND educode_sales_follow_ups.signed_date <= ? AND educode_sales_follow_ups.stage_id IN (?)", "#{@year}-01-01", "#{@year}-12-31", s_stage_ids).sum(:actual_amount).round(2)
|
53
|
-
@return_amount = Business.joins(last_follow_up: :money_plans).where("educode_sales_follow_ups.clazz_id != ?", x).where.not("educode_sales_money_plans.clazz!= ?", 1).where("educode_sales_money_plans.date_at >= ? AND educode_sales_money_plans.date_at <= ? ", year_time, year_over_time).sum(:amount).round(2)
|
54
|
-
|
61
|
+
# @return_amount = Business.joins(last_follow_up: :money_plans).where("educode_sales_follow_ups.clazz_id != ?", x).where.not("educode_sales_money_plans.clazz!= ?", 1).where("educode_sales_money_plans.date_at >= ? AND educode_sales_money_plans.date_at <= ? ", year_time, year_over_time).sum(:amount).round(2)
|
62
|
+
|
63
|
+
@return_amount = EducodeSales::MoneyPlanRecord.from("(
|
64
|
+
SELECT distinct(educode_sales_money_plan_records.id), educode_sales_money_plan_records.amount, date_at
|
65
|
+
FROM educode_sales_money_plan_records
|
66
|
+
JOIN educode_sales_money_plan_claims ON educode_sales_money_plan_claims.money_plan_record_id = educode_sales_money_plan_records.id
|
67
|
+
GROUP BY educode_sales_money_plan_records.id
|
68
|
+
) AS educode_sales_money_plan_records
|
69
|
+
").where("educode_sales_money_plan_records.date_at >= ? AND educode_sales_money_plan_records.date_at <= ? ", year_time, year_over_time).sum(:amount).round(2)
|
55
70
|
# 往年累计已中标合同
|
56
71
|
# @former_goal_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_follow_ups.bidded_date <= ? AND educode_sales_follow_ups.stage_id IN (?)", "#{@year}-12-31", stage_ids).sum(:actual_amount).round(2)
|
57
72
|
# # 往年累计已回款
|
@@ -13,6 +13,12 @@
|
|
13
13
|
<input type="text" name="department" class="layui-input">
|
14
14
|
</div>
|
15
15
|
</div>
|
16
|
+
<div class="layui-inline">
|
17
|
+
<label class="layui-form-label">客户类型</label>
|
18
|
+
<div class="layui-input-inline">
|
19
|
+
<%= select_tag "property", options_for_select(SchoolTag.where(for_missions: true).pluck(:name, :id)), { include_blank: true } %>
|
20
|
+
</div>
|
21
|
+
</div>
|
16
22
|
<div class="layui-inline">
|
17
23
|
<label class="layui-form-label">销售人员</label>
|
18
24
|
<div class="layui-input-inline">
|
@@ -121,6 +127,11 @@
|
|
121
127
|
title: '单位',
|
122
128
|
templet:'#school'
|
123
129
|
},
|
130
|
+
{
|
131
|
+
field: 'property',
|
132
|
+
width: 150,
|
133
|
+
title: '客户类型',
|
134
|
+
},
|
124
135
|
{
|
125
136
|
field: 'clazz',
|
126
137
|
width: 80,
|
@@ -80,11 +80,12 @@
|
|
80
80
|
</div>
|
81
81
|
</div>
|
82
82
|
<div class="layui-inline show_item" style="<%= params[:name] || params[:type] ? '' : 'display:none;' %>">
|
83
|
-
<label class="layui-form-label">计划投标时间</label>
|
83
|
+
<label class="layui-form-label" style="width: 120px;">计划投标时间</label>
|
84
84
|
<div class="layui-input-inline">
|
85
85
|
<input type="text" class="layui-input" id="invitation_at" name="invitation_at" placeholder=" - " autocomplete="off">
|
86
86
|
</div>
|
87
87
|
</div>
|
88
|
+
|
88
89
|
<div class="layui-inline show_item" style="<%= params[:name] || params[:type] ? '' : 'display:none;' %>">
|
89
90
|
<label class="layui-form-label">中标时间</label>
|
90
91
|
<div class="layui-input-inline">
|
@@ -129,6 +130,18 @@
|
|
129
130
|
<%= select_tag "property", options_for_select(SchoolTag.where(for_missions: true).pluck(:name, :id)), { include_blank: true } %>
|
130
131
|
</div>
|
131
132
|
</div>
|
133
|
+
<div class="layui-inline show_item" style="<%= params[:name] || params[:type] ? '' : 'display:none;' %>">
|
134
|
+
<label class="layui-form-label" style="width: 120px;">计划A类时间</label>
|
135
|
+
<div class="layui-input-inline">
|
136
|
+
<input type="text" class="layui-input" id="plan_a_date" name="plan_a_date" placeholder=" - " autocomplete="off">
|
137
|
+
</div>
|
138
|
+
</div>
|
139
|
+
<div class="layui-inline show_item" style="<%= params[:name] || params[:type] ? '' : 'display:none;' %>">
|
140
|
+
<label class="layui-form-label" style="width: 120px;">计划回款时间</label>
|
141
|
+
<div class="layui-input-inline">
|
142
|
+
<input type="text" class="layui-input" id="plan_return_date" name="plan_return_date" placeholder=" - " autocomplete="off">
|
143
|
+
</div>
|
144
|
+
</div>
|
132
145
|
<div class="layui-inline">
|
133
146
|
<button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
|
134
147
|
</button>
|
@@ -265,7 +278,17 @@
|
|
265
278
|
range: true,
|
266
279
|
value: gon.bidded_date
|
267
280
|
});
|
268
|
-
|
281
|
+
|
282
|
+
laydate.render({
|
283
|
+
elem: '#plan_a_date',
|
284
|
+
range: true,
|
285
|
+
});
|
286
|
+
|
287
|
+
laydate.render({
|
288
|
+
elem: '#plan_return_date',
|
289
|
+
range: true,
|
290
|
+
});
|
291
|
+
|
269
292
|
|
270
293
|
form.on('select(source_id_select)', function(data){
|
271
294
|
setSourceWay(data.value);
|
@@ -535,6 +558,7 @@
|
|
535
558
|
width: 150,
|
536
559
|
title: '计划A类金额',
|
537
560
|
sort: true,
|
561
|
+
totalRow: true,
|
538
562
|
hide: gon.filter.plan_a_money
|
539
563
|
},
|
540
564
|
{
|
@@ -549,6 +573,7 @@
|
|
549
573
|
width: 150,
|
550
574
|
title: '计划投标金额',
|
551
575
|
sort: true,
|
576
|
+
totalRow: true,
|
552
577
|
hide: gon.filter.invitation_money
|
553
578
|
},
|
554
579
|
{
|
@@ -563,6 +588,7 @@
|
|
563
588
|
width: 135,
|
564
589
|
title: '计划回款金额',
|
565
590
|
sort: true,
|
591
|
+
totalRow: true,
|
566
592
|
hide: gon.filter.plan_return_money
|
567
593
|
},
|
568
594
|
{
|
@@ -1119,8 +1145,9 @@
|
|
1119
1145
|
form.on('submit(reset_business_search)', function (data) {
|
1120
1146
|
var field = data.field;
|
1121
1147
|
form.val('search_form', {
|
1122
|
-
name: '', department: '', staff_id: '', business_type: '', business_step: '',
|
1123
|
-
place_id: '', date: '', area: '', invitation_at: '', business_year: '', number: ''
|
1148
|
+
name: '', department: '', staff_id: '', business_type: '', business_step: '', bidded_date: '', source_way: '',
|
1149
|
+
place_id: '', date: '', area: '', invitation_at: '', business_year: '', number: '', property: '', level_id: '', source_name: '',
|
1150
|
+
invitation_money: '', plan_a_date: '', plan_a_money: '', plan_return_date: '', plan_return_money: ''
|
1124
1151
|
})
|
1125
1152
|
business_type_list.setValue([])
|
1126
1153
|
business_step_list.setValue([])
|
@@ -17,6 +17,11 @@ json.data do
|
|
17
17
|
json.tel d.key_person.pluck(:tel).select { |d| d.present? }.join("、")
|
18
18
|
json.key_people d.key_person.map { |d| d.name }.join("、")# key_people(teacher_ids)
|
19
19
|
|
20
|
+
if d.business.department&.school
|
21
|
+
json.property d.business.department.school.school_tags.where(for_missions: true).pluck(:name).join("、")
|
22
|
+
else
|
23
|
+
json.property ''
|
24
|
+
end
|
20
25
|
end
|
21
26
|
end
|
22
27
|
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</div>
|
57
57
|
</div>
|
58
58
|
<div class="layui-inline">
|
59
|
-
<label class="layui-form-label"
|
59
|
+
<label class="layui-form-label">商机名称</label>
|
60
60
|
<div class="layui-input-inline">
|
61
61
|
<input type="text" class="layui-input" id="name" name="name" placeholder=" - " autocomplete="off">
|
62
62
|
</div>
|
@@ -167,7 +167,7 @@
|
|
167
167
|
{
|
168
168
|
field: 'name',
|
169
169
|
width: 160,
|
170
|
-
title: '
|
170
|
+
title: '商机名称',
|
171
171
|
hide: gon.filter.name
|
172
172
|
},
|
173
173
|
{
|
@@ -26,6 +26,12 @@
|
|
26
26
|
<input type="text" name="school" class="layui-input">
|
27
27
|
</div>
|
28
28
|
</div>
|
29
|
+
<div class="layui-inline">
|
30
|
+
<label class="layui-form-label">客户类型</label>
|
31
|
+
<div class="layui-input-inline">
|
32
|
+
<%= select_tag "property", options_for_select(SchoolTag.where(for_missions: true).pluck(:name, :id)), { include_blank: true } %>
|
33
|
+
</div>
|
34
|
+
</div>
|
29
35
|
<div class="layui-inline">
|
30
36
|
<label class="layui-form-label required">匹配状态</label>
|
31
37
|
<div class="layui-input-inline">
|
@@ -140,6 +146,11 @@
|
|
140
146
|
width: 220,
|
141
147
|
title: '对应客户名称',
|
142
148
|
},
|
149
|
+
{
|
150
|
+
field: 'property',
|
151
|
+
width: 150,
|
152
|
+
title: '客户类型',
|
153
|
+
},
|
143
154
|
{
|
144
155
|
field: 'state',
|
145
156
|
width: 120,
|
@@ -205,7 +216,12 @@
|
|
205
216
|
clazz: "",
|
206
217
|
professional_title: "",
|
207
218
|
school: "",
|
208
|
-
business: ""
|
219
|
+
business: "",
|
220
|
+
property: "",
|
221
|
+
date_at: "",
|
222
|
+
amount: "",
|
223
|
+
payer_name: "",
|
224
|
+
state: ""
|
209
225
|
});
|
210
226
|
staff_manages_list.setValue([]);
|
211
227
|
return false;
|
@@ -3,7 +3,13 @@
|
|
3
3
|
<div class="layui-form-item">
|
4
4
|
<label class="layui-form-label" style="width: 80px !important;">合同名称:</label>
|
5
5
|
<div class="layui-input-inline" style="line-height: 38px;">
|
6
|
-
|
6
|
+
<% if @money_plan_record.business %>
|
7
|
+
<%= @money_plan_record.business&.name %>
|
8
|
+
<% else %>
|
9
|
+
<div id="business" style="width:600px;"></div>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
|
7
13
|
</div>
|
8
14
|
</div>
|
9
15
|
<div class="layui-form-item">
|
@@ -41,13 +47,44 @@
|
|
41
47
|
table = layui.table,
|
42
48
|
laydate = layui.laydate,
|
43
49
|
request = layui.request,
|
50
|
+
selectInput = layui.selectInput,
|
44
51
|
$ = layui.$;
|
45
52
|
form.render();
|
46
53
|
laydate.render({
|
47
54
|
elem: '#date_at',
|
48
55
|
});
|
56
|
+
|
57
|
+
if ($("#business").length > 0) {
|
58
|
+
var business_id = "";
|
59
|
+
var business_select = selectInput.render({
|
60
|
+
elem: '#business',
|
61
|
+
name: 'bussiness_name', // 渲染的input的name值
|
62
|
+
layFilter: 'test', //同layui form参数lay-filter
|
63
|
+
layVerType: 'tips', // 同layui form参数lay-verType
|
64
|
+
layReqText: '请填写文本', //同layui form参数lay-ReqText
|
65
|
+
hasSelectIcon: false,
|
66
|
+
placeholder: '请输入合同名称', // 渲染的inputplaceholder值
|
67
|
+
remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
|
68
|
+
remoteMethod: function(value, cb) { // 远程搜索的回调函数
|
69
|
+
if (!value) {
|
70
|
+
business_id = "";
|
71
|
+
return cb([]);
|
72
|
+
}
|
73
|
+
request.get('missions/search_contracts?q=' + value, {}, function(res) {
|
74
|
+
if (res.data.length == 0) {
|
75
|
+
business_select.emptyValue();
|
76
|
+
return cb([])
|
77
|
+
}
|
78
|
+
return cb(res)
|
79
|
+
})
|
80
|
+
}
|
81
|
+
});
|
82
|
+
}
|
49
83
|
|
50
84
|
form.on('submit(saveBtn)', function(data) {
|
85
|
+
if ($("#business").length > 0) {
|
86
|
+
data.field.business_id = business_select.getValue()
|
87
|
+
}
|
51
88
|
request.put("missions/money_plan_records/" + parent.id, data.field, function(res) {
|
52
89
|
layer.close(parent.sindex)
|
53
90
|
parent.table.reload('money_plan_record_table')
|
@@ -20,7 +20,7 @@ json.data do
|
|
20
20
|
json.signed_date d.business&.last_follow_up&.signed_date
|
21
21
|
json.actual_amount d.business&.last_follow_up&.actual_amount
|
22
22
|
json.rate d.business&.last_follow_up&.actual_amount ? (d.amount / d.business.last_follow_up.actual_amount * 100.0).round(2) : ''
|
23
|
-
json.staff_manages d.business&.last_follow_up&.assign_follow_ups.present? ? (d.business.last_follow_up.assign_follow_ups.map{ |d| d.staff
|
23
|
+
json.staff_manages d.business&.last_follow_up&.assign_follow_ups.present? ? (d.business.last_follow_up.assign_follow_ups.map{ |d| d.staff&.user&.real_name}.join("、")) : d.business.staff&.user&.real_name
|
24
24
|
if d['claim_num'] > 0
|
25
25
|
if d['return_money'].to_f >= d.amount
|
26
26
|
json.state '已回款'
|
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: 1.10.
|
4
|
+
version: 1.10.34
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-07-
|
11
|
+
date: 2023-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -105,7 +105,6 @@ files:
|
|
105
105
|
- app/assets/images/educode_sales/icon-login.png
|
106
106
|
- app/assets/images/educode_sales/icon.png
|
107
107
|
- app/assets/images/educode_sales/indexLogo.png
|
108
|
-
- app/assets/images/educode_sales/indexlogo.png
|
109
108
|
- app/assets/images/educode_sales/loading-0.gif
|
110
109
|
- app/assets/images/educode_sales/loading-1.gif
|
111
110
|
- app/assets/images/educode_sales/loading-2.gif
|
@@ -758,7 +757,7 @@ homepage: https://www.educoder.net
|
|
758
757
|
licenses:
|
759
758
|
- MIT
|
760
759
|
metadata: {}
|
761
|
-
post_install_message:
|
760
|
+
post_install_message:
|
762
761
|
rdoc_options: []
|
763
762
|
require_paths:
|
764
763
|
- lib
|
@@ -773,8 +772,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
773
772
|
- !ruby/object:Gem::Version
|
774
773
|
version: '0'
|
775
774
|
requirements: []
|
776
|
-
rubygems_version: 3.0.
|
777
|
-
signing_key:
|
775
|
+
rubygems_version: 3.0.0
|
776
|
+
signing_key:
|
778
777
|
specification_version: 4
|
779
778
|
summary: Summary of EducodeSales.
|
780
779
|
test_files: []
|
Binary file
|