rs.ge 0.0.17 → 0.1.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/rs.rb +5 -71
- data/lib/rs/models/waybill_unit.rb +21 -0
- data/lib/rs/requests/base_request.rb +20 -0
- data/lib/rs/requests/waybill_unit_request.rb +44 -0
- data/lib/rs/version.rb +1 -2
- data/rs.gemspec +3 -5
- data/spec/requests/waybill_units_spec.rb +24 -0
- data/spec/spec_helper.rb +3 -85
- metadata +14 -42
- data/lib/rs/car.rb +0 -6
- data/lib/rs/dict.rb +0 -259
- data/lib/rs/invoice.rb +0 -18
- data/lib/rs/print.rb +0 -331
- data/lib/rs/sys.rb +0 -128
- data/lib/rs/waybill.rb +0 -483
- data/problems.md +0 -1
- data/spec/rs/car_spec.rb +0 -25
- data/spec/rs/dict_spec.rb +0 -181
- data/spec/rs/open_user.rb +0 -12
- data/spec/rs/pdf_spec.rb +0 -21
- data/spec/rs/sys_spec.rb +0 -77
- data/spec/rs/waybill_delete_spec.rb +0 -63
- data/spec/rs/waybill_invoice_spec.rb +0 -19
- data/spec/rs/waybill_spec.rb +0 -205
- data/spec/rs/waybill_validation_spec.rb +0 -149
data/lib/rs/invoice.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
|
-
module RS
|
4
|
-
|
5
|
-
# ქმნის ფაქტურას მოცემული ზედნადებისთვის.
|
6
|
-
#
|
7
|
-
# ზედნადებზე ფაქტურის გამოწერა ხდება მხოლოდ დახურულ მდგომარეობაში.
|
8
|
-
def self.save_waybill_invoice(waybill, params = {})
|
9
|
-
RS.validate_presence_of(params, 'su', 'sp')
|
10
|
-
client = RS.waybill_service
|
11
|
-
params2 = params.merge( 'waybill_id' => waybill.id, 'in_inv_id' => 0 )
|
12
|
-
response = client.request 'save_invoice' do |soap|
|
13
|
-
soap.body = params2
|
14
|
-
end
|
15
|
-
waybill.invoice_id = response[:save_invoice_response][:out_inv_id].to_i
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
data/lib/rs/print.rb
DELETED
@@ -1,331 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
|
-
require 'c12-commons'
|
4
|
-
|
5
|
-
module RS
|
6
|
-
|
7
|
-
def self.print_waybill(waybill, file, opts = {})
|
8
|
-
C12::PDF::Document.generate file, :page_size => 'A4', :margin => [15, 15] do |pdf|
|
9
|
-
build_pdf waybill, pdf, opts
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.render_waybill(waybill, opts = {})
|
14
|
-
pdf = C12::PDF::Document.new :page_size => 'A4', :margin => [15, 15]
|
15
|
-
build_pdf waybill, pdf, opts
|
16
|
-
pdf.render
|
17
|
-
end
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
HIGHLIGHT = 'eeeeee'
|
22
|
-
NUM_CELL_WIDTH = 18
|
23
|
-
DEF_FONT_SIZE = 7
|
24
|
-
SMALLER_FONT_SIZE = 6
|
25
|
-
SMALL_FONT_SIZE = 5
|
26
|
-
FOOTER_HEIGHT = 250
|
27
|
-
|
28
|
-
def self.build_pdf(waybill, pdf, opts = {})
|
29
|
-
pdf.change_font :default, DEF_FONT_SIZE
|
30
|
-
render_cell_01(waybill, pdf)
|
31
|
-
pdf.move_down 10
|
32
|
-
render_cell_02_and_03(waybill, pdf)
|
33
|
-
pdf.move_down 10
|
34
|
-
render_cells_04_and_05(waybill, pdf)
|
35
|
-
pdf.move_down 10
|
36
|
-
render_cells_06_07_and_08(waybill, pdf)
|
37
|
-
pdf.move_down 10
|
38
|
-
render_cells_09_and_10(waybill, pdf)
|
39
|
-
pdf.move_down 10
|
40
|
-
render_cells_11_and_12(waybill, pdf)
|
41
|
-
pdf.move_down 20
|
42
|
-
# items and footer
|
43
|
-
pdf.change_font :serif, DEF_FONT_SIZE + 2
|
44
|
-
pdf.text 'სასაქონლო ზედნადების ცხრილი', :align => :center
|
45
|
-
pdf.move_down 10
|
46
|
-
pdf.change_font :default, DEF_FONT_SIZE
|
47
|
-
last_index = render_items waybill, 0, pdf
|
48
|
-
pdf.move_down 5
|
49
|
-
render_footer(waybill, pdf, 0, last_index)
|
50
|
-
render_remaining_items(waybill, last_index + 1, pdf)
|
51
|
-
# numerate pages
|
52
|
-
pages = pdf.page_count
|
53
|
-
(1..pages).each do |i|
|
54
|
-
pdf.go_to_page i
|
55
|
-
pdf.bounding_box [0,0], :width => 300, :height => 15 do
|
56
|
-
pdf.text opts[:bottom_text], :inline_format => true
|
57
|
-
end if opts[:bottom_text]
|
58
|
-
txt = "გვერდი #{i} / #{pages}-დან"
|
59
|
-
txt_w = pdf.width_of txt
|
60
|
-
pdf.bounding_box [pdf.bounds.right - pdf.bounds.left - txt_w, 0], :width => txt_w, :height => 15 do
|
61
|
-
pdf.text txt
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
def self.render_remaining_items(waybill, from_index, pdf)
|
67
|
-
return if waybill.items.size < from_index
|
68
|
-
pdf.start_new_page
|
69
|
-
pdf.change_font :serif, 10
|
70
|
-
pdf.text "სასაქონლო ზედნადები №#{waybill.number}", :align => :center
|
71
|
-
pdf.change_font :default, DEF_FONT_SIZE
|
72
|
-
pdf.move_down 20
|
73
|
-
last_index = render_items waybill, from_index, pdf
|
74
|
-
pdf.move_down 5
|
75
|
-
render_footer(waybill, pdf, from_index, last_index)
|
76
|
-
render_remaining_items(waybill, last_index + 1, pdf)
|
77
|
-
end
|
78
|
-
|
79
|
-
def self.render_cell_01(waybill, pdf)
|
80
|
-
items = [['', 'სასაქონლო ზედნადები №', '1', '', waybill.number]]
|
81
|
-
cols = place_table_into_center [0, 150, NUM_CELL_WIDTH, 5, 100], pdf
|
82
|
-
tbl = pdf.make_table items, :cell_style => {:padding => 4, :align => :center}, :column_widths => cols do
|
83
|
-
column(0..1).style(:borders => [], :align => :left, :size => DEF_FONT_SIZE + 2)
|
84
|
-
column(2).style(:background_color => HIGHLIGHT)
|
85
|
-
column(3).style(:borders => [])
|
86
|
-
end
|
87
|
-
tbl.draw
|
88
|
-
end
|
89
|
-
|
90
|
-
def self.render_cell_02_and_03(waybill, pdf)
|
91
|
-
d = C12::KA.format_date(waybill.activate_date)
|
92
|
-
t = waybill.activate_date ? waybill.activate_date.strftime('%H:%M') : ''
|
93
|
-
items1 = [['', '2', '', d, '', '3', '', t]]
|
94
|
-
items2 = [['', '', 'თარიღი (რიცხვი, თვე, წელი)', '', '', 'დრო (საათი, წუთი)']]
|
95
|
-
cols1 = place_table_into_center [0, NUM_CELL_WIDTH, 5, 80, 32, NUM_CELL_WIDTH, 5, 80], pdf
|
96
|
-
cols2 = place_table_into_center [0, NUM_CELL_WIDTH + 5, 80, 32, NUM_CELL_WIDTH + 5, 80], pdf
|
97
|
-
tbl1 = pdf.make_table items1, :cell_style => {:padding => 4, :align => :center}, :column_widths => cols1 do
|
98
|
-
column(0).style({:borders => []})
|
99
|
-
column(1).style({:background_color => HIGHLIGHT})
|
100
|
-
column(2).style({:borders => []})
|
101
|
-
column(4).style({:borders => []})
|
102
|
-
column(5).style({:background_color => HIGHLIGHT})
|
103
|
-
column(6).style({:borders => []})
|
104
|
-
end
|
105
|
-
tbl2 = pdf.make_table items2, :cell_style => {:padding => 1, :align => :center, :borders => [], :size => SMALL_FONT_SIZE}, :column_widths => cols2
|
106
|
-
tbl1.draw
|
107
|
-
tbl2.draw
|
108
|
-
end
|
109
|
-
|
110
|
-
def self.render_cells_04_and_05(waybill, pdf)
|
111
|
-
tbl1 = tax_code_box(pdf, 'გამყიდველი (გამგზავნი)', '4', waybill.seller_tin)
|
112
|
-
tbl2 = tax_code_box(pdf, 'მყიდველი (მიმღები)', '5', waybill.buyer_tin)
|
113
|
-
items = [[tbl1, '', tbl2]]
|
114
|
-
widths = [tbl1.width, pdf.bounds.width/2 - tbl1.width, tbl2.width]
|
115
|
-
pdf.table items, :cell_style => {:padding => 0, :borders => []}, :column_widths => widths
|
116
|
-
pdf.move_down 5
|
117
|
-
items = [[C12.nvl(waybill.seller_name, ''), '', C12.nvl(waybill.buyer_name, '')], ['დასახელება, ან სახელი და გვარი', '', 'დასახელება, ან სახელი და გვარი']]
|
118
|
-
pdf.table items, :cell_style => {:padding => 0, :borders => [], :align => :center}, :column_widths => [pdf.bounds.width/2 - 5, 10, pdf.bounds.width/2 - 5] do
|
119
|
-
row(0).style(:borders => [:bottom], :padding => 5, :size => DEF_FONT_SIZE + 1)
|
120
|
-
column(1).style(:borders => [])
|
121
|
-
row(1).style(:size => SMALL_FONT_SIZE)
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
def self.render_cells_06_07_and_08(waybill, pdf)
|
126
|
-
items1 = [['6', 'ოპერაციის შინაარსი', RS::WaybillType::NAMES[waybill.type]]]
|
127
|
-
tbl1 = pdf.make_table items1, :cell_style => {:align => :center}, :column_widths => [NUM_CELL_WIDTH, 70, 100] do
|
128
|
-
column(0).style(:background_color => HIGHLIGHT)
|
129
|
-
column(1).style(:borders => [], :size => DEF_FONT_SIZE - 1)
|
130
|
-
end
|
131
|
-
items2 = [['7', '', waybill.start_address], ['', '', 'ტრანსპორტირების დაწყების ადგილი (მისამართი)'],
|
132
|
-
['8', '', waybill.end_address ], ['', '', 'ტრანსპორტირების დასრულების ადგილი (მისამართი)']]
|
133
|
-
tbl2 = pdf.make_table items2, :column_widths => [NUM_CELL_WIDTH, 5, pdf.bounds.width - NUM_CELL_WIDTH - 5 - 10 - tbl1.width] do
|
134
|
-
column(0).style(:align => :center)
|
135
|
-
column(1).style(:borders => [])
|
136
|
-
column(0).row(0).style(:background_color => HIGHLIGHT)
|
137
|
-
column(0).row(2).style(:background_color => HIGHLIGHT)
|
138
|
-
row(1).style(:align => :center, :size => SMALL_FONT_SIZE, :padding => [0, 0, 5, 0], :borders => [])
|
139
|
-
row(3).style(:align => :center, :size => SMALL_FONT_SIZE, :padding => 0, :borders => [])
|
140
|
-
end
|
141
|
-
pdf.table [[tbl1, '', tbl2]], :column_widths => [nil, 10, nil], :cell_style => {:borders => []}
|
142
|
-
end
|
143
|
-
|
144
|
-
def self.render_cells_09_and_10(waybill, pdf)
|
145
|
-
items = [['', '9', '', RS::TransportType::NAMES[waybill.transport_type_id], '', '10', '', waybill.car_number],
|
146
|
-
['', '', '', 'ტრანსპორტირების სახე', '', '', '', 'სატრანსპორტო საშუალების სახელმწიფო ნომერი']]
|
147
|
-
column_widths = place_table_into_center [0, NUM_CELL_WIDTH, 5, 120, 10, NUM_CELL_WIDTH, 5, 120], pdf
|
148
|
-
pdf.table items, :column_widths => column_widths, :cell_style => {:align => :center, :padding => 4} do
|
149
|
-
column(0).style(:borders => [])
|
150
|
-
column(2).style(:borders => [])
|
151
|
-
column(4).style(:borders => [])
|
152
|
-
column(6).style(:borders => [])
|
153
|
-
row(0).column(1).style(:background_color => HIGHLIGHT)
|
154
|
-
row(0).column(5).style(:background_color => HIGHLIGHT)
|
155
|
-
row(1).style(:size => SMALL_FONT_SIZE, :borders => [], :padding => 0)
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
|
-
def self.render_cells_11_and_12(waybill, pdf)
|
160
|
-
t11 = tax_code_box(pdf, 'სატრანსპორტო საშუალების მძღოლის პირადი ნომერი', '11', waybill.driver_tin, :caption_size => DEF_FONT_SIZE - 1)
|
161
|
-
t12A = pdf.make_table [['12', '', C12.number_format(waybill.transportation_cost)], ['', '', 'თანხა ლარებში']], :column_widths => [NUM_CELL_WIDTH, 5, 100], :cell_style => {:padding => 4, :align => :center} do
|
162
|
-
column(1).style(:borders => [])
|
163
|
-
column(0).row(0).style(:background_color => HIGHLIGHT)
|
164
|
-
row(1).style(:borders => [], :size => SMALL_FONT_SIZE, :padding => 0)
|
165
|
-
end
|
166
|
-
t12 = pdf.make_table [['გამყიდველის (გამგზავნის) / მყიდველის (მიმღების) მიერ გაწეული ტრანსპორტირების ხარჯი', t12A]], :cell_style => {:borders => [], :padding => 0}, :column_widths => [150] do
|
167
|
-
column(0).style(:size => DEF_FONT_SIZE - 1)
|
168
|
-
end
|
169
|
-
pdf.table [[t11, '', t12]], :cell_style => {:borders => []}
|
170
|
-
end
|
171
|
-
|
172
|
-
def self.render_items(waybill, from, pdf)
|
173
|
-
col_widths = [20, pdf.bounds.width - 20 - 55*5, 55, 55, 55, 55, 55]
|
174
|
-
items = [['№', 'საქონლის დასახელება', 'საქონლის კოდი', 'საქონლის ზომის ერთეული', 'საქონლის რაოდენობა', 'საქონლის ერთეულის ფასი*', 'საქონლის ფასი*'], ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII']]
|
175
|
-
pdf.table items, :column_widths => col_widths, :cell_style => {:align => :center, :valign => :center, :size => SMALLER_FONT_SIZE} do
|
176
|
-
row(1).style(:padding => 2)
|
177
|
-
end
|
178
|
-
index = from
|
179
|
-
nil_from = nil_to = nil
|
180
|
-
while true do
|
181
|
-
item = waybill.items[index]
|
182
|
-
item_table = render_item(index - from, item, col_widths, pdf)
|
183
|
-
y = pdf.y - item_table.height
|
184
|
-
if y > FOOTER_HEIGHT
|
185
|
-
item_table.draw
|
186
|
-
else
|
187
|
-
index -= 1 unless item.nil?
|
188
|
-
break
|
189
|
-
end
|
190
|
-
if item.nil?
|
191
|
-
nil_from = pdf.y - 5 if nil_from.nil?
|
192
|
-
nil_to = pdf.y - 5
|
193
|
-
else
|
194
|
-
index += 1
|
195
|
-
end
|
196
|
-
end
|
197
|
-
if nil_from and nil_from > nil_to
|
198
|
-
pdf.stroke_color('ff0000')
|
199
|
-
[[10, nil_from, pdf.bounds.width - 10, nil_from],
|
200
|
-
[10, nil_from, pdf.bounds.width - 10, nil_to],
|
201
|
-
[10, nil_to, pdf.bounds.width - 10, nil_to],
|
202
|
-
[10, nil_to, pdf.bounds.width - 10, nil_from],].each { |p| pdf.stroke_line(*p) }
|
203
|
-
pdf.stroke_color('000000')
|
204
|
-
end
|
205
|
-
index
|
206
|
-
end
|
207
|
-
|
208
|
-
def self.render_item(num, item, widths, pdf)
|
209
|
-
if item
|
210
|
-
items = [[num + 1, item.prod_name, item.bar_code, item.unit_name, C12.number_format(item.quantity, 5), C12.number_format(item.price), C12.number_format(item.quantity * item.price)]]
|
211
|
-
else
|
212
|
-
items = [[' ']*7]
|
213
|
-
end
|
214
|
-
pdf.make_table items, :column_widths => widths, :cell_style => {:size => SMALLER_FONT_SIZE} do
|
215
|
-
column(0).style(:align => :right)
|
216
|
-
column(2).style(:align => :center)
|
217
|
-
column(3).style(:align => :center)
|
218
|
-
column(4).style(:align => :right)
|
219
|
-
column(5).style(:align => :right)
|
220
|
-
column(6).style(:align => :right)
|
221
|
-
end
|
222
|
-
end
|
223
|
-
|
224
|
-
def self.render_footer(waybill, pdf, from, to)
|
225
|
-
render_cell_13(waybill, pdf, from, to)
|
226
|
-
pdf.move_down 20
|
227
|
-
render_cells_14_and_15(waybill, pdf)
|
228
|
-
pdf.move_down 5
|
229
|
-
render_cells_16_and_17(waybill, pdf)
|
230
|
-
pdf.move_down 20
|
231
|
-
render_cell_18(waybill, pdf)
|
232
|
-
pdf.move_down 5
|
233
|
-
render_cell_19(waybill, pdf)
|
234
|
-
pdf.move_down 10
|
235
|
-
pdf.text '* დღგ-ს გადამხდელთათვის დღგ-ს ჩათვლით, აქციზის გადამხდელთათვის აქციზურ საქონელზე დღგ-ს და აქციზის ჩათვლით', :size => SMALLER_FONT_SIZE
|
236
|
-
end
|
237
|
-
|
238
|
-
def self.render_cell_13(waybill, pdf, from, to)
|
239
|
-
total = 0
|
240
|
-
waybill.items[from..to].each {|item| total += item.price * item.quantity }
|
241
|
-
items = [['13', '', "#{C12.number_format total} ლარი", '', C12::KA::tokenize(total*1.0, :currency => 'ლარი', :currency_minor => 'თეთრი')]]
|
242
|
-
pdf.table items, :column_widths => [NUM_CELL_WIDTH, 5, 120, 5, pdf.bounds.width - NUM_CELL_WIDTH - 130] do
|
243
|
-
column(0).style(:background_color => HIGHLIGHT)
|
244
|
-
column(1).style(:borders => [])
|
245
|
-
column(2).style(:align => :center)
|
246
|
-
column(3).style(:borders => [])
|
247
|
-
column(4).style(:align => :center)
|
248
|
-
end
|
249
|
-
pdf.move_down 2
|
250
|
-
pdf.text 'მიწოდებული საქონლის მთლიანი თანხა (ციფრებით და სიტყვიერად)', :align => :center, :size => SMALL_FONT_SIZE
|
251
|
-
end
|
252
|
-
|
253
|
-
def self.render_cells_14_and_15(waybill, pdf)
|
254
|
-
items = [['14', '', waybill.seller_info, '', '15', '', waybill.buyer_info], ['','', 'გამყიდველი (გამგზავნი) / საქონლის ჩაბარებაზე უფლებამოსილი პირი (თანამდებობა, სახელი და გვარი)', '', '', '', 'მყიდველი (მიმღები), საქონლის ჩაბარებაზე უფლებამოსილი პირი (თანამდებობა, სახელი და გვარი)']]
|
255
|
-
w = (pdf.bounds.width - 2 * NUM_CELL_WIDTH - 20) / 2
|
256
|
-
pdf.table items, :column_widths => [NUM_CELL_WIDTH, 5, w, 10, NUM_CELL_WIDTH, 5, w], :cell_style => {:align => :center} do
|
257
|
-
row(1).style(:borders => [], :size => SMALL_FONT_SIZE, :padding => 2)
|
258
|
-
row(0).column(1).style(:borders => [])
|
259
|
-
row(0).column(3).style(:borders => [])
|
260
|
-
row(0).column(5).style(:borders => [])
|
261
|
-
row(0).column(0).style(:background_color => HIGHLIGHT)
|
262
|
-
row(0).column(4).style(:background_color => HIGHLIGHT)
|
263
|
-
end
|
264
|
-
end
|
265
|
-
|
266
|
-
def self.render_cells_16_and_17(waybill, pdf)
|
267
|
-
items = [['', '16', '', '', '', '17', '', ''], ['', '', '', 'ხელმოწერა', '', '', '', 'ხელმოწერა']]
|
268
|
-
widths = place_table_into_center [0, NUM_CELL_WIDTH, 5, 150, 10, NUM_CELL_WIDTH, 5, 150], pdf
|
269
|
-
pdf.table items, :column_widths => widths do
|
270
|
-
column(0).style(:borders => [])
|
271
|
-
row(0).column(1).style(:background_color => HIGHLIGHT)
|
272
|
-
row(0).column(5).style(:background_color => HIGHLIGHT)
|
273
|
-
column(2).style(:borders => [])
|
274
|
-
column(4).style(:borders => [])
|
275
|
-
column(6).style(:borders => [])
|
276
|
-
row(1).style(:borders => [], :size => SMALL_FONT_SIZE, :padding => 2, :align => :center)
|
277
|
-
end
|
278
|
-
end
|
279
|
-
|
280
|
-
def self.render_cell_18(waybill, pdf)
|
281
|
-
d = waybill.delivery_date ? C12::KA.format_date(waybill.delivery_date) : ' '
|
282
|
-
t = waybill.delivery_date ? waybill.delivery_date.strftime('%H:%M') : ' '
|
283
|
-
items = [['', '18', 'მიწოდებული საქონლის ჩაბარების', d, '', t], ['', '', '', 'თარიღი (რიცხვი, თვე, წელი)', '', 'დრო (საათი, წუთი)']]
|
284
|
-
widths = place_table_into_center [0, NUM_CELL_WIDTH, 150, 130, 5, 50], pdf
|
285
|
-
pdf.table items, :column_widths => widths do
|
286
|
-
column(0).style(:borders => [])
|
287
|
-
row(0).column(1).style(:background_color => HIGHLIGHT)
|
288
|
-
column(2).style(:borders => [])
|
289
|
-
column(4).style(:borders => [])
|
290
|
-
row(0).style(:align => :center)
|
291
|
-
row(1).style(:borders => [], :align => :center, :size => SMALL_FONT_SIZE, :padding => 2)
|
292
|
-
end
|
293
|
-
end
|
294
|
-
|
295
|
-
def self.render_cell_19(waybill, pdf)
|
296
|
-
items = [['19', '', waybill.comment], ['', '', 'შენიშვნა']]
|
297
|
-
pdf.table items, :column_widths => [NUM_CELL_WIDTH, 5, pdf.bounds.width - NUM_CELL_WIDTH - 5] do
|
298
|
-
column(0).row(0).style(:background_color => HIGHLIGHT)
|
299
|
-
column(1).row(0).style(:borders => [])
|
300
|
-
row(1).style(:borders => [], :size => SMALL_FONT_SIZE, :align => :center, :padding => 2)
|
301
|
-
end
|
302
|
-
end
|
303
|
-
|
304
|
-
# Resize the first column so that the rest of the table to be placed in the center of the area.
|
305
|
-
def self.place_table_into_center(column_widths, pdf)
|
306
|
-
tbl_width = column_widths.inject {|sum, n| sum + n }
|
307
|
-
column_widths[0] = (pdf.bounds.width - tbl_width) / 2
|
308
|
-
column_widths
|
309
|
-
end
|
310
|
-
|
311
|
-
# Prepare table with tax code.
|
312
|
-
def self.tax_code_box(pdf, title, number, tax_code, opts = {})
|
313
|
-
# tax code table
|
314
|
-
tax_chars = C12.empty?(tax_code) ? [' '] * 11 : tax_code.split(//)
|
315
|
-
tax_chars = tax_chars[0..11] if tax_chars.size > 11
|
316
|
-
items = [[number, ''] + tax_chars]
|
317
|
-
widths = [NUM_CELL_WIDTH, 5] + ([12] * tax_chars.size)
|
318
|
-
t1 = pdf.make_table items, :cell_style => {:padding => 4, :align => :center}, :column_widths => widths do
|
319
|
-
column(0).style({:background_color => HIGHLIGHT})
|
320
|
-
column(1).style(:borders => [])
|
321
|
-
end
|
322
|
-
# combine with caption
|
323
|
-
caption_width = opts[:caption_width] || 90
|
324
|
-
table = pdf.make_table [[title, t1]], :cell_style => {:padding => 0, :borders => []}, :column_widths => [caption_width] do
|
325
|
-
column(0).style(:valign => :center)
|
326
|
-
column(0).style(:size => opts[:caption_size]) if opts[:caption_size]
|
327
|
-
end
|
328
|
-
table
|
329
|
-
end
|
330
|
-
|
331
|
-
end
|
data/lib/rs/sys.rb
DELETED
@@ -1,128 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
|
-
module RS
|
4
|
-
|
5
|
-
# სერვისის მომხმარებლის კლასი.
|
6
|
-
class User
|
7
|
-
attr_accessor :id, :user_name, :payer_id, :ip, :name
|
8
|
-
end
|
9
|
-
|
10
|
-
# აბრუნებს თქვენი კომპიუტერის გარე IP მისამართს.
|
11
|
-
def self.what_is_my_ip
|
12
|
-
client = RS.waybill_service
|
13
|
-
response = client.request 'what_is_my_ip'
|
14
|
-
response.to_hash[:what_is_my_ip_response][:what_is_my_ip_result]
|
15
|
-
end
|
16
|
-
|
17
|
-
# ქმნის ახალ მომხმარებელს.
|
18
|
-
#
|
19
|
-
# გადაეცემა შემდეგი პარამეტრები:
|
20
|
-
#
|
21
|
-
# user_name -- მომხმარებლის სახელი
|
22
|
-
# user_password -- მომხმარებლის პაროლი
|
23
|
-
# ip -- მანქანის IP მისამართი, რომლიდანაც უნდა მოხდეს ამ მომხმარებლის შემოსვლა
|
24
|
-
# name -- მაღაზიის სახელი
|
25
|
-
# su -- სერვისის მომხმარებლის სახელი
|
26
|
-
# sp -- სერვისის მომხმარებლის პაროლი
|
27
|
-
def self.create_service_user(params)
|
28
|
-
RS.validate_presence_of(params, 'user_name', 'user_password', 'ip', 'name', 'su', 'sp')
|
29
|
-
client = RS.waybill_service
|
30
|
-
response = client.request 'create_service_user' do
|
31
|
-
soap.body = params
|
32
|
-
end
|
33
|
-
response.to_hash[:create_service_user_response][:create_service_user_result]
|
34
|
-
end
|
35
|
-
|
36
|
-
# აბრუნებს სერვისის მომხმარებლელბის სიას.
|
37
|
-
#
|
38
|
-
# გადაეცემა შემდეგი პარამეტრები:
|
39
|
-
#
|
40
|
-
# user_name -- მომხმარებლის სახელი
|
41
|
-
# user_password -- მომხმარებლი პაროლი
|
42
|
-
#
|
43
|
-
# ბრუნდება #{User}-ების მასივი.
|
44
|
-
def self.get_service_users(params)
|
45
|
-
RS.validate_presence_of(params, 'user_name', 'user_password')
|
46
|
-
client = RS.waybill_service
|
47
|
-
response = client.request 'get_service_users' do
|
48
|
-
soap.body = params
|
49
|
-
end
|
50
|
-
users_hash_array = response.to_hash[:get_service_users_response][:get_service_users_result][:service_users][:service_user]
|
51
|
-
#puts users_hash_array
|
52
|
-
users = []
|
53
|
-
users_hash_array.each do |user_hash|
|
54
|
-
user = User.new
|
55
|
-
user.id = user_hash[:id]
|
56
|
-
user.user_name = user_hash[:user_name]
|
57
|
-
user.payer_id = user_hash[:un_id]
|
58
|
-
user.ip = user_hash[:ip]
|
59
|
-
user.name = user_hash[:name]
|
60
|
-
users << user
|
61
|
-
end
|
62
|
-
users
|
63
|
-
end
|
64
|
-
|
65
|
-
# სერვისის მომხმარებლის პაროლის შემოწმება.
|
66
|
-
#
|
67
|
-
# გადაეცემა შემდეგი პარამეტრები:
|
68
|
-
#
|
69
|
-
# su -- სერვისის მომხმარებელი
|
70
|
-
# sp -- სერვისის მომხმარებლის პაროლი
|
71
|
-
#
|
72
|
-
# აბრუნებს #{User} ობიექტს, ცარიელი ip-თი ან <code>nil</code>-ს თუ არასწორი მომხმარებელია.
|
73
|
-
def self.check_service_user(params)
|
74
|
-
RS.validate_presence_of(params, 'su', 'sp')
|
75
|
-
client = RS.waybill_service
|
76
|
-
response = client.request 'chek_service_user' do
|
77
|
-
soap.body = params
|
78
|
-
end
|
79
|
-
if response[:chek_service_user_response][:chek_service_user_result]
|
80
|
-
payer_id = response[:chek_service_user_response][:un_id]
|
81
|
-
user_id = response[:chek_service_user_response][:s_user_id]
|
82
|
-
user = User.new
|
83
|
-
user.id = user_id
|
84
|
-
user.user_name = params['su']
|
85
|
-
user.payer_id = payer_id
|
86
|
-
user
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
# სერვისის მომხმარებლის მონაცემების შეცვლა.
|
91
|
-
#
|
92
|
-
# გადაეცემა შემდეგი პარამეტრები:
|
93
|
-
#
|
94
|
-
# user_name -- მომხმარებლის სახელი
|
95
|
-
# user_password -- პაროლი
|
96
|
-
# ip -- მანქანის მისამართი,
|
97
|
-
# name -- მაღაზიის დასახელება
|
98
|
-
# su -- მომხამრებლის სახელი
|
99
|
-
# sp -- პაროლი
|
100
|
-
def self.update_service_user(params)
|
101
|
-
RS.validate_presence_of(params, 'user_name', 'user_password', 'ip', 'name', 'su', 'sp')
|
102
|
-
client = RS.waybill_service
|
103
|
-
response = client.request 'update_service_user' do
|
104
|
-
soap.body = params
|
105
|
-
end
|
106
|
-
#puts params
|
107
|
-
#puts response.to_hash
|
108
|
-
response.to_hash[:update_service_user_response][:update_service_user_result]
|
109
|
-
end
|
110
|
-
|
111
|
-
# აბრუნებს ორგანიზაციის/პიროვნების სახელს მისი საიდენტიფიკაციო ნომრიდან.
|
112
|
-
#
|
113
|
-
# გადაეცემა შემდეგი პარამეტრები:
|
114
|
-
#
|
115
|
-
# su -- მომხამრებლის სახელი
|
116
|
-
# sp -- პაროლი
|
117
|
-
# tin -- საიდენტიფიკაციო ნომერი
|
118
|
-
def self.get_name_from_tin(params)
|
119
|
-
RS.ensure_open_user(params)
|
120
|
-
RS.validate_presence_of(params, 'su', 'sp', 'tin')
|
121
|
-
client = RS.waybill_service
|
122
|
-
response = client.request 'get_name_from_tin' do
|
123
|
-
soap.body = params
|
124
|
-
end
|
125
|
-
response.to_hash[:get_name_from_tin_response][:get_name_from_tin_result]
|
126
|
-
end
|
127
|
-
|
128
|
-
end
|