smerp-quotation-engine 0.3.1 → 0.3.6
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 +4 -4
- data/app/controllers/smerp/quotation/engine/quotations_controller.rb +22 -3
- data/app/helpers/smerp/quotation/engine/quotations_helper.rb +25 -3
- data/app/views/smerp/quotation/engine/quotations/_quotation_item.html.erb +3 -2
- data/app/views/smerp/quotation/engine/quotations/resources_allocation_summary.html.erb +15 -5
- data/app/views/smerp/quotation/engine/quotations/show.html.erb +7 -0
- data/config/routes.rb +2 -0
- data/lib/smerp/quotation/engine/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 877f701dd655baa97ce7bfa6ccd12a6577efcb96f7988ead8756f7dff06df017
|
4
|
+
data.tar.gz: e8e2c6853575812585ab3e15ff45043fb9ac478cf662e72e04f608bff8361d8b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 435a82a08f9cf51494e8e385743cec220e2c83d38987e5fe0c93a2e0bd9933015d48bf580791f50d6953232ad088b1e67cb2006b02ff098b5f36400c0aa7d4f6
|
7
|
+
data.tar.gz: 156f5ea4da300e867e39ddeea60ff752b3439015b7251bbf09b7af46ba143ffdc7a66c161ea58a896b8ebfe4198ffce61e5c9e00bfe17bcd1dc5fd2fbd382244
|
@@ -3,7 +3,7 @@ require 'smerp/quotation'
|
|
3
3
|
|
4
4
|
module Smerp::Quotation::Engine
|
5
5
|
class QuotationsController < ApplicationController
|
6
|
-
before_action :set_quotation, only: %i[ show edit update destroy extended_calculators new_extended_calculator create_calculator edit_extended_calculator update_extended_calculator delete_extended_calculator new_product_item resources_allocation_summary ]
|
6
|
+
before_action :set_quotation, only: %i[ show edit update destroy extended_calculators new_extended_calculator create_calculator edit_extended_calculator update_extended_calculator delete_extended_calculator new_product_item resources_allocation_summary filter ]
|
7
7
|
|
8
8
|
# GET /quotations
|
9
9
|
def index
|
@@ -177,13 +177,32 @@ module Smerp::Quotation::Engine
|
|
177
177
|
@resTable = {}
|
178
178
|
@quotation.quotation_items_allocated_resources.each do |qi|
|
179
179
|
prodId = qi.quotation_product.name
|
180
|
-
@resTable[prodId] = { total: 0
|
181
|
-
@resTable[prodId][:total] += qi.quantity
|
180
|
+
@resTable[prodId] = { total: 0, rate: qi.quotation_product.unit_price.to_f } if @resTable[prodId].nil?
|
181
|
+
@resTable[prodId][:total] += qi.quantity.to_i
|
182
182
|
|
183
183
|
@resTable[prodId][:total_rate] = @resTable[prodId][:total] * @resTable[prodId][:rate]
|
184
184
|
end
|
185
185
|
end
|
186
186
|
|
187
|
+
def filter
|
188
|
+
|
189
|
+
val = params[:val]
|
190
|
+
|
191
|
+
case val
|
192
|
+
when "main_only"
|
193
|
+
session[:hide_children_parent_id] = [] if session[:hide_children_parent_id].nil?
|
194
|
+
@quotation.quotation_items.where(["parent_id is null"]).each do |qi|
|
195
|
+
session[:hide_children_parent_id] << qi.id
|
196
|
+
end
|
197
|
+
when "show_all"
|
198
|
+
if not session[:hide_children_parent_id].nil?
|
199
|
+
session[:hide_children_parent_id].clear
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
redirect_to quotation_url(@quotation)
|
204
|
+
end
|
205
|
+
|
187
206
|
private
|
188
207
|
# Use callbacks to share common setup or constraints between actions.
|
189
208
|
def set_quotation
|
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
module Smerp::Quotation::Engine
|
2
3
|
module QuotationsHelper
|
3
4
|
|
@@ -35,10 +36,31 @@ module Smerp::Quotation::Engine
|
|
35
36
|
"#DBFED8", #light green
|
36
37
|
"#FEF0D8",
|
37
38
|
"#D8F8FE",
|
38
|
-
"#FED8D8"
|
39
|
+
"#FED8D8",
|
40
|
+
"#B7FFD8"
|
39
41
|
]
|
40
42
|
|
41
|
-
marker[level%
|
43
|
+
marker[level%marker.length]
|
44
|
+
end
|
45
|
+
|
46
|
+
def level_seq_conv(level, seq)
|
47
|
+
levelConv = [:to_i, :alpha_lowercase, :roman_lowercase, :alpha_upcase, :roman_upcase]
|
48
|
+
conv = levelConv[level%levelConv.length]
|
49
|
+
|
50
|
+
case conv
|
51
|
+
when :to_i
|
52
|
+
seq.to_i
|
53
|
+
when :alpha_lowercase
|
54
|
+
seq.to_i.int_to_alpha_downcase
|
55
|
+
when :roman_lowercase
|
56
|
+
seq.to_i.int_to_roman_downcase
|
57
|
+
when :alpha_upcase
|
58
|
+
seq.to_i.int_to_alpha
|
59
|
+
when :roman_upcase
|
60
|
+
seq.to_i.int_to_roman
|
61
|
+
else
|
62
|
+
seq.to_i
|
63
|
+
end
|
42
64
|
end
|
43
65
|
|
44
66
|
def extended_calculator_name(ec)
|
@@ -91,7 +113,7 @@ module Smerp::Quotation::Engine
|
|
91
113
|
elsif balMonthDay > 0
|
92
114
|
"#{months} month(s) and #{weeks} week(s) (Calendar Based)"
|
93
115
|
else
|
94
|
-
"#{months} month(s)"
|
116
|
+
"#{months} month(s) (Calendar Based)"
|
95
117
|
end
|
96
118
|
else
|
97
119
|
"#{days} calendar day(s)"
|
@@ -2,8 +2,9 @@
|
|
2
2
|
|
3
3
|
<tr style="background-color: <%= level_marker(level) %>">
|
4
4
|
<td>
|
5
|
-
<%= ("
|
6
|
-
|
5
|
+
<%= (" " * level).html_safe %>
|
6
|
+
<%# index += 1 %>
|
7
|
+
<%= level_seq_conv(level, index+1) %>.
|
7
8
|
<%= link_to quotation_item.name, quotation_quotation_item_path(@quotation, quotation_item) %>
|
8
9
|
<%#= link_to "Add Sub Item", add_sub_item_quotation_item_url(quotation_item) %>
|
9
10
|
<%= link_to image_tag('add.png', size: "20x20"), add_sub_item_quotation_item_url(quotation_item) %>
|
@@ -47,11 +47,21 @@
|
|
47
47
|
|
48
48
|
<tr style="font-weight: bold; background-color: #8EFEC1">
|
49
49
|
<td></td>
|
50
|
-
<td class="text-end">
|
51
|
-
|
52
|
-
|
53
|
-
<td class="text-end"
|
54
|
-
|
50
|
+
<td class="text-end">
|
51
|
+
Grand Total :
|
52
|
+
</td>
|
53
|
+
<td class="text-end">
|
54
|
+
<%= ttlMd %>
|
55
|
+
</td>
|
56
|
+
<td style="font-style: italic">
|
57
|
+
(Roughly <%= ttlMd %> mandays ~ <%= days_to_human_readable(ttlMd) %>)
|
58
|
+
</td>
|
59
|
+
<td class="text-end">
|
60
|
+
<%= currency(ttlPrice) %>
|
61
|
+
</td>
|
62
|
+
<td style="font-style: italic;">
|
63
|
+
(<%= ttlPrice.percent_of(@quotation.total, 2) %>%)
|
64
|
+
</td>
|
55
65
|
</tr>
|
56
66
|
|
57
67
|
</table>
|
@@ -69,6 +69,13 @@
|
|
69
69
|
|
70
70
|
<h3>Details</h3>
|
71
71
|
|
72
|
+
<div class="pb-1">
|
73
|
+
<%= button_to "Main Items Only", filter_quotation_path(@quotation, val: "main_only"), class: "btn btn-info" %>
|
74
|
+
</div>
|
75
|
+
<div>
|
76
|
+
<%= button_to "Show All Items", filter_quotation_path(@quotation, val: "show_all"), class: "btn btn-info" %>
|
77
|
+
</div>
|
78
|
+
|
72
79
|
<% if not notice.nil? %>
|
73
80
|
<div class="alert alert-success text-center w-100" role="alert">
|
74
81
|
<%= notice %>
|
data/config/routes.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smerp-quotation-engine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|