pais_legacy 2.6.0 → 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: 137cd19045ff9caec78e7a880fff8977cc11e948695f423248a153aca9bc6a57
4
- data.tar.gz: 6a58fc1f86ce0d878ebc08545f158142d5f573d9359dd92fe384e89aadb37574
3
+ metadata.gz: a9f69175d350cb7e66382799b7fe36e26161394599e0060abb5139019ddfd165
4
+ data.tar.gz: 900892b5404050052d8e3963f3e31be6c0ea843ccd6ab27b289ac19ef0c36ba2
5
5
  SHA512:
6
- metadata.gz: d78b12afd356b6cc43aa342119fd179a2ae0b9564522cec6b25068adb62c2f4078703fbf12cb7eecfe7c40d76757ebc22a3e61440a8a03e66412c7b8d1cedd71
7
- data.tar.gz: d163add0cd7db3fbb08d238a3da0997d7d260750d1c7ff22fd4767182b94a46c9f6e37910597080feaa1d2218ff729b5b9b9c3a551d67f2335b07086c8d79d9c
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.6.0"
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"
@@ -18,6 +20,45 @@ module PaisLegacy
18
20
  CLEARING_ACCOUNT=5199
19
21
  TB_DIRECT_ACCOUNT=8999
20
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
+
21
62
  # --------------------------------------------------------------------------------
22
63
  # Client
23
64
  # --------------------------------------------------------------------------------
@@ -30,7 +71,7 @@ module PaisLegacy
30
71
  end
31
72
 
32
73
  def self.clfi_read(client=nil)
33
- out,_,_=Open3.capture2(clfi_read_cmd(client.to_s))
74
+ out=execute_ssh_command(clfi_read_cmd(client.to_s))
34
75
  JSON.parse(out)
35
76
  end
36
77
 
@@ -46,7 +87,9 @@ module PaisLegacy
46
87
  end
47
88
 
48
89
  def self.glfi_read(ledger=nil)
49
- 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
+
50
93
  JSON.parse(out)
51
94
  end
52
95
 
@@ -58,7 +101,7 @@ module PaisLegacy
58
101
  end
59
102
 
60
103
  def self.glch_read(ledger)
61
- # out,_,_=Open3.capture2(glch_read_cmd(ledger.to_s))
104
+ # out=execute_ssh_command(glch_read_cmd(ledger.to_s))
62
105
  # out.
63
106
  # split("\n").
64
107
  # map{|line| line.split(",")}.
@@ -67,7 +110,8 @@ module PaisLegacy
67
110
  end
68
111
 
69
112
  def self.glch_read_all(ledger)
70
- 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))
71
115
  JSON.parse(out)
72
116
  end
73
117
 
@@ -76,15 +120,17 @@ module PaisLegacy
76
120
  def self.raw(params,program="rdefi00a")
77
121
  params = params.gsub(" "," \\")
78
122
 
79
- cmd = ssh + ' "bash -c \"'+ fglgo("rptrun") +' pgs 1 pais '+program+' \''+ params + ' \' \""'
80
- 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)
81
127
  [out]
82
128
  end
83
129
 
84
130
  def self.raw_zsh(params,program="rdefi00a")
85
131
  params = params.gsub(" "," \\")
86
132
 
87
- cmd = 'zsh -c "'+ fglgo("rptrun") +' pgs 1 pais '+program+' \''+ params + ' \' "'
133
+ cmd = 'zsh -c "'+ fglgo("rptrun") +' api 1 pais '+program+' \''+ params + ' \' "'
88
134
  stdout, stderr, status_=Open3.capture3(cmd)
89
135
  [stdout]
90
136
  end
@@ -100,7 +146,7 @@ module PaisLegacy
100
146
  date_to = Date.parse("30/06/#{date_to.year}")
101
147
  date_from = Date.parse("01/07/#{date_to.year - 1}")
102
148
 
103
- 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}} \' '
104
150
  .gsub("{{program}}",program)
105
151
  .gsub("{{printer}}","SCREEN")
106
152
  .gsub("{{ccode}}","T1")
@@ -112,7 +158,7 @@ module PaisLegacy
112
158
  .gsub("{{report_type}}","1")
113
159
  .gsub("{{subaccs}}","N")
114
160
 
115
- out,_,_=Open3.capture2(cmd)
161
+ out=execute_ssh_command(cmd)
116
162
  [out]
117
163
  end
118
164
 
@@ -126,7 +172,7 @@ module PaisLegacy
126
172
  program="rglch01a"
127
173
  end
128
174
 
129
- 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\' '
130
176
  .gsub("{{program}}",program)
131
177
  .gsub("{{printer}}","SCREEN")
132
178
  .gsub("{{ccode}}","T1")
@@ -137,7 +183,7 @@ module PaisLegacy
137
183
  .gsub("{{report_type}}","1")
138
184
  .gsub("{{subaccs}}","N")
139
185
 
140
- out,_,_=Open3.capture2(cmd)
186
+ out=execute_ssh_command(cmd)
141
187
 
142
188
  # if from and to
143
189
  # out.split("\n").each_with_index do |line,index|
@@ -217,7 +263,11 @@ module PaisLegacy
217
263
  end
218
264
 
219
265
  def self.pais_api(file,ledger,options="")
220
- 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}}'
221
271
  .gsub("{{ccode}}","T1")
222
272
  .gsub("{{ledger}}",ledger.to_s)
223
273
  .gsub("{{options}}",options)
@@ -228,18 +278,18 @@ module PaisLegacy
228
278
  end
229
279
 
230
280
  def self.lasttrnno_read(ledger)
231
- out,_,_=Open3.capture2(lasttrnno_read_cmd(ledger.to_s))
281
+ out=execute_ssh_command(lasttrnno_read_cmd(ledger.to_s))
232
282
  out.strip
233
283
  end
234
284
 
235
285
  def self.gltr_read_all(ledger,start_date,end_date)
236
- cmd=ssh + ' "bash -c \"' + fglgo("gltr_read") + ' {{ccode}} {{ledger}} {{start_date}} {{end_date}}\""'
286
+ cmd=fglgo("gltr_read") + ' {{ccode}} {{ledger}} {{start_date}} {{end_date}}'
237
287
  .gsub("{{ccode}}","T1")
238
288
  .gsub("{{ledger}}",ledger.to_s)
239
289
  .gsub("{{start_date}}",start_date)
240
290
  .gsub("{{end_date}}",end_date)
241
291
 
242
- out,_,_=Open3.capture2(cmd)
292
+ out=execute_ssh_command(cmd)
243
293
  JSON.parse(out)
244
294
  end
245
295
 
@@ -259,7 +309,7 @@ module PaisLegacy
259
309
  # Example of P&L for ledger 336 with 2 periods
260
310
  # '\SCREEN \T1 \336 \spar \N \2 \1 \Y \3 \4 \5 \N \01/07/2021 \30/06/2022 \N \ALL \ALL \N \2'
261
311
  def self.rptrun(ledger,date_to,from="0001",to="9999",program="rglch01a")
262
- 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'
263
313
  .gsub("{{program}}",program)
264
314
  .gsub("{{printer}}","SCREEN")
265
315
  .gsub("{{ccode}}","T1")
@@ -288,7 +338,7 @@ module PaisLegacy
288
338
  end
289
339
 
290
340
  def self.common_ledger_date(cmd,ledger,end_date)
291
- cmd=ssh + ' "bash -c \"' + fglgo(cmd) + ' {{ccode}} {{ledger}} {{end_date}}\""'
341
+ cmd=fglgo(cmd) + ' {{ccode}} {{ledger}} {{end_date}}'
292
342
  .gsub("{{ccode}}","T1")
293
343
  .gsub("{{ledger}}",ledger.to_s)
294
344
  .gsub("{{end_date}}",end_date)
@@ -309,13 +359,13 @@ module PaisLegacy
309
359
  # Invoice related
310
360
  # --------------------------------------------------------------------------------
311
361
  def legacy_import_invoices(ledger,date)
312
- cmd=PaisLegacy::Pais.ssh + ' "bash -c \"' + PaisLegacy::Pais.fglgo("invo_read") + ' {{ccode}} {{ledger}} {{date}}\""'
362
+ cmd=PaisLegacy::Pais.fglgo("invo_read") + ' {{ccode}} {{ledger}} {{date}}'
313
363
  .gsub("{{ccode}}","T1")
314
364
  .gsub("{{ledger}}",ledger.to_s)
315
365
  .gsub("{{date}}",date)
316
366
 
317
367
  puts cmd
318
- out,_,_=Open3.capture2(cmd)
368
+ out=execute_ssh_command(cmd)
319
369
  out.delete!("\\\\")
320
370
  begin
321
371
  out = JSON.parse(out)
@@ -332,7 +382,7 @@ module PaisLegacy
332
382
 
333
383
  date = Date.parse(date).strftime("%d/%m/%Y")
334
384
 
335
- 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}}'
336
386
  .gsub("{{ccode}}","T1")
337
387
  .gsub("{{ledger}}",ledger.to_s)
338
388
  .gsub("{{date}}",date)
@@ -340,7 +390,7 @@ module PaisLegacy
340
390
  .gsub("{{client}}",client)
341
391
 
342
392
  puts cmd
343
- out,_,_=Open3.capture2(cmd)
393
+ out=execute_ssh_command(cmd)
344
394
 
345
395
  begin
346
396
  out = JSON.parse(out)
@@ -366,21 +416,21 @@ module PaisLegacy
366
416
  # --------------------------------------------------------------------------------
367
417
 
368
418
  def self.table_indexes_cmd(table)
369
- ssh + ' "bash -c \"' + fglgo("db") + ' indexes\""'
419
+ fglgo("db") + ' indexes'
370
420
  end
371
421
 
372
422
  def self.table_indexes(table)
373
- out,_,_=Open3.capture2(table_indexes_cmd(table))
423
+ out=execute_ssh_command(table_indexes_cmd(table))
374
424
  out.split("\n").select{|i| i =~ /^#{table}_/}
375
425
  end
376
426
 
377
427
  def self.table_schema_cmd(table)
378
- ssh + ' "bash -c \"' + fglgo("db") + ' schema {{table}}\""'
428
+ fglgo("db") + ' schema {{table}}'
379
429
  .gsub("{{table}}",table)
380
430
  end
381
431
 
382
432
  def self.table_schema_raw(table)
383
- out,_,_=Open3.capture2(table_schema_cmd(table))
433
+ out=execute_ssh_command(table_schema_cmd(table))
384
434
  out.split("\n")
385
435
  end
386
436
 
@@ -392,12 +442,12 @@ module PaisLegacy
392
442
  end
393
443
 
394
444
  def self.table_data_cmd(table)
395
- ssh_with_tty + ' "bash -c \"' + fglgo("db") + ' data {{table}}\""'
445
+ fglgo("db") + ' data {{table}}'
396
446
  .gsub("{{table}}",table)
397
447
  end
398
448
 
399
449
  def self.table_data_raw(table)
400
- out,_,_=Open3.capture2(table_data_cmd(table))
450
+ out=execute_ssh_command(table_data_cmd(table))
401
451
  out.split("\n")
402
452
  end
403
453
 
@@ -416,20 +466,20 @@ module PaisLegacy
416
466
  end
417
467
 
418
468
  def self.table_unload_cmd(table)
419
- ssh + ' "bash -c \"' + fglgo("db") + ' unload {{table}}\""'
469
+ fglgo("db") + ' unload {{table}}'
420
470
  .gsub("{{table}}",table)
421
471
  end
422
472
 
423
473
  def self.table_unload(table)
424
- out,_,_=Open3.capture2(table_unload_cmd(table))
474
+ out=execute_ssh_command(table_unload_cmd(table))
425
475
  end
426
476
 
427
477
  def self.tables_cmd
428
- ssh + ' "bash -c \"' + fglgo("db") + ' tables\""'
478
+ fglgo("db") + ' tables'
429
479
  end
430
480
 
431
481
  def self.tables
432
- out,_,_=Open3.capture2(tables_cmd)
482
+ out=execute_ssh_command(tables_cmd)
433
483
  out.split("\n")
434
484
  end
435
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.6.0
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-06-17 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