projector_pws 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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