sunnyside 0.0.2
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 +7 -0
- data/bin/sunnyside +6 -0
- data/lib/sunnyside/cash_receipts/cash_receipt.rb +169 -0
- data/lib/sunnyside/cash_receipts/ics.rb +69 -0
- data/lib/sunnyside/expiring_auth.rb +101 -0
- data/lib/sunnyside/ftp.rb +97 -0
- data/lib/sunnyside/ledger/auth_report.rb +110 -0
- data/lib/sunnyside/ledger/edi.rb +181 -0
- data/lib/sunnyside/ledger/ledger.rb +142 -0
- data/lib/sunnyside/ledger/private.rb +70 -0
- data/lib/sunnyside/menu.rb +41 -0
- data/lib/sunnyside/models/db_setup.rb +158 -0
- data/lib/sunnyside/models/sequel_classes.rb +12 -0
- data/lib/sunnyside/reports/mco_mltc.rb +43 -0
- data/lib/sunnyside/reports/pdf_report.rb +162 -0
- data/lib/sunnyside/reports/pdf_report_draft.rb +127 -0
- data/lib/sunnyside/reports/private.rb +55 -0
- data/lib/sunnyside/reports/report.rb +74 -0
- data/lib/sunnyside/version.rb +3 -0
- data/lib/sunnyside.rb +27 -0
- metadata +148 -0
@@ -0,0 +1,162 @@
|
|
1
|
+
require "money"
|
2
|
+
require "pp"
|
3
|
+
module Sunnyside
|
4
|
+
|
5
|
+
def self.run_report
|
6
|
+
print "Type in the check number in order to create the PDF file: "
|
7
|
+
check = gets.chomp
|
8
|
+
print "Now enter the date the check was posted to FUND EZ: "
|
9
|
+
postted = gets.chomp
|
10
|
+
Reporter.new(check, posted).pdf_report
|
11
|
+
end
|
12
|
+
class Reporter
|
13
|
+
include Sunnyside
|
14
|
+
attr_reader :check, :posted, :check_number
|
15
|
+
|
16
|
+
def initialize(check, posted)
|
17
|
+
@check_number = check
|
18
|
+
@check = Claim.where(check_number: check)
|
19
|
+
@posted = posted
|
20
|
+
end
|
21
|
+
|
22
|
+
def pdf_report
|
23
|
+
if check.count == 0
|
24
|
+
puts "No claims were found with this check number. Please re-enter."
|
25
|
+
self.run_report
|
26
|
+
else
|
27
|
+
create_pdf
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def provider
|
32
|
+
Provider[check.get(:provider_id)].name
|
33
|
+
end
|
34
|
+
|
35
|
+
def create_pdf
|
36
|
+
puts "creating report for #{provider} - Check Number: #{check.get(:check_number)} - posted on: #{posted}"
|
37
|
+
report.collate_services
|
38
|
+
end
|
39
|
+
|
40
|
+
def report
|
41
|
+
CheckEOP.new(check, posted, provider, check_number)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
class CheckEOP < Reporter
|
46
|
+
attr_reader :posted, :check_number, :claims, :pdf
|
47
|
+
|
48
|
+
def initialize(claims, posted, provider, check_number)
|
49
|
+
@claims = claims
|
50
|
+
@posted = posted
|
51
|
+
@provider = provider
|
52
|
+
@check_number = check_number
|
53
|
+
@pdf = Prawn::Document.generate("#{LOCAL_FILES}/#{provider}-#{check_number}.PDF")
|
54
|
+
end
|
55
|
+
|
56
|
+
def collate_services
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
# def create_pdf
|
63
|
+
# puts "#{Provider[@provider_id].name}: #{Payment[check].check_number}"
|
64
|
+
# provider = Provider[@provider_id].name.gsub(/\/|\\/, '')
|
65
|
+
# Prawn::Document.generate("./PDF-REPORTS/#{provider}_CHECK_#{Payment[@check].check_number}.pdf", opts) do |pdf|
|
66
|
+
# pdf.move_down 50
|
67
|
+
# pdf.text "CLAIMS FOR #{Provider[@provider_id].name} - CHECK NUMBER: #{Payment[@check].check_number} - CHECK TOTAL: #{currency(total)}"
|
68
|
+
# insert_claim_table(pdf)
|
69
|
+
# pdf.move_down 10
|
70
|
+
# if !@takeback.empty?
|
71
|
+
# pdf.start_new_page
|
72
|
+
# pdf.text "TAKE BACK CLAIMS"
|
73
|
+
# takeback_claims(pdf)
|
74
|
+
# end
|
75
|
+
# page_numbering(pdf)
|
76
|
+
# end
|
77
|
+
# @takeback = []
|
78
|
+
# @claim_data = []
|
79
|
+
# end
|
80
|
+
|
81
|
+
# def page_numbering(pdf)
|
82
|
+
# pdf.number_pages('Page <page> of <total>', { :at => [pdf.bounds.right - 150, 0],
|
83
|
+
# :width => 150,
|
84
|
+
# :align => :center,
|
85
|
+
# :start_count_at => 1
|
86
|
+
# }
|
87
|
+
# )
|
88
|
+
# end
|
89
|
+
|
90
|
+
# def insert_claim_table(pdf)
|
91
|
+
# @claim_data.each do |c|
|
92
|
+
# pdf.move_down 10
|
93
|
+
# pdf.table([c],
|
94
|
+
# :column_widths => [65, 75, 65, 65, 65, 150],
|
95
|
+
# :cell_style => {
|
96
|
+
# :align => :center,
|
97
|
+
# :overflow => :shrink_to_fit,
|
98
|
+
# :size => 10,
|
99
|
+
# :height => 30
|
100
|
+
# }) # SHOULD ONLY HAVE ONE CLAIM
|
101
|
+
# insert_service_table(c[0], pdf)
|
102
|
+
# end
|
103
|
+
# end
|
104
|
+
|
105
|
+
# def insert_service_table(claim_id, pdf)
|
106
|
+
# make_service_table(claim_id)
|
107
|
+
# pdf.table(@service_data, table_opts)
|
108
|
+
# end
|
109
|
+
|
110
|
+
# def table_opts
|
111
|
+
# {
|
112
|
+
# :column_widths => [65, 75, 65, 65, 65, 150],
|
113
|
+
# :header => true,
|
114
|
+
# :cell_style => {
|
115
|
+
# :align => :center,
|
116
|
+
# :overflow => :shrink_to_fit,
|
117
|
+
# :size => 8,
|
118
|
+
# :height => 20
|
119
|
+
# }
|
120
|
+
# }
|
121
|
+
# end
|
122
|
+
|
123
|
+
# def claim_table(inv)
|
124
|
+
# claims(inv).all.each do |clm|
|
125
|
+
# @claim_data << [clm.id, client(inv), inv, currency(clm.billed), currency(clm.paid), response_msg(clm.status), clm.control_number]
|
126
|
+
# end
|
127
|
+
# end
|
128
|
+
|
129
|
+
# def response_msg(msg)
|
130
|
+
# case msg
|
131
|
+
# when '1' then 'CASH PAYMENT'
|
132
|
+
# when '4' then 'CLAIM DENIED'
|
133
|
+
# when '22' then 'TAKE BACK'
|
134
|
+
# else
|
135
|
+
# 'oop'
|
136
|
+
# end
|
137
|
+
# end
|
138
|
+
|
139
|
+
# def make_service_table(claim_id)
|
140
|
+
# @service_data = []
|
141
|
+
# total = 0.0
|
142
|
+
# @service_data << ['DATE OF SERVICE', 'SERVICE CODE', 'UNITS', 'BILLED', 'PAID', 'DENIAL REASON']
|
143
|
+
# services(claim_id).all.each {|svc|
|
144
|
+
# @service_data << [svc.dos, svc.service_code, svc.units, currency(svc.billed), currency(svc.paid), svc.denial_reason]
|
145
|
+
# total += svc.paid
|
146
|
+
# }
|
147
|
+
# @service_data << ['TOTAL', '', '', '', currency(total), '']
|
148
|
+
# end
|
149
|
+
|
150
|
+
# def currency(amt)
|
151
|
+
# Money.new(amt*100, 'USD').format
|
152
|
+
# end
|
153
|
+
|
154
|
+
# def services(claim_id)
|
155
|
+
# Service.where(claim_id: claim_id)
|
156
|
+
# end
|
157
|
+
|
158
|
+
# def client(invoice_number)
|
159
|
+
# Invoice.where(invoice_number: invoice_number).get(:client_name)
|
160
|
+
# end
|
161
|
+
# end
|
162
|
+
end
|
@@ -0,0 +1,127 @@
|
|
1
|
+
require "money"
|
2
|
+
module Sunnyside
|
3
|
+
class Reporter
|
4
|
+
attr_reader :check, :claims, :services
|
5
|
+
def initialize(check)
|
6
|
+
@check = check
|
7
|
+
@claims = Claim.where(check_number: check)
|
8
|
+
@services = Service.where(check_number: check)
|
9
|
+
if claims.count > 0
|
10
|
+
create_pdf
|
11
|
+
else
|
12
|
+
Reporter.new(gets.chomp)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def provider
|
17
|
+
claims.get(:provider).gsub(/ \/\\/, '_')
|
18
|
+
end
|
19
|
+
|
20
|
+
def takeback_present?
|
21
|
+
claims.where(denial_reason: '22').count > 0
|
22
|
+
end
|
23
|
+
|
24
|
+
def denials_present?
|
25
|
+
claims.where('amount_charged > amount_paid').exclude(denial_reason: '22').count > 0
|
26
|
+
end
|
27
|
+
|
28
|
+
def create_pdf
|
29
|
+
Prawn::Document.generate("#{provider}_CHECK_#{check}.pdf", :page_layout => :landscape) do |pdf|
|
30
|
+
report = ReportPDF.new(pdf, :claim_data => claims, :service_data => services, :provider => provider, :check => check)
|
31
|
+
report.create_check_header
|
32
|
+
if takeback_present?
|
33
|
+
report.takeback_table
|
34
|
+
elsif denials_present?
|
35
|
+
report.denial_table
|
36
|
+
else
|
37
|
+
report.claim_table
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
class ReportPDF
|
43
|
+
attr_reader :pdf, :claims, :services, :provider, :check
|
44
|
+
|
45
|
+
def initialize(pdf, data = {})
|
46
|
+
@pdf = pdf
|
47
|
+
@claims = data[:claim_data]
|
48
|
+
@services = data[:service_data]
|
49
|
+
@provider = data[:provider]
|
50
|
+
@check = data[:check]
|
51
|
+
end
|
52
|
+
|
53
|
+
def create_check_header
|
54
|
+
pdf.text "CLAIMS FOR #{provider} - CHECK NUMBER: #{check} - CHECK TOTAL: #{currency(check_total)}"
|
55
|
+
pdf.move_down 20
|
56
|
+
end
|
57
|
+
|
58
|
+
def check_total
|
59
|
+
services.sum(:amount_paid)
|
60
|
+
end
|
61
|
+
|
62
|
+
def currency(amt)
|
63
|
+
Money.new(amt * 100, 'USD').format
|
64
|
+
end
|
65
|
+
|
66
|
+
def takebacks
|
67
|
+
claims.where(denial_reason: '22')
|
68
|
+
end
|
69
|
+
|
70
|
+
def takeback_table
|
71
|
+
takeback_header
|
72
|
+
takebacks.all.each { |clm| claim_header(clm) }
|
73
|
+
end
|
74
|
+
|
75
|
+
def denials
|
76
|
+
claims.exclude(denial_reason: '22').where('amount_charged > amount_paid')
|
77
|
+
end
|
78
|
+
|
79
|
+
def denial_table
|
80
|
+
pdf.text 'CLAIMS WITH DENIALS'
|
81
|
+
pdf.move_down 10
|
82
|
+
end
|
83
|
+
|
84
|
+
def takeback_header
|
85
|
+
pdf.text 'ADJUSTED CLAIMS'
|
86
|
+
pdf.move_down 10
|
87
|
+
end
|
88
|
+
|
89
|
+
def client(inv)
|
90
|
+
Invoice.where(invoice_number: inv).get(:client_name)
|
91
|
+
end
|
92
|
+
|
93
|
+
def claim_header(claim)
|
94
|
+
pdf.move_down 10
|
95
|
+
claim_data = [[claim.control_number, client(claim.invoice_number), claim.invoice_number, currency(claim.amount_charged), currency(claim.amount_paid), claim.denial_reason]]
|
96
|
+
pdf.table(
|
97
|
+
claim_data,
|
98
|
+
:column_widths => [85, 75, 75, 75, 75, 150], :cell_style => {
|
99
|
+
:align => :center,
|
100
|
+
:overflow => :shrink_to_fit,
|
101
|
+
:size => 12,
|
102
|
+
:height => 30
|
103
|
+
}) # SHOULD ONLY HAVE ONE CLAIM
|
104
|
+
pdf.move_down 10
|
105
|
+
create_service_table(claim.id)
|
106
|
+
end
|
107
|
+
|
108
|
+
def service_data(id)
|
109
|
+
services.where(claim_id: id).map { |svc| ['', svc.dos, svc.service_code + svc.mod_1, svc.units, svc.amount_charged, svc.amount_paid, svc.denial_reason] }
|
110
|
+
end
|
111
|
+
|
112
|
+
def create_service_table(id)
|
113
|
+
pdf.table(service_data(id),
|
114
|
+
:column_widths => [85, 75, 75, 75, 75, 150],
|
115
|
+
:cell_style => {
|
116
|
+
:align => :center,
|
117
|
+
:overflow => :shrink_to_fit,
|
118
|
+
:size => 12,
|
119
|
+
:height => 30
|
120
|
+
}) # SHOULD ONLY HAVE ONE CLAIM
|
121
|
+
end
|
122
|
+
|
123
|
+
def claim_table
|
124
|
+
claims.exclude(denial_reason: ['22', '4']).all.each { |clm| claim_header(clm) }
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Sunnyside
|
2
|
+
PRIVATE_CLIENTS = ['TABICKMAN', 'JIBAJA', 'SUNNYSIDE COMMUNITY', 'BARROW', 'JENSEN']
|
3
|
+
|
4
|
+
def self.private_clients
|
5
|
+
Dir['private/*.PDF'].each { |file| PrivateClient.new(file).create_pdfS }
|
6
|
+
end
|
7
|
+
|
8
|
+
class PrivateClient
|
9
|
+
attr_reader :file
|
10
|
+
|
11
|
+
def initialize(file)
|
12
|
+
@file = file
|
13
|
+
@selected = []
|
14
|
+
end
|
15
|
+
|
16
|
+
def tabickman
|
17
|
+
selected_pages('TABICKMAN')
|
18
|
+
end
|
19
|
+
|
20
|
+
def jibaja
|
21
|
+
selected_pages('JIBAJA')
|
22
|
+
end
|
23
|
+
|
24
|
+
def community
|
25
|
+
selected_pages('SUNNYSIDE COMMUNITY')
|
26
|
+
end
|
27
|
+
|
28
|
+
def jensen
|
29
|
+
selected_pages('JENSEN')
|
30
|
+
end
|
31
|
+
|
32
|
+
def barrow
|
33
|
+
selected_pages('BARROW')
|
34
|
+
end
|
35
|
+
|
36
|
+
def selected_pages(name)
|
37
|
+
PDF::Reader.new(file).pages.select { |page| page.text.include?(name) && page.text.include?('Client Copy') }.map { |page| page.number }
|
38
|
+
end
|
39
|
+
|
40
|
+
def date_parse
|
41
|
+
Date.parse(file[8..15])
|
42
|
+
end
|
43
|
+
|
44
|
+
def create_doc(client)
|
45
|
+
Prawn::Document.generate("./private/archive/#{client}-#{date_parse}.PDF", :skip_page_creation => true) { |pdf|
|
46
|
+
selected_pages(client).each { |page| pdf.start_new_page(:template => file, :template_page => page) }
|
47
|
+
}
|
48
|
+
puts 'files created in ../private/archive/'
|
49
|
+
end
|
50
|
+
|
51
|
+
def create_pdfs
|
52
|
+
PRIVATE_CLIENTS.each { |client| create_doc(client) }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module Sunnyside
|
2
|
+
def receivable_csv(invoice, payment_id, check_number, post_date)
|
3
|
+
total = Service.where(invoice_id: invoice.invoice_number).sum(:paid)
|
4
|
+
prov = Provider[invoice.provider_id]
|
5
|
+
fund_id = Client[invoice.client_id].fund_id
|
6
|
+
CSV.open("#{LOCAL_FILES}/cash_receipts/EDI-citywide-import.csv", "a+") do |row| # #{post_date.gsub(/\//, '-')}-
|
7
|
+
row << [1, check_number,
|
8
|
+
post_date,
|
9
|
+
fund_id,
|
10
|
+
invoice.invoice_number,
|
11
|
+
invoice.invoice_number,
|
12
|
+
"#{post_date[0..1]}/#{post_date[8..9]}#{prov.abbreviation}",
|
13
|
+
post_date,
|
14
|
+
invoice.invoice_number,
|
15
|
+
prov.fund, prov.credit_account,'','','', 0, total]
|
16
|
+
row << [2, check_number,
|
17
|
+
post_date,
|
18
|
+
fund_id,
|
19
|
+
invoice.invoice_number,
|
20
|
+
invoice.invoice_number,
|
21
|
+
"#{post_date[0..1]}/#{post_date[8..9]}#{prov.abbreviation}",
|
22
|
+
post_date,
|
23
|
+
invoice.invoice_number,
|
24
|
+
100, 1000,'','','', total, 0]
|
25
|
+
row << [3, check_number,
|
26
|
+
post_date,
|
27
|
+
fund_id,
|
28
|
+
invoice.invoice_number,
|
29
|
+
invoice.invoice_number,
|
30
|
+
"#{post_date[0..1]}/#{post_date[8..9]}#{prov.abbreviation}",
|
31
|
+
post_date,
|
32
|
+
invoice.invoice_number,
|
33
|
+
prov.fund, 3990, '', '', '', total, 0]
|
34
|
+
row << [4, check_number,
|
35
|
+
post_date,
|
36
|
+
fund_id,
|
37
|
+
invoice.invoice_number,
|
38
|
+
invoice.invoice_number,
|
39
|
+
"#{post_date[0..1]}/#{post_date[8..9]}#{prov.abbreviation}",
|
40
|
+
post_date,
|
41
|
+
invoice.invoice_number,
|
42
|
+
100, 3990, '', '', '', 0, total]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def payable_csv(inv, post_date, prov)
|
47
|
+
fund_id = Client.where(client_number: invoice.client_id).get(:fund_id)
|
48
|
+
CSV.open("#{LOCAL_FILES}/new-ledger/#{inv.post_date}-IMPORT-FUND-EZ-LEDGER.csv", "a+") do |row|
|
49
|
+
row << [1,
|
50
|
+
inv.invoice_number,
|
51
|
+
post_date.strftime('%m/%d/%y'),
|
52
|
+
fund_id, prov.name, post_date.strftime('%m/%d/%y'),
|
53
|
+
"To Record #{post_date.strftime('%m/%d/%y')} Billing",
|
54
|
+
"#{post_date[5..6]}/#{post_date[8..9]}#{prov.abbrev}",
|
55
|
+
post_date.strftime('%m/%d/%y'), "To Rec for W/E #{post_date - 6} Billing",
|
56
|
+
prov.fund, prov.credit_account,
|
57
|
+
'', '', '', inv.amount, '']
|
58
|
+
row << [2,
|
59
|
+
inv.invoice_number,
|
60
|
+
post_date.strftime('%m/%d/%y'),
|
61
|
+
fund_id,
|
62
|
+
prov.name,
|
63
|
+
post_date.strftime('%m/%d/%y'),
|
64
|
+
"To Record #{post_date.strftime('%m/%d/%y')} Billing",
|
65
|
+
"#{post_date[5..6]}/#{post_date[8..9]}#{prov.abbrev}",
|
66
|
+
post_date.strftime('%m/%d/%y'),
|
67
|
+
"To Rec for W/E #{post_date - 6} Billing",
|
68
|
+
prov.fund,
|
69
|
+
prov.debit_account,
|
70
|
+
prov.fund, '', prov.type, '', inv.amount]
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
data/lib/sunnyside.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'prawn'
|
2
|
+
require 'sequel'
|
3
|
+
require 'csv'
|
4
|
+
require 'fileutils'
|
5
|
+
require "sunnyside/version"
|
6
|
+
require 'sunnyside/cash_receipts/cash_receipt'
|
7
|
+
require 'sunnyside/cash_receipts/ics'
|
8
|
+
require 'sunnyside/ledger/ledger'
|
9
|
+
require 'sunnyside/ledger/edi'
|
10
|
+
require 'sunnyside/ledger/auth_report'
|
11
|
+
require 'sunnyside/ledger/private'
|
12
|
+
require 'sunnyside/reports/pdf_report'
|
13
|
+
require 'sunnyside/reports/private'
|
14
|
+
require 'sunnyside/reports/report'
|
15
|
+
require 'sunnyside/ftp'
|
16
|
+
require 'sunnyside/menu'
|
17
|
+
require 'sunnyside/expiring_auth'
|
18
|
+
|
19
|
+
module Sunnyside
|
20
|
+
LOCAL_FILES = ENV["HOME"] + "/sunnyside-files"
|
21
|
+
DB = Sequel.connect("sqlite:/#{LOCAL_FILES}/db/sunnyside.db")
|
22
|
+
if DB.tables.empty?
|
23
|
+
require 'sunnyside/models/db_setup'
|
24
|
+
Sunnyside.create_tables
|
25
|
+
end
|
26
|
+
require 'sunnyside/models/sequel_classes'
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sunnyside
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- wismer
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-12-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sqlite3
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: sequel
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: money
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: prawn
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description: gem for Sunnyside Citywide Home Care, Inc.
|
98
|
+
email:
|
99
|
+
- matthewhl@gmail.com
|
100
|
+
executables:
|
101
|
+
- sunnyside
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- lib/sunnyside/cash_receipts/cash_receipt.rb
|
106
|
+
- lib/sunnyside/cash_receipts/ics.rb
|
107
|
+
- lib/sunnyside/expiring_auth.rb
|
108
|
+
- lib/sunnyside/ftp.rb
|
109
|
+
- lib/sunnyside/ledger/auth_report.rb
|
110
|
+
- lib/sunnyside/ledger/edi.rb
|
111
|
+
- lib/sunnyside/ledger/ledger.rb
|
112
|
+
- lib/sunnyside/ledger/private.rb
|
113
|
+
- lib/sunnyside/menu.rb
|
114
|
+
- lib/sunnyside/models/db_setup.rb
|
115
|
+
- lib/sunnyside/models/sequel_classes.rb
|
116
|
+
- lib/sunnyside/reports/mco_mltc.rb
|
117
|
+
- lib/sunnyside/reports/pdf_report.rb
|
118
|
+
- lib/sunnyside/reports/pdf_report_draft.rb
|
119
|
+
- lib/sunnyside/reports/private.rb
|
120
|
+
- lib/sunnyside/reports/report.rb
|
121
|
+
- lib/sunnyside/version.rb
|
122
|
+
- lib/sunnyside.rb
|
123
|
+
- bin/sunnyside
|
124
|
+
homepage: ''
|
125
|
+
licenses:
|
126
|
+
- MIT
|
127
|
+
metadata: {}
|
128
|
+
post_install_message:
|
129
|
+
rdoc_options: []
|
130
|
+
require_paths:
|
131
|
+
- lib
|
132
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- - '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
requirements: []
|
143
|
+
rubyforge_project:
|
144
|
+
rubygems_version: 2.0.14
|
145
|
+
signing_key:
|
146
|
+
specification_version: 4
|
147
|
+
summary: EDI/PDF parser, fiscal tools for accounting
|
148
|
+
test_files: []
|