stockor 0.2 → 0.3.0

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
  SHA1:
3
- metadata.gz: d734100c2a781d64262d82c9d253abbdeb944441
4
- data.tar.gz: bc35cfaaecd7fb4ada61cc37838c64bcb9e21d0c
3
+ metadata.gz: 7d988a8e0b73432c66e3dc93eeeed449da3e30ce
4
+ data.tar.gz: 832a97c69b53d53f3a108342ec92008a0baafeed
5
5
  SHA512:
6
- metadata.gz: c33358eb4136bfdd0da75142a5d383a65324588653386c6593d99b29ef904959093475c6863b02a29afee54a8e86d72b6aa84399dd34c54eae491cb758f11c2e
7
- data.tar.gz: 6c20dc9ca46b14e0d720c8bb0729322e4db866323c0459fd5cc36097425597c78ccc84d2a59d26d7d31ef9632a4aad33fe7ce9fabd5352cac788fa35617e49f3
6
+ metadata.gz: 2c4adcf6481c6825caad4f0cbd5869bc2752484e7b834f0d430804d2f4965e8c6722071a713753da4f6d1d920280128ce22206ac34f7979e76b123951c1b5df0
7
+ data.tar.gz: c29089f8b3c4c45406278d764fd2a38b654565e1379f33353624e9a705baaed0e57542c01a1980a13b92c2d009f951619afe994e1fb4a513e7218da45631a4ab
data/Gemfile CHANGED
@@ -1,7 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem "lanes", github: "argosity/lanes", branch: 'master'
4
- gem "erb_latex", github: "nathanstitt/erb_latex", branch: 'master'
3
+ # gem "lanes", github: "argosity/lanes", branch: 'master'
5
4
 
6
5
  gem "faker"
7
6
  gem 'puma'
data/Gemfile.lock CHANGED
@@ -1,58 +1,10 @@
1
- GIT
2
- remote: git://github.com/argosity/lanes.git
3
- revision: 8347b9f30227829d8c52eb100299b9e30a455e02
4
- branch: master
5
- specs:
6
- lanes (0.3.0)
7
- activejob (~> 4.2)
8
- activerecord (~> 4.2)
9
- bcrypt (~> 3.1)
10
- carrierwave (~> 0.10.0)
11
- coffee-react (~> 3.0)
12
- coffee-script (~> 2.3)
13
- compass-import-once (~> 1.0)
14
- execjs (~> 2.2)
15
- fastimage (~> 1.8.1)
16
- fog (~> 1.37.0)
17
- guard (~> 2.0)
18
- guard-jasmine (~> 2.0)
19
- guard-minitest (~> 2.3)
20
- hashie (~> 3.3)
21
- jasmine-core (~> 2.0)
22
- jobba (~> 1.4)
23
- message_bus (= 2.0.0.beta.6)
24
- mini_magick (~> 4.3.6)
25
- minitest-around (~> 0.2)
26
- mocha (~> 1.1)
27
- oj (~> 2.1)
28
- pg (~> 0.17)
29
- rack-protection (~> 1.5)
30
- rack-test (~> 0.6)
31
- rake (~> 10.0)
32
- require_all (~> 1.3)
33
- resque (~> 1.25)
34
- sanitize (~> 3.0)
35
- sass (~> 3.4)
36
- sinatra (~> 1.4)
37
- sprockets (~> 3.0)
38
- sprockets-helpers (~> 1.2)
39
- thor (~> 0.19)
40
- uglifier (~> 2.7)
41
-
42
- GIT
43
- remote: git://github.com/nathanstitt/erb_latex.git
44
- revision: 6d16aea21c99710be94445b610e3ba03485f9bc7
45
- branch: master
46
- specs:
47
- erb_latex (0.3.0)
48
-
49
1
  PATH
50
2
  remote: .
51
3
  specs:
52
- stockor (0.2)
4
+ stockor (0.3.0)
53
5
  aasm (~> 4.1)
54
6
  erb_latex (= 0.3)
55
- lanes
7
+ lanes (~> 0.4.0)
56
8
  numbers_in_words (~> 0.4.0)
57
9
  ruby-freshbooks
58
10
 
@@ -102,6 +54,7 @@ GEM
102
54
  crack (0.4.3)
103
55
  safe_yaml (~> 1.0.0)
104
56
  crass (1.0.2)
57
+ erb_latex (0.3.0)
105
58
  excon (0.49.0)
106
59
  execjs (2.6.0)
107
60
  faker (1.6.3)
@@ -263,6 +216,41 @@ GEM
263
216
  redis (~> 3.2)
264
217
  redis-namespace
265
218
  json (1.8.3)
219
+ lanes (0.4.0)
220
+ activejob (~> 4.2)
221
+ activerecord (~> 4.2)
222
+ bcrypt (~> 3.1)
223
+ carrierwave (~> 0.10.0)
224
+ coffee-react (~> 3.0)
225
+ coffee-script (~> 2.3)
226
+ compass-import-once (~> 1.0)
227
+ execjs (~> 2.2)
228
+ fastimage (~> 1.8.1)
229
+ fog (~> 1.37.0)
230
+ guard (~> 2.0)
231
+ guard-jasmine (~> 2.0)
232
+ guard-minitest (~> 2.3)
233
+ hashie (~> 3.3)
234
+ jasmine-core (~> 2.0)
235
+ jobba (~> 1.4)
236
+ message_bus (= 2.0.0.beta.6)
237
+ mini_magick (~> 4.3.6)
238
+ minitest-around (~> 0.2)
239
+ mocha (~> 1.1)
240
+ oj (~> 2.1)
241
+ pg (~> 0.17)
242
+ rack-protection (~> 1.5)
243
+ rack-test (~> 0.6)
244
+ rake (~> 10.0)
245
+ require_all (~> 1.3)
246
+ resque (~> 1.25)
247
+ sanitize (~> 3.0)
248
+ sass (~> 3.4)
249
+ sinatra (~> 1.4)
250
+ sprockets (~> 3.0)
251
+ sprockets-helpers (~> 1.2)
252
+ thor (~> 0.19)
253
+ uglifier (~> 2.7)
266
254
  listen (3.0.6)
267
255
  rb-fsevent (>= 0.9.3)
268
256
  rb-inotify (>= 0.9.7)
@@ -318,7 +306,7 @@ GEM
318
306
  builder
319
307
  nokogiri (>= 1.4.1)
320
308
  trollop
321
- redis (3.2.2)
309
+ redis (3.3.0)
322
310
  redis-namespace (1.5.2)
323
311
  redis (~> 3.0, >= 3.0.4)
324
312
  require_all (1.3.3)
@@ -343,7 +331,7 @@ GEM
343
331
  rack-protection (~> 1.4)
344
332
  tilt (>= 1.3, < 3)
345
333
  slop (3.6.0)
346
- sprockets (3.5.2)
334
+ sprockets (3.6.0)
347
335
  concurrent-ruby (~> 1.0)
348
336
  rack (> 1, < 3)
349
337
  sprockets-helpers (1.2.1)
@@ -371,12 +359,10 @@ PLATFORMS
371
359
 
372
360
  DEPENDENCIES
373
361
  bundler (~> 1.5)
374
- erb_latex!
375
362
  faker
376
363
  growl
377
364
  guard
378
365
  guard-minitest
379
- lanes!
380
366
  pry-byebug
381
367
  puma
382
368
  rake
@@ -26,7 +26,8 @@ class Skr.Components.BankAccountFinder extends Lanes.React.Component
26
26
  props = _.clone(@props)
27
27
 
28
28
  if props.selectField
29
- <LC.SelectField queryModel={Skr.Models.BankAccount} sm=2 {...props} />
29
+ <LC.SelectField queryModel={Skr.Models.BankAccount}
30
+ labelField='code' sm=2 {...props} />
30
31
  else
31
32
  <LC.RecordFinder ref="finder" sm=3 autoFocus
32
33
  commands={@props.commands}
@@ -29,7 +29,7 @@ class Skr.Components.CustomerFinder extends Lanes.React.Component
29
29
  props.defaultLabel = @model.customer_code
30
30
 
31
31
  if props.selectField
32
- <LC.SelectField sm=2 labelField="code" {...props} />
32
+ <LC.SelectField labelField='code' sm=2 labelField="code" {...props} />
33
33
  else
34
34
  <LC.RecordFinder ref="finder" sm=3 autoFocus
35
35
  commands={@props.commands}
@@ -36,11 +36,8 @@ class Skr.Components.CustomerProjectFinder extends Lanes.React.Component
36
36
  props = _.clone(@props)
37
37
 
38
38
  if props.selectField
39
- <LC.SelectField sm=2
40
- labelField="code"
41
- {...props}
42
- model={@props.model}
43
- />
39
+ <LC.SelectField sm=2 labelField="code"
40
+ {...props} model={@props.model} />
44
41
  else
45
42
  <LC.RecordFinder ref="finder" sm=3 autoFocus
46
43
  query={@query}
@@ -30,8 +30,5 @@ class Skr.Components.LocationChooser extends Lanes.React.Component
30
30
  query={@query}
31
31
  {...props} />
32
32
  else
33
- <LC.SelectField
34
- {...props}
35
- choices={Skr.Models.Location.all.models}
36
- labelField='code'
37
- model={@props.model} />
33
+ <LC.SelectField {...props} choices={Skr.Models.Location.all.models}
34
+ labelField='code' model={@props.model} />
@@ -26,7 +26,8 @@ class Skr.Components.PaymentCategoryFinder extends Lanes.React.Component
26
26
  props = _.clone(@props)
27
27
 
28
28
  if props.selectField
29
- <LC.SelectField queryModel={Skr.Models.PaymentCategory} sm=2 {...props} />
29
+ <LC.SelectField queryModel={Skr.Models.PaymentCategory}
30
+ labelField='code' sm=2 {...props} />
30
31
  else
31
32
  <LC.RecordFinder ref="finder" sm=3 autoFocus
32
33
  commands={@props.commands}
@@ -25,6 +25,7 @@ class Skr.Components.SkuFinder extends Lanes.React.Component
25
25
  render: ->
26
26
  props = _.extend( {}, @props )
27
27
  if @props.selectField
28
- <LC.SelectField labelField="code" displayFallback={@model.sku_code} {...props} />
28
+ <LC.SelectField labelField="code"
29
+ displayFallback={@model.sku_code} {...props} />
29
30
  else
30
31
  <LC.RecordFinder commands={@props.commands} query={@query} {...props} />
@@ -4,8 +4,12 @@ class Skr.Components.SkuLines extends Lanes.React.Component
4
4
  lines: Lanes.PropTypes.Collection.isRequired
5
5
  commands: React.PropTypes.object.isRequired
6
6
  location: Lanes.PropTypes.Model.isRequired
7
+ queryBuilder: React.PropTypes.func.isRequired
7
8
  saveImmediately: React.PropTypes.func.isRequired
8
9
 
10
+ getDefaultProps: ->
11
+ queryBuilder: (a) -> a
12
+
9
13
  componentWillMount: ->
10
14
  @createQuery(@props.lines)
11
15
 
@@ -13,16 +17,17 @@ class Skr.Components.SkuLines extends Lanes.React.Component
13
17
  @createQuery(nextProps.lines) if nextProps.lines
14
18
 
15
19
  createQuery: (lines) ->
16
- @query = new Lanes.Models.Query
20
+ @query = new Lanes.Models.Query(@props.queryBuilder({
17
21
  title: 'Lines'
18
22
  defaultSort: false
19
- src: lines, fields: [
23
+ src: lines,
24
+ fields: [
20
25
  { id:'id', visible: false }
21
26
  { id: 'sku_code', fixedWidth: 150 }
22
27
  { id: 'description', flex: 2 }
23
28
  {
24
29
  id: 'uom', title: 'UOM', query: false, fixedWidth: 100,
25
- format: (v, r, q) -> v?.combined_uom
30
+ format: (v, r, q) -> v?.combined
26
31
  sortBy: (a, b) ->
27
32
  Lanes.u.comparator(a.uom_size, b.uom_size) or
28
33
  Lanes.u.comparator(a.uom_code, b.uom_code)
@@ -33,6 +38,7 @@ class Skr.Components.SkuLines extends Lanes.React.Component
33
38
  format: (v, r, q) -> v?.toFixed(2)
34
39
  }
35
40
  ]
41
+ }))
36
42
 
37
43
  onSkuChange: (sku, options) ->
38
44
  options.model.set({sku})
@@ -40,22 +46,24 @@ class Skr.Components.SkuLines extends Lanes.React.Component
40
46
  _.dom(@, 'input[name="qty"]').focusAndSelect() if @isMounted()
41
47
 
42
48
  editors: ->
49
+
43
50
  sku_code: ({model, props}) =>
44
51
  options = {
45
52
  with: {in_location: props.location.id}
46
53
  include: ['sku_locs', 'uoms']
47
54
  }
48
55
  <SC.SkuFinder
49
- writable
56
+ writable selectField unstyled
50
57
  setSelection={@onSkuChange}
51
58
  name='sku' model={model}
52
- selectField unstyled syncOptions={options} />
59
+ syncOptions={options}
60
+ />
53
61
 
54
62
  uom: ({model}) ->
55
63
  <SC.UOMChooser writable unstyled model={model} />
56
64
 
57
65
  onSelectionChange: (model) ->
58
- return unless model and @props.commands.isEditing()
66
+ return Promise.resolve() unless model and not model.isNew() and @props.commands.isEditing()
59
67
  new _.Promise (res, rej) ->
60
68
  model.withAssociations([
61
69
  'sku_loc', 'sku', 'uom_choices'
@@ -18,6 +18,7 @@ class Skr.Components.SystemSettings extends Lanes.React.Component
18
18
 
19
19
  <SC.BankAccountFinder selectField
20
20
  sm=3 label="Default Bank Account"
21
+ model={Lanes.config.system_settings}
21
22
  choices={this.banks.models}
22
23
  setSelection={@setBankAccount}
23
24
  getSelection={@getBankAccount}
@@ -10,15 +10,15 @@ class Skr.Components.UOMChooser extends Lanes.React.Component
10
10
  render: ->
11
11
  props = _.clone(@props)
12
12
  props.choices ||= @props.model.uom_choices.models
13
+
13
14
  <LC.SelectField
14
- key="uom"
15
15
  syncOptions={with: 'with_combined_uom'}
16
16
  displayFallback={@props.model.uom.combined_uom}
17
17
  editOnly writable unstyled
18
18
  model={@props.model}
19
19
  fetchWhenOpen={false}
20
20
  queryOrder={size: 'desc'}
21
- labelField="combined_uom"
21
+ labelField="combined"
22
22
  name="uom"
23
23
  {...props}
24
24
  />
@@ -70,6 +70,8 @@ class Skr.Models.Invoice extends Skr.Models.Base
70
70
 
71
71
  onSetCustomer: (newCustomer) ->
72
72
  return if not newCustomer or newCustomer.isNew()
73
+ for attr in ['terms_id']
74
+ @set(attr, newCustomer[attr])
73
75
  @copyAssociationsFrom( newCustomer, 'billing_address', 'shipping_address')
74
76
 
75
77
  setFromSalesOrder: (so) ->
@@ -66,7 +66,8 @@ class Skr.Models.SalesOrder extends Skr.Models.Base
66
66
  onCustomerChange: ->
67
67
  return unless @isNew()
68
68
  associations = ['billing_address', 'shipping_address']
69
-
69
+ for attr in ['terms_id']
70
+ @set(attr, @customer[attr])
70
71
  @customer.withAssociations(associations).then =>
71
72
  for name in associations
72
73
  @associations.replace(@, name, @customer[name])
@@ -50,7 +50,8 @@ class Skr.Models.TimeEntry extends Skr.Models.Base
50
50
  @set('hours', _.moment(this.end_at).diff(this.start_at, 'hour', true).toFixed(2),
51
51
  silent: true)
52
52
  onHoursChange: ->
53
- @end_at = _.moment(@start_at).add(@hours.toFixed(), 'hour').toDate()
53
+ hours = @hours || _.bigDecimal('0')
54
+ @end_at = _.moment(@start_at).add(hours.toFixed(), 'hour').toDate()
54
55
 
55
56
  length: (duration = 'hour') ->
56
57
  @range.end.diff(@range.start, duration, true)
@@ -1,6 +1,6 @@
1
1
  Skr.Models.Mixins.PrintSupport = {
2
2
 
3
3
  pdfDownloadUrl: ->
4
- "#{Lanes.config.api_path}skr/print/#{@modelTypeIdentifier()}/#{@hash_code}.pdf"
4
+ "#{Lanes.config.api_path}/skr/print/#{@modelTypeIdentifier()}/#{@hash_code}.pdf"
5
5
 
6
6
  }
@@ -23,7 +23,7 @@ class Skr.Screens.CustomerProjects extends Skr.Screens.Base
23
23
  @forceUpdate()
24
24
  getColorReadOnly: ->
25
25
  index = @getColor()
26
- color = _.findWhere(Skr.Models.CustomerProject.COLORS, id: index)
26
+ color = _.find(Skr.Models.CustomerProject.COLORS, id: index)
27
27
  <div className={"ro color-#{index}"}>{color?.name}</div>
28
28
 
29
29
  getColor: ->
@@ -8,7 +8,7 @@ class TextInput extends Lanes.React.Component
8
8
  @forceUpdate()
9
9
 
10
10
  render: ->
11
- <input value={@props.row.customer_code} onChange={@setCode} />
11
+ <input value={@props.row.customer_code || ''} onChange={@setCode} />
12
12
 
13
13
  class UserSelect extends Lanes.React.Component
14
14
  dataObjects:
@@ -35,6 +35,12 @@ class Skr.Screens.Invoice extends Skr.Screens.Base
35
35
  shouldSaveLinesImmediately: ->
36
36
  not @invoice.isNew()
37
37
 
38
+ linesQueryBuilder: (attrs) ->
39
+ unless this.invoice.isNew()
40
+ sc = _.find attrs.fields, id: 'sku_code'
41
+ sc.editable = false
42
+ attrs
43
+
38
44
  render: ->
39
45
  <LC.ScreenWrapper identifier="invoice" flexVertical>
40
46
 
@@ -85,6 +91,7 @@ class Skr.Screens.Invoice extends Skr.Screens.Base
85
91
  </BS.Row>
86
92
 
87
93
  <SC.SkuLines location={@invoice.location}
94
+ queryBuilder={@linesQueryBuilder}
88
95
  saveImmediately={@shouldSaveLinesImmediately}
89
96
  commands={@state.commands} lines={@invoice.lines} />
90
97
 
@@ -149,7 +149,7 @@ class InvoiceRequest extends Lanes.Models.Base
149
149
  time_entry_ids: { type: 'array', default: -> [] }
150
150
 
151
151
  api_path: ->
152
- 'skr/invoices/from-time-entries'
152
+ "/skr/invoices/from-time-entries"
153
153
 
154
154
  associations:
155
155
  customer_project: { model: "CustomerProject", autoCreate: true }
@@ -12,8 +12,8 @@ class Skr.Screens.TimeTracking.MiniControls extends Lanes.React.Component
12
12
  render: ->
13
13
  <div className="mini-controls">
14
14
  <div className='l'>
15
- {@props.date.format('MMM')}
16
- {@props.date.format('Do')}
15
+ <span>{@props.date.format('MMM')}</span>
16
+ <span>{@props.date.format('Do')}</span>
17
17
  </div>
18
18
  <BS.Button onClick={@props.onCancel} title="Hide Controls">
19
19
  <LC.Icon type='ban' 2x flush />
data/lib/skr/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Skr
2
- VERSION='0.2'
2
+ VERSION='0.3.0'
3
3
  end
data/stockor.gemspec CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_dependency 'aasm', '~>4.1'
27
27
  spec.add_dependency 'erb_latex', '0.3'
28
- spec.add_dependency 'lanes'
28
+ spec.add_dependency 'lanes', '~> 0.4.0'
29
29
  spec.add_dependency 'numbers_in_words', '~> 0.4.0'
30
30
  spec.add_dependency 'ruby-freshbooks'
31
31
 
@@ -11,7 +11,7 @@
11
11
  \multicolumn{<%=ncols%>}{r}{Continued on next page...} \\
12
12
  \endfoot
13
13
  \hline
14
- <%= partial @footer || 'skus_table_footer', record: @record, ncols: ncols %>
14
+ <%= partial @footer || 'skus_table_footer', record: @record, ncols: ncols, lines: @lines %>
15
15
  \endlastfoot
16
16
  <% if @groups %>
17
17
  <% @groups.each_with_index do | group, i | -%>
@@ -1,7 +1,17 @@
1
+ <% hours = @lines.reduce(BigDecimal.new('0')){|t, l| l.time_entry ? t+l.qty : t } %>
1
2
  <%= partial 'skus_table_other_charge_lines', record: @record, ncols: @ncols %>
2
- \multicolumn{<%= @ncols-1%>}{r}{{\textbf{Total}}} &
3
+ \multicolumn{<%= @ncols-3 %>}{r}{{
4
+ <% unless hours.zero? %>
5
+ \textbf{<%= '%0.2f' % hours %>}
6
+ <% end %>
7
+ }} &
8
+ <% unless hours.zero? %>
9
+ \textbf{Hours} &
10
+ <% end %>
11
+ \textbf{Total} &
3
12
  \textbf{\textsuperscript{\$}<%= Skr::String.number_with_delimiter @record.total %>} \\
4
- \cline{<%= @ncols-3%>-<%= @ncols%>}
13
+ \cline{<%= @ncols - 3%>-<%= @ncols%>}
14
+
5
15
  % \hline
6
16
  <% unless @record.open? -%>
7
17
  \multicolumn{<%= @ncols-1%>}{r}{{\textbf{Amount Paid}}} &
@@ -0,0 +1,7 @@
1
+ <%= partial 'skus_table_other_charge_lines', record: @record, ncols: @ncols %>
2
+ \multicolumn{<%= @ncols-4%>}{r}{} &
3
+ \textbf{<%= '%0.2f' % @lines.to_a.sum{|l| l.time_entry.hours } %>} &
4
+ \textbf{Hours} &
5
+ \textbf{Total} &
6
+ \textbf{\textsuperscript{\$}<%= Skr::String.number_with_delimiter @record.total %>} \\
7
+ \cline{<%= @ncols-3%>-<%= @ncols%>} \\
@@ -4,7 +4,7 @@
4
4
  form_title: "Invoice # #{@invoice.visible_id}"
5
5
  } ) %>
6
6
  <%= partial 'bill_to_ship_to', record: @invoice -%>
7
- <%= partial 'invoice_paid_state', invoice: @invoice -%>
7
+ <%=partial 'skus_table_invoice_info_line', invoice: @invoice -%>
8
8
  <%= partial 'skus_table',
9
9
  record: @invoice,
10
10
  lines: @invoice.lines.regular,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stockor
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Stitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-31 00:00:00.000000000 Z
11
+ date: 2016-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: lanes
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 0.4.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 0.4.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: numbers_in_words
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -633,6 +633,7 @@ files:
633
633
  - templates/print/partials/skus_table_invoice_footer.tex.erb
634
634
  - templates/print/partials/skus_table_invoice_info_line.tex.erb
635
635
  - templates/print/partials/skus_table_labor_col_hdr.tex.erb
636
+ - templates/print/partials/skus_table_labor_footer.tex.erb
636
637
  - templates/print/partials/skus_table_labor_group_footer.tex.erb
637
638
  - templates/print/partials/skus_table_labor_line.tex.erb
638
639
  - templates/print/partials/skus_table_line.tex.erb
@@ -663,7 +664,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
663
664
  version: '0'
664
665
  requirements: []
665
666
  rubyforge_project:
666
- rubygems_version: 2.4.5.1
667
+ rubygems_version: 2.5.1
667
668
  signing_key:
668
669
  specification_version: 4
669
670
  summary: Stockor is a complete ERP system