sunat_books 0.0.2 → 0.0.3
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/.gitignore +1 -0
- data/.rvmrc +1 -0
- data/.travis.yml +2 -5
- data/README.mkd +9 -3
- data/lib/sunat_books.rb +6 -6
- data/lib/sunat_books/common_utils.rb +9 -0
- data/lib/sunat_books/csv/base.rb +63 -0
- data/lib/sunat_books/csv/option_error.rb +8 -0
- data/lib/sunat_books/pdf/base.rb +134 -0
- data/lib/sunat_books/pdf/buys.rb +36 -0
- data/lib/sunat_books/pdf/count_sum.rb +24 -0
- data/lib/{books → sunat_books/pdf}/diary_entries.rb +1 -3
- data/lib/{books → sunat_books/pdf}/layouts/buys.yml +0 -0
- data/lib/{books → sunat_books/pdf}/layouts/sales.yml +0 -0
- data/lib/{books → sunat_books/pdf}/locale.rb +0 -0
- data/lib/{books → sunat_books/pdf}/locales/es.yml +0 -0
- data/lib/sunat_books/pdf/page.rb +48 -0
- data/lib/{books → sunat_books/pdf}/pages_utils.rb +1 -1
- data/lib/sunat_books/pdf/sales.rb +35 -0
- data/lib/sunat_books/pdf/simplified_diary.rb +94 -0
- data/lib/sunat_books/pdf/trading_book.rb +50 -0
- data/lib/{books → sunat_books/pdf}/utils.rb +4 -6
- data/lib/sunat_books/ple/base.rb +76 -0
- data/lib/sunat_books/ple/buys.rb +38 -0
- data/lib/{ple_books → sunat_books/ple}/layouts/buys.yml +0 -0
- data/lib/{ple_books → sunat_books/ple}/layouts/sales.yml +0 -0
- data/lib/sunat_books/ple/sales.rb +22 -0
- data/sunat_books.gemspec +2 -2
- data/test/{csv_books → csv}/base_test.rb +8 -5
- data/test/{books → pdf}/base_test.rb +0 -0
- data/test/pdf/buys_test.rb +27 -0
- data/test/{books → pdf}/page_test.rb +4 -4
- data/test/{books → pdf}/pages_utils_test.rb +32 -2
- data/test/pdf/sales_test.rb +15 -0
- data/test/{books → pdf}/utils_test.rb +7 -1
- data/test/{ple_books_test.rb → ple/base_test.rb} +2 -2
- data/test/{ple_books → ple}/buys_test.rb +8 -8
- metadata +38 -35
- data/Gemfile.lock +0 -83
- data/lib/books/base.rb +0 -132
- data/lib/books/buys.rb +0 -72
- data/lib/books/count_sum.rb +0 -22
- data/lib/books/page.rb +0 -44
- data/lib/books/sales.rb +0 -73
- data/lib/books/simplified_diary.rb +0 -97
- data/lib/csv_books/base.rb +0 -67
- data/lib/csv_books/option_error.rb +0 -6
- data/lib/ple_books/base.rb +0 -75
- data/lib/ple_books/buys.rb +0 -36
- data/lib/ple_books/sales.rb +0 -20
- data/test/books/buys_test.rb +0 -57
data/lib/ple_books/buys.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "base"
|
4
|
-
|
5
|
-
module PleBooks
|
6
|
-
class Buys < Base
|
7
|
-
def initialize(ruc, tickets, month, year, options = {})
|
8
|
-
# ruc => company's ruc in string format
|
9
|
-
# tickets => an array of objects that respond to a layout's methods
|
10
|
-
# month => a number that represent a month
|
11
|
-
# year => a number that represent a year
|
12
|
-
# options =>
|
13
|
-
# :yml => to define a custom layout file
|
14
|
-
# :layout => to define a custom name for a specific layout method
|
15
|
-
|
16
|
-
book_name = self.class.name.downcase.sub("plebooks::", "")
|
17
|
-
dir = File.dirname(__FILE__)
|
18
|
-
yml_path = options[:yml] || "#{dir}/layouts/#{book_name}.yml"
|
19
|
-
fields = YAML.load_file(yml_path)
|
20
|
-
check_layout(options, fields)
|
21
|
-
content = !tickets.empty? ? 1 : 0
|
22
|
-
name = ple_book_name("8.1", ruc, month, year, nil, content)
|
23
|
-
|
24
|
-
filename = "#{path}#{name}.txt"
|
25
|
-
get_file(tickets, fields, filename)
|
26
|
-
end
|
27
|
-
|
28
|
-
def insert_layout_fields(options, fields)
|
29
|
-
options[:layout].each do |key, value|
|
30
|
-
i = fields.index(key.to_s)
|
31
|
-
fields.delete(key.to_s)
|
32
|
-
fields.insert(i, value)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
data/lib/ple_books/sales.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "ple_books/base"
|
4
|
-
|
5
|
-
module PleBooks
|
6
|
-
class Sales < Base
|
7
|
-
def initialize(ruc, tickets, month, year, options = {})
|
8
|
-
book_name = self.class.name.downcase.sub("plebooks::", "")
|
9
|
-
dir = File.dirname(__FILE__)
|
10
|
-
yml_path = options[:yml] || "#{dir}/layouts/#{book_name}.yml"
|
11
|
-
fields = YAML.load_file(yml_path)
|
12
|
-
check_layout(options, fields)
|
13
|
-
content = !tickets.empty? ? 1 : 0
|
14
|
-
|
15
|
-
name = ple_book_name("14.2", ruc, month, year, nil, content)
|
16
|
-
@filename = "#{path}#{name}.txt"
|
17
|
-
get_file(tickets, fields, @filename)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
data/test/books/buys_test.rb
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../helper"
|
4
|
-
require_relative "../../lib/books/pages_utils"
|
5
|
-
|
6
|
-
include PagesUtils
|
7
|
-
|
8
|
-
setup do
|
9
|
-
@company = Company.new(ruc: Faker::Number.number(11), name: Faker::Name.name)
|
10
|
-
end
|
11
|
-
|
12
|
-
test "render pdf, have a parseable pdf" do
|
13
|
-
tickets = []
|
14
|
-
view = Object.new.tap { |o| o.extend(Prawn::View) }
|
15
|
-
pdf = Books::Buys.new(@company, tickets, view, 2, 3015)
|
16
|
-
page_counter = PDF::Inspector::Page.analyze(pdf.render)
|
17
|
-
assert pdf.page_count == 1
|
18
|
-
assert page_counter.pages.size == 1
|
19
|
-
end
|
20
|
-
|
21
|
-
test "have correct text in header" do
|
22
|
-
tickets = []
|
23
|
-
view = Object.new.tap { |o| o.extend(Prawn::View) }
|
24
|
-
pdf = Books::Buys.new(@company, tickets, view, 2, 3015)
|
25
|
-
reader = PDF::Reader.new(StringIO.new(pdf.render))
|
26
|
-
assert reader.pages.first.text.include?("REGISTRO DE COMPRAS")
|
27
|
-
end
|
28
|
-
|
29
|
-
test "#page_not_full return a page" do
|
30
|
-
pages = []
|
31
|
-
setup_pages(pages, 20, 5)
|
32
|
-
first = pages.at(1)
|
33
|
-
page = page_not_full(first, pages, 20)
|
34
|
-
assert_equal page.class, Books::Page
|
35
|
-
end
|
36
|
-
|
37
|
-
test "#page_not_full return last page when length is less than page_max" do
|
38
|
-
pages = []
|
39
|
-
setup_pages(pages, 20, 5)
|
40
|
-
first_page = pages.at(1)
|
41
|
-
page = page_not_full(first_page, pages, 5)
|
42
|
-
assert_equal page, first_page
|
43
|
-
end
|
44
|
-
|
45
|
-
test "#page_not_full return new page when last page is full" do
|
46
|
-
pages = []
|
47
|
-
setup_pages(pages, 20, 5)
|
48
|
-
first_page = pages.at(1)
|
49
|
-
first_page.length += 5
|
50
|
-
current_page = pages.at(2)
|
51
|
-
page = page_not_full(first_page, pages, 5)
|
52
|
-
assert_equal page, current_page
|
53
|
-
assert_equal page.page_number, 2
|
54
|
-
end
|
55
|
-
|
56
|
-
test "#row_data prepare data that will be include in table's rows" do
|
57
|
-
end
|