projector_pws 0.1.6 → 0.1.7

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: a887d83d9353974ba4594f8bdd928c4a09351aa0
4
- data.tar.gz: 98ac08c942747b07d2546036e465ea242fe3d051
3
+ metadata.gz: bd3c93dc7d27baa346ccf2b0ef9f782bea615dc2
4
+ data.tar.gz: b630a5b9e6c58c2f086bce58fbcc6ba06528458b
5
5
  SHA512:
6
- metadata.gz: 74f301d88b5acc21ed9d4435e80c930bf0143dcff6d4476d50d23e8b0e815c0d6a2f6e6c7e16500243562a9085bebdfee1d69531910bd625c5a659eb945bff4d
7
- data.tar.gz: 303a984689c58a8e82409355816ad20d6840b76f0bd4092ba58e349e898b9c9d550d7cf4dc70ef7392f2abcbfad39b2187d5f743d9f9dda3e3a9b2a8ca8a2b82
6
+ metadata.gz: f754744f35fbc6eb5d0a5785b266ab1640cb36727d7ed9b891a90d3b6b8b06a67cae2564f7c80a62e7b20a331af1959d4b8ac5de8e5dc11bc18009d9bad6f97f
7
+ data.tar.gz: 9b8146299124ca1db1ca403dd91de36555e1672b65aff64bd2f56b64564420481e78c62f6966ac71f34b9187d40e57fe577c99d776693f62e12bd749d5f6fb9c
@@ -51,8 +51,38 @@ module ProjectorPWS
51
51
  end
52
52
 
53
53
  # Export Resources
54
- def self.export_resources url, username, password, account_code = nil
55
- with_auth(username, password, account_code, url) { |c, params| c.call(:export_resources, params.merge(message: { request: { 'Parameters' => {} } })).body[:export_resources_response][:export_resources_result][:data][:resources][:resource] }
54
+ def self.export_resources url, username, password, account_code = nil, max_rows = nil
55
+
56
+ # Prepare Params
57
+ rparams = {}
58
+ rparams['tns:MaxRowsToReturn'] = max_rows if max_rows
59
+
60
+ with_auth(username, password, account_code, url) { |c, params| c.call(:export_resources, params.merge(message: { request: { 'Parameters' => rparams } })).body[:export_resources_response][:export_resources_result][:data][:resources][:resource] }
61
+ end
62
+
63
+ # Export Cost Cards
64
+ def self.export_cost_cards url, username, password, account_code = nil, min_date = nil, max_date = nil, max_rows = nil
65
+
66
+ # Prepare Params
67
+ rparams = {}
68
+ rparams['tns:MinIncurredDate'] = min_date.strftime '%Y-%m-%dz' if min_date
69
+ rparams['tns:MaxIncurredDate'] = max_date.strftime '%Y-%m-%dz' if max_date
70
+ rparams['tns:MaxRowsToReturn'] = max_rows if max_rows
71
+
72
+ # Make the call
73
+ with_auth(username, password, account_code, url) { |c, params| c.call(:export_cost_cards, params.merge(message: { request: { 'Parameters' => rparams } })).body[:export_cost_cards_response][:export_cost_cards_result][:data][:cost_cards][:cost_card] }
74
+ end
75
+
76
+ # Export Expense Reports
77
+ def self.export_expense_reports url, username, password, account_code = nil, numbers_after = nil, max_rows = nil
78
+
79
+ # Prepare Params
80
+ rparams = {}
81
+ rparams['tns:MaxRowsToReturn'] = max_rows if max_rows
82
+ rparams['tns:ExpenseReportNumbersAfter'] = numbers_after if numbers_after
83
+
84
+ # Make the call
85
+ with_auth(username, password, account_code, url) { |c, params| c.call(:export_expense_reports, params.merge(message: { request: { 'Parameters' => rparams } })).body[:export_expense_reports_response][:export_expense_reports_result][:data][:expense_reports][:expense_report] }
56
86
  end
57
87
 
58
88
  # Generate Service URL
@@ -5,5 +5,5 @@
5
5
  module ProjectorPWS
6
6
 
7
7
  # Version
8
- VERSION = '0.1.6'
8
+ VERSION = '0.1.7'
9
9
  end
data/lib/projector_pws.rb CHANGED
@@ -159,6 +159,47 @@ module ProjectorPWS
159
159
  c.call(:pws_get_resource_working_schedule, message: { 'pws:serviceRequest' => params }).body[:pws_get_resource_working_schedule_response][:pws_get_resource_working_schedule_result][:working_schedule]
160
160
  end
161
161
 
162
+ # Get Resource Cost Cards
163
+ def self.get_resource_cost_cards c, ticket, resource_uid = nil, exclude_before = nil, flags = { approved: true }
164
+
165
+ # Prepare Params
166
+ params = { 'req:SessionTicket' => ticket }
167
+ params['tim:ExcludeApprovedCardsBefore'] = exclude_before.strftime '%Y-%m-%dz' if exclude_before
168
+ %w(approved approved_to_pay draft paid received rejected submitted transmitted).each { |f| params["tim:Include#{f.camelcase}Flag"] = flags[f.to_sym] if flags.include? f.to_sym }
169
+ params['tim:ResourceIdentity'] = { 'com:ResourceUid' => resource_uid } if resource_uid
170
+
171
+ # Fetch Resource Cost Cards
172
+ c.call(:pws_get_resource_cost_cards, message: { 'pws:serviceRequest' => params }).body[:pws_get_resource_cost_cards_response][:pws_get_resource_cost_cards_result][:cost_cards]
173
+ end
174
+
175
+ # Get Cost Centers
176
+ def self.get_cost_centers c, ticket
177
+
178
+ # Prepare Params
179
+ params = { 'req:SessionTicket' => ticket }
180
+ params['tim:IncludeEngagementCostCentersFlag'] = true
181
+ params['tim:IncludeResourceCostCentersFlag'] = true
182
+ params['tim:IncludeNonResourceNonEngagementCostCentersFlag'] = true
183
+
184
+ # Fetch Resources
185
+ c.call(:pws_get_cost_center_list, message: { 'pws:serviceRequest' => params }).body[:pws_get_cost_center_list_response][:pws_get_cost_center_list_result][:cost_centers]
186
+ end
187
+
188
+ # Get Expense Documents
189
+ def self.get_expense_documents c, ticket, reps = nil
190
+
191
+ # Prepare Params
192
+ params = { 'req:SessionTicket' => ticket }
193
+ if reps
194
+ params['tim:ExpenseDocumentIdentity'] = []
195
+ reps.each { |r| params['tim:ExpenseDocumentIdentity'] << { 'com:DocumentNumber' => r } }
196
+ end
197
+
198
+ # Fetch Expense Documents
199
+ c.call(:pws_get_expense_document, message: { 'pws:serviceRequest' => params }).body[:pws_get_expense_document_response][:pws_get_expense_document_result]
200
+ end
201
+
202
+
162
203
  # Get Free Resources (non-busy) with associated minutes
163
204
  def self.get_free_resources c, ticket, start_date = current_week_start, end_date = current_week_end
164
205
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: projector_pws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eresse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-12 00:00:00.000000000 Z
11
+ date: 2018-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler