pais_legacy 2.5.1 → 2.6.1

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
  SHA256:
3
- metadata.gz: c047ea230e18c4fa0d6b711a41470bd656fd25acf80ffb4b0f0cead79d0f00cd
4
- data.tar.gz: f611af422990cc1b90135ac8a89c2558dfb508e35781187ce6d900e339661604
3
+ metadata.gz: a9f69175d350cb7e66382799b7fe36e26161394599e0060abb5139019ddfd165
4
+ data.tar.gz: 900892b5404050052d8e3963f3e31be6c0ea843ccd6ab27b289ac19ef0c36ba2
5
5
  SHA512:
6
- metadata.gz: 68a0ae1b5efc616756558ac0c89a9551ebe470fcb6095de3ea208f5a8e698d10ee951d0c3e266307d2313ede5a0e2b7d7c284389b8ef013992f4332c1cfa9d93
7
- data.tar.gz: e5d8121c0c16b751cb789eb904d19f6a60bfc0184cc6a7ff8e7e3c6297dde3269a58edf272371669f30137b4fc9149f738fb732da9a96ffaa98e030b78b694b8
6
+ metadata.gz: 02f01d3ffd046c32215fde925367e8aee9b59f844c018e515fed8646cd25c225ba66272a125d100d88d1c900b55620f15e0506a58a18a3cbbdc1f35715d4230a
7
+ data.tar.gz: 7d3aff622d67f4a4f44cfc159513733303aa7997542420c718ea86a33b615d0b2413d8d84e1d97a12e1dbb6d7a24d89fb0b8ffa9b8dfc3fdbe9fb2cac8a855ad
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PaisLegacy
4
- VERSION = "2.5.1"
4
+ VERSION = "2.6.1"
5
5
  end
data/lib/pais_legacy.rb CHANGED
@@ -4,6 +4,8 @@ require 'date'
4
4
  require 'json' # Output
5
5
  require "open3" # File I/O
6
6
  require 'pastel' # TTY Color
7
+ require 'net/ssh'
8
+ require 'byebug'
7
9
 
8
10
  require_relative "pais_legacy/trial_balance"
9
11
  require_relative "pais_legacy/version"
@@ -12,11 +14,51 @@ module PaisLegacy
12
14
  class Error < StandardError; end
13
15
 
14
16
  class Pais
15
- SERVER="192.168.200.4"
17
+ #SERVER="192.168.200.4"
18
+ SERVER="pais.com.au"
16
19
  SUSPENSE_ACCOUNT=1599
17
20
  CLEARING_ACCOUNT=5199
18
21
  TB_DIRECT_ACCOUNT=8999
19
22
 
23
+ def self.execute_ssh_command(command)
24
+ output = ""
25
+
26
+ # Start an SSH session
27
+ Net::SSH.start(SERVER) do |ssh|
28
+ # Open a new SSH channel
29
+ ssh.open_channel do |channel|
30
+ # Request a pseudo-tty
31
+ channel.request_pty do |ch, success|
32
+ raise "Could not obtain pty" unless success
33
+
34
+ # Execute the command
35
+ ch.exec(command) do |ch, success|
36
+ raise "Could not execute command" unless success
37
+
38
+ # Collect the data received from the command's standard output
39
+ ch.on_data do |c, data|
40
+ output += data
41
+ end
42
+
43
+ # Collect the data received from the command's standard error
44
+ ch.on_extended_data do |c, type, data|
45
+ output += "stderr: #{data}"
46
+ end
47
+
48
+ ch.on_close do
49
+ puts "Command execution finished"
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ # Keep the session open until the command execution is finished
56
+ ssh.loop
57
+ end
58
+
59
+ output
60
+ end
61
+
20
62
  # --------------------------------------------------------------------------------
21
63
  # Client
22
64
  # --------------------------------------------------------------------------------
@@ -29,7 +71,7 @@ module PaisLegacy
29
71
  end
30
72
 
31
73
  def self.clfi_read(client=nil)
32
- out,_,_=Open3.capture2(clfi_read_cmd(client.to_s))
74
+ out=execute_ssh_command(clfi_read_cmd(client.to_s))
33
75
  JSON.parse(out)
34
76
  end
35
77
 
@@ -45,7 +87,9 @@ module PaisLegacy
45
87
  end
46
88
 
47
89
  def self.glfi_read(ledger=nil)
48
- out,_,_=Open3.capture2(glfi_read_cmd(ledger.to_s))
90
+ # out,stderr,status=Open3.capture2(glfi_read_cmd(ledger.to_s))
91
+ out=execute_ssh_command(glfi_read_cmd(ledger.to_s))
92
+
49
93
  JSON.parse(out)
50
94
  end
51
95
 
@@ -57,7 +101,7 @@ module PaisLegacy
57
101
  end
58
102
 
59
103
  def self.glch_read(ledger)
60
- # out,_,_=Open3.capture2(glch_read_cmd(ledger.to_s))
104
+ # out=execute_ssh_command(glch_read_cmd(ledger.to_s))
61
105
  # out.
62
106
  # split("\n").
63
107
  # map{|line| line.split(",")}.
@@ -66,7 +110,8 @@ module PaisLegacy
66
110
  end
67
111
 
68
112
  def self.glch_read_all(ledger)
69
- out,_,_=Open3.capture2(glch_read_cmd(ledger.to_s))
113
+ puts glch_read_cmd(ledger.to_s)
114
+ out=execute_ssh_command(glch_read_cmd(ledger.to_s))
70
115
  JSON.parse(out)
71
116
  end
72
117
 
@@ -75,15 +120,17 @@ module PaisLegacy
75
120
  def self.raw(params,program="rdefi00a")
76
121
  params = params.gsub(" "," \\")
77
122
 
78
- cmd = ssh + ' "bash -c \"'+ fglgo("rptrun") +' pgs 1 pais '+program+' \''+ params + ' \' \""'
79
- out,_,_=Open3.capture2(cmd)
123
+ # cmd = ssh + ' "bash -c \"'+ fglgo("rptrun") +' pgs 1 pais '+program+' \''+ params + ' \' \""'
124
+ cmd = fglgo("rptrun") +' api 1 pais '+program+' \''+ params + ' \' '
125
+
126
+ out=execute_ssh_command(cmd)
80
127
  [out]
81
128
  end
82
129
 
83
130
  def self.raw_zsh(params,program="rdefi00a")
84
131
  params = params.gsub(" "," \\")
85
132
 
86
- cmd = 'zsh -c "'+ fglgo("rptrun") +' pgs 1 pais '+program+' \''+ params + ' \' "'
133
+ cmd = 'zsh -c "'+ fglgo("rptrun") +' api 1 pais '+program+' \''+ params + ' \' "'
87
134
  stdout, stderr, status_=Open3.capture3(cmd)
88
135
  [stdout]
89
136
  end
@@ -99,7 +146,7 @@ module PaisLegacy
99
146
  date_to = Date.parse("30/06/#{date_to.year}")
100
147
  date_from = Date.parse("01/07/#{date_to.year - 1}")
101
148
 
102
- cmd = ssh + ' "bash -c \"'+ fglgo("rptrun") +' pgs 1 pais {{program}} \'\{{printer}} \{{ccode}} \{{ledger}} \spar \N \2 \1 \2 \3 \4 \5 \{{date_from}} \{{date_to}} \' \""'
149
+ cmd = fglgo("rptrun") +' pgs 1 pais {{program}} \'\{{printer}} \{{ccode}} \{{ledger}} \spar \N \2 \1 \2 \3 \4 \5 \{{date_from}} \{{date_to}} \' '
103
150
  .gsub("{{program}}",program)
104
151
  .gsub("{{printer}}","SCREEN")
105
152
  .gsub("{{ccode}}","T1")
@@ -111,7 +158,7 @@ module PaisLegacy
111
158
  .gsub("{{report_type}}","1")
112
159
  .gsub("{{subaccs}}","N")
113
160
 
114
- out,_,_=Open3.capture2(cmd)
161
+ out=execute_ssh_command(cmd)
115
162
  [out]
116
163
  end
117
164
 
@@ -125,7 +172,7 @@ module PaisLegacy
125
172
  program="rglch01a"
126
173
  end
127
174
 
128
- cmd = ssh + ' "bash -c \"'+ fglgo("rptrun") +' pgs 1 pais {{program}} \'\{{printer}} \{{ccode}} \{{ledger}} \spar \{{account_from}} \{{account_to}} \{{date}}\ \1 \N\' \""'
175
+ cmd = fglgo("rptrun") +' pgs 1 pais {{program}} \'\{{printer}} \{{ccode}} \{{ledger}} \spar \{{account_from}} \{{account_to}} \{{date}}\ \1 \N\' '
129
176
  .gsub("{{program}}",program)
130
177
  .gsub("{{printer}}","SCREEN")
131
178
  .gsub("{{ccode}}","T1")
@@ -136,7 +183,7 @@ module PaisLegacy
136
183
  .gsub("{{report_type}}","1")
137
184
  .gsub("{{subaccs}}","N")
138
185
 
139
- out,_,_=Open3.capture2(cmd)
186
+ out=execute_ssh_command(cmd)
140
187
 
141
188
  # if from and to
142
189
  # out.split("\n").each_with_index do |line,index|
@@ -216,7 +263,11 @@ module PaisLegacy
216
263
  end
217
264
 
218
265
  def self.pais_api(file,ledger,options="")
219
- ssh + ' "bash -c \"' + fglgo(file) + ' {{ccode}} {{ledger}} {{options}}\""'
266
+ # ssh + ' "bash -c \"' + fglgo(file) + ' {{ccode}} {{ledger}} {{options}}\""'
267
+ # .gsub("{{ccode}}","T1")
268
+ # .gsub("{{ledger}}",ledger.to_s)
269
+ # .gsub("{{options}}",options)
270
+ fglgo(file) + ' {{ccode}} {{ledger}} {{options}}'
220
271
  .gsub("{{ccode}}","T1")
221
272
  .gsub("{{ledger}}",ledger.to_s)
222
273
  .gsub("{{options}}",options)
@@ -227,18 +278,18 @@ module PaisLegacy
227
278
  end
228
279
 
229
280
  def self.lasttrnno_read(ledger)
230
- out,_,_=Open3.capture2(lasttrnno_read_cmd(ledger.to_s))
281
+ out=execute_ssh_command(lasttrnno_read_cmd(ledger.to_s))
231
282
  out.strip
232
283
  end
233
284
 
234
285
  def self.gltr_read_all(ledger,start_date,end_date)
235
- cmd=ssh + ' "bash -c \"' + fglgo("gltr_read") + ' {{ccode}} {{ledger}} {{start_date}} {{end_date}}\""'
286
+ cmd=fglgo("gltr_read") + ' {{ccode}} {{ledger}} {{start_date}} {{end_date}}'
236
287
  .gsub("{{ccode}}","T1")
237
288
  .gsub("{{ledger}}",ledger.to_s)
238
289
  .gsub("{{start_date}}",start_date)
239
290
  .gsub("{{end_date}}",end_date)
240
291
 
241
- out,_,_=Open3.capture2(cmd)
292
+ out=execute_ssh_command(cmd)
242
293
  JSON.parse(out)
243
294
  end
244
295
 
@@ -258,7 +309,7 @@ module PaisLegacy
258
309
  # Example of P&L for ledger 336 with 2 periods
259
310
  # '\SCREEN \T1 \336 \spar \N \2 \1 \Y \3 \4 \5 \N \01/07/2021 \30/06/2022 \N \ALL \ALL \N \2'
260
311
  def self.rptrun(ledger,date_to,from="0001",to="9999",program="rglch01a")
261
- ssh + ' "bash -c \"'+ fglgo("rptrun") +' pgs 1 pais {{program}} \'\{{printer}} \{{ccode}} \{{ledger}} \spar \N \{{account_from}} \{{account_to}} \1 \{{report_type}} \{{subaccs}} \{{date}}\' N\""'
312
+ fglgo("rptrun") +' pgs 1 pais {{program}} \'\{{printer}} \{{ccode}} \{{ledger}} \spar \N \{{account_from}} \{{account_to}} \1 \{{report_type}} \{{subaccs}} \{{date}}\' N'
262
313
  .gsub("{{program}}",program)
263
314
  .gsub("{{printer}}","SCREEN")
264
315
  .gsub("{{ccode}}","T1")
@@ -287,7 +338,7 @@ module PaisLegacy
287
338
  end
288
339
 
289
340
  def self.common_ledger_date(cmd,ledger,end_date)
290
- cmd=ssh + ' "bash -c \"' + fglgo(cmd) + ' {{ccode}} {{ledger}} {{end_date}}\""'
341
+ cmd=fglgo(cmd) + ' {{ccode}} {{ledger}} {{end_date}}'
291
342
  .gsub("{{ccode}}","T1")
292
343
  .gsub("{{ledger}}",ledger.to_s)
293
344
  .gsub("{{end_date}}",end_date)
@@ -308,13 +359,13 @@ module PaisLegacy
308
359
  # Invoice related
309
360
  # --------------------------------------------------------------------------------
310
361
  def legacy_import_invoices(ledger,date)
311
- cmd=PaisLegacy::Pais.ssh + ' "bash -c \"' + PaisLegacy::Pais.fglgo("invo_read") + ' {{ccode}} {{ledger}} {{date}}\""'
362
+ cmd=PaisLegacy::Pais.fglgo("invo_read") + ' {{ccode}} {{ledger}} {{date}}'
312
363
  .gsub("{{ccode}}","T1")
313
364
  .gsub("{{ledger}}",ledger.to_s)
314
365
  .gsub("{{date}}",date)
315
366
 
316
367
  puts cmd
317
- out,_,_=Open3.capture2(cmd)
368
+ out=execute_ssh_command(cmd)
318
369
  out.delete!("\\\\")
319
370
  begin
320
371
  out = JSON.parse(out)
@@ -331,7 +382,7 @@ module PaisLegacy
331
382
 
332
383
  date = Date.parse(date).strftime("%d/%m/%Y")
333
384
 
334
- cmd=PaisLegacy::Pais.ssh + ' "bash -c \"' + PaisLegacy::Pais.fglgo("invo_read") + ' {{ccode}} {{ledger}} {{date}} {{inv_no}} {{client}}\""'
385
+ cmd=PaisLegacy::Pais.fglgo("invo_read") + ' {{ccode}} {{ledger}} {{date}} {{inv_no}} {{client}}'
335
386
  .gsub("{{ccode}}","T1")
336
387
  .gsub("{{ledger}}",ledger.to_s)
337
388
  .gsub("{{date}}",date)
@@ -339,7 +390,7 @@ module PaisLegacy
339
390
  .gsub("{{client}}",client)
340
391
 
341
392
  puts cmd
342
- out,_,_=Open3.capture2(cmd)
393
+ out=execute_ssh_command(cmd)
343
394
 
344
395
  begin
345
396
  out = JSON.parse(out)
@@ -365,21 +416,21 @@ module PaisLegacy
365
416
  # --------------------------------------------------------------------------------
366
417
 
367
418
  def self.table_indexes_cmd(table)
368
- ssh + ' "bash -c \"' + fglgo("db") + ' indexes\""'
419
+ fglgo("db") + ' indexes'
369
420
  end
370
421
 
371
422
  def self.table_indexes(table)
372
- out,_,_=Open3.capture2(table_indexes_cmd(table))
423
+ out=execute_ssh_command(table_indexes_cmd(table))
373
424
  out.split("\n").select{|i| i =~ /^#{table}_/}
374
425
  end
375
426
 
376
427
  def self.table_schema_cmd(table)
377
- ssh + ' "bash -c \"' + fglgo("db") + ' schema {{table}}\""'
428
+ fglgo("db") + ' schema {{table}}'
378
429
  .gsub("{{table}}",table)
379
430
  end
380
431
 
381
432
  def self.table_schema_raw(table)
382
- out,_,_=Open3.capture2(table_schema_cmd(table))
433
+ out=execute_ssh_command(table_schema_cmd(table))
383
434
  out.split("\n")
384
435
  end
385
436
 
@@ -391,12 +442,12 @@ module PaisLegacy
391
442
  end
392
443
 
393
444
  def self.table_data_cmd(table)
394
- ssh_with_tty + ' "bash -c \"' + fglgo("db") + ' data {{table}}\""'
445
+ fglgo("db") + ' data {{table}}'
395
446
  .gsub("{{table}}",table)
396
447
  end
397
448
 
398
449
  def self.table_data_raw(table)
399
- out,_,_=Open3.capture2(table_data_cmd(table))
450
+ out=execute_ssh_command(table_data_cmd(table))
400
451
  out.split("\n")
401
452
  end
402
453
 
@@ -415,20 +466,20 @@ module PaisLegacy
415
466
  end
416
467
 
417
468
  def self.table_unload_cmd(table)
418
- ssh + ' "bash -c \"' + fglgo("db") + ' unload {{table}}\""'
469
+ fglgo("db") + ' unload {{table}}'
419
470
  .gsub("{{table}}",table)
420
471
  end
421
472
 
422
473
  def self.table_unload(table)
423
- out,_,_=Open3.capture2(table_unload_cmd(table))
474
+ out=execute_ssh_command(table_unload_cmd(table))
424
475
  end
425
476
 
426
477
  def self.tables_cmd
427
- ssh + ' "bash -c \"' + fglgo("db") + ' tables\""'
478
+ fglgo("db") + ' tables'
428
479
  end
429
480
 
430
481
  def self.tables
431
- out,_,_=Open3.capture2(tables_cmd)
482
+ out=execute_ssh_command(tables_cmd)
432
483
  out.split("\n")
433
484
  end
434
485
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pais_legacy
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.1
4
+ version: 2.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Pope
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-04 00:00:00.000000000 Z
11
+ date: 2024-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug