unipump 0.2.0 → 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 +4 -4
- data/exe/unipump +1 -1
- data/lib/unipump/version.rb +1 -1
- data/lib/unipump.rb +15 -17
- 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: 70ddfc228cd9746dacb4d8d00a4f7cc66a3e2c6880e62a5dc2a4ed9b8aef4b26
|
4
|
+
data.tar.gz: 52e3a1838db7e54a52fb62b27439ef210943fce3d7a18b3615e48a405fb5a9fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35a18fdafddafdeb0ca76c5dedd89162c7934a9df88e62dfc0d0e655179184291bce1d326e9d79267d7f249c279dc117811bb11d436b7c2b0f1686f0ace1064d
|
7
|
+
data.tar.gz: '0907dbe7141953a1f694f035965d76d4a7509f40cccb6204ca4fa18aea5438b85b5f1a6b7014b07ff301caacd37931494a3e15dfc76d54010b6dd46b34d0e0a3'
|
data/exe/unipump
CHANGED
@@ -16,7 +16,7 @@ SPEC = %(
|
|
16
16
|
absent
|
17
17
|
|
18
18
|
-e,environment=ENV
|
19
|
-
Set the run-time environment to '
|
19
|
+
Set the run-time environment to 'prod' or 'test'. In the test
|
20
20
|
environment, data will be uploaded to the Uniconta test system and
|
21
21
|
TIMEREG_TEST is updated in the database instead of the TIMEREG table. The
|
22
22
|
default is 'test'
|
data/lib/unipump/version.rb
CHANGED
data/lib/unipump.rb
CHANGED
@@ -37,7 +37,7 @@ class Pump
|
|
37
37
|
|
38
38
|
# Environment-dependent constants
|
39
39
|
TEST_SYSTEM = "81470" # Uniconta test system ID
|
40
|
-
PROD_SYSTEM =
|
40
|
+
PROD_SYSTEM = "86837"
|
41
41
|
TEST_TIMEREG_TABLE = "tidsreg_test"
|
42
42
|
PROD_TIMEREG_TABLE = "tidsreg"
|
43
43
|
TEST_FAKTURALINIE_VIEW = "v_fakturalinie_test"
|
@@ -66,9 +66,9 @@ class Pump
|
|
66
66
|
def tidsreg_table = (environment == "prod" ? PROD_TIMEREG_TABLE : TEST_TIMEREG_TABLE)
|
67
67
|
def fakturalinie_view = (environment == "prod" ? PROD_FAKTURALINIE_VIEW : TEST_FAKTURALINIE_VIEW)
|
68
68
|
def root_url = "https://odata.uniconta.com/api/Entities/#{system}"
|
69
|
-
def order_list_url = "#{root_url}/
|
70
|
-
def insert_order_list_url = "#{root_url}/InsertList/
|
71
|
-
def insert_order_line_list_url = "#{root_url}/InsertList/
|
69
|
+
def order_list_url = "#{root_url}/DebtorOrderClientUser"
|
70
|
+
def insert_order_list_url = "#{root_url}/InsertList/DebtorOrderClientUser"
|
71
|
+
def insert_order_line_list_url = "#{root_url}/InsertList/DebtorOrderLineClientUser"
|
72
72
|
|
73
73
|
def initialize(
|
74
74
|
username, password, environment,
|
@@ -177,14 +177,13 @@ class Pump
|
|
177
177
|
# that we may recover from a database failure after the order lines
|
178
178
|
# have been uploaded
|
179
179
|
tidsreg_keys = conn.records %(
|
180
|
-
select
|
180
|
+
select distinct
|
181
181
|
meid,
|
182
182
|
said,
|
183
183
|
acid,
|
184
184
|
dato
|
185
185
|
from #{fakturalinie_view}
|
186
186
|
where #{line_constraint}
|
187
|
-
order by sagsnummer
|
188
187
|
)
|
189
188
|
|
190
189
|
# Save tidsreg keys to disk
|
@@ -213,7 +212,7 @@ class Pump
|
|
213
212
|
emit " #{order.ordrenummer} (#{order.sagsnummer}) #{order_lines.size} items"
|
214
213
|
|
215
214
|
# Create json object for HTTP
|
216
|
-
json = format_order_line(order, order_lines)
|
215
|
+
json = format_order_line(order, order_lines, end_date)
|
217
216
|
|
218
217
|
# Transfer JSON document. Note that HTTP redirects are not supported
|
219
218
|
# (yet)
|
@@ -264,7 +263,6 @@ private
|
|
264
263
|
end
|
265
264
|
|
266
265
|
def upload_json(url, json) # ChatGPT
|
267
|
-
return
|
268
266
|
# Write to json log
|
269
267
|
File.open(jlog, "a") { |f| f.puts json } if jlog
|
270
268
|
|
@@ -374,10 +372,11 @@ private
|
|
374
372
|
" }" + curr_comma
|
375
373
|
end
|
376
374
|
|
377
|
-
def format_blank_line(out, ordrenummer)
|
375
|
+
def format_blank_line(out, ordrenummer, end_date)
|
378
376
|
format_fields(
|
379
377
|
out,
|
380
378
|
"OrderNumber" => ordrenummer,
|
379
|
+
"PumpDate" => "#{end_date}T12:00:00",
|
381
380
|
"Text" => ""
|
382
381
|
)
|
383
382
|
end
|
@@ -397,7 +396,7 @@ private
|
|
397
396
|
out.string
|
398
397
|
end
|
399
398
|
|
400
|
-
def format_order_line(order, order_lines)
|
399
|
+
def format_order_line(order, order_lines, end_date)
|
401
400
|
@curr_comma = ","
|
402
401
|
out = StringIO.new
|
403
402
|
out.puts "["
|
@@ -405,31 +404,30 @@ private
|
|
405
404
|
prev_rolle = nil
|
406
405
|
prev_maaned = nil
|
407
406
|
for order_line in order_lines
|
407
|
+
# header
|
408
408
|
if prev_rolle != order_line.rolle || prev_maaned != order_line.maaned
|
409
|
-
format_blank_line(out, order_line.ordrenummer.to_i) if !prev_rolle.nil? && !prev_maaned.nil?
|
409
|
+
format_blank_line(out, order_line.ordrenummer.to_i, end_date) if !prev_rolle.nil? && !prev_maaned.nil?
|
410
410
|
format_fields(out,
|
411
411
|
"OrderNumber" => order_line.ordrenummer.to_i,
|
412
|
+
"PumpDate" => "#{end_date}T12:00:00",
|
412
413
|
"Text" => order_line.rolle)
|
413
414
|
prev_rolle = order_line.rolle
|
414
415
|
prev_maaned = order_line.maaned
|
415
416
|
end
|
417
|
+
# body
|
416
418
|
format_fields(out,
|
417
419
|
"OrderNumber" => order_line.ordrenummer.to_i,
|
420
|
+
"PumpDate" => "#{end_date}T12:00:00",
|
418
421
|
"Text" => " #{order_line.tekst}",
|
419
422
|
"Item" => order_line.ydelse,
|
420
423
|
"Qty" => order_line.antal,
|
421
424
|
"Price" => order_line.pris)
|
422
425
|
end
|
423
426
|
@curr_comma = ""
|
424
|
-
format_blank_line(out, order_line.ordrenummer.to_i)
|
427
|
+
format_blank_line(out, order_line.ordrenummer.to_i, end_date)
|
425
428
|
}
|
426
429
|
out.puts "]"
|
427
430
|
out.string
|
428
431
|
end
|
429
432
|
end
|
430
433
|
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unipump
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claus Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tiny_tds
|