fastbill 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,28 +8,40 @@ class Invoice
8
8
  @auth = auth
9
9
  @is_new = true
10
10
  end
11
-
12
- def get(id = nil, customer_id = nil, month = nil, year = nil)
11
+ def get(id = nil, customer_id = nil, year = nil, month = nil)
12
+ invoices = []
13
+ body = '<?xml version="1.0" encoding="utf-8"?><FBAPI><SERVICE>invoice.get</SERVICE><FILTER>'
13
14
  if id
14
- #fetch invoice
15
- options = {
16
- :basic_auth => @auth,
17
- :headers => {
18
- "Content-Type" => "application/xml"
19
- },
20
- :body => '<?xml version="1.0" encoding="utf-8"?><FBAPI><SERVICE>invoice.get</SERVICE><FILTER><INVOICE_ID>' + id.to_s + '</INVOICE_ID></FILTER></FBAPI>'
21
- }
22
- r = self.class.post('/api/0.1/api.php', options)
23
- body = Crack::XML.parse r.body
24
- if !body['FBAPI']["RESPONSE"]["INVOICES"].nil?
25
- hydrate(body['FBAPI']["RESPONSE"]["INVOICES"]["INVOICE"])
26
- self
27
- else
28
- false
29
- end
15
+ body = body + '<INVOICE_ID>' + id.to_s + '</INVOICE_ID>'
16
+ elsif customer_id
17
+ body = body + '<CUSTOMER_ID>' + customer_id.to_s + '</CUSTOMER_ID>'
18
+ elsif year
19
+ body = body + '<YEAR>' + year.to_s + '</YEAR>'
20
+ elsif month
21
+ body = body + '<MONTH>' + month.to_s + '</MONTH>'
22
+ end
23
+ body = body + '</FILTER></FBAPI>'
24
+ options = {
25
+ :basic_auth => @auth,
26
+ :headers => {
27
+ "Content-Type" => "application/xml"
28
+ },
29
+ :body => body
30
+ }
31
+ r = self.class.post('/api/0.1/api.php', options)
32
+ body = Crack::XML.parse r.body
33
+ if body['FBAPI']["RESPONSE"]["INVOICES"]["INVOICE"].class.to_s == 'Hash'
34
+ inv = Invoice.new(@auth)
35
+ inv.hydrate(body['FBAPI']["RESPONSE"]["INVOICES"]["INVOICE"])
36
+ invoices.push inv
30
37
  else
31
- #search invoices
38
+ for invoice in body['FBAPI']["RESPONSE"]["INVOICES"]["INVOICE"].each
39
+ inv = Invoice.new(@auth)
40
+ inv.hydrate(invoice)
41
+ invoices.push inv
42
+ end
32
43
  end
44
+ invoices
33
45
  end
34
46
  def save
35
47
 
@@ -61,9 +73,12 @@ class Invoice
61
73
  end
62
74
  @invoice_items = []
63
75
  for item in body["ITEMS"].each
64
- i = InvoiceItem.new(@auth)
65
- i.hydrate(item.last)
66
- @invoice_items.push i
76
+ begin
77
+ i = InvoiceItem.new(@auth)
78
+ i.hydrate(item.last)
79
+ @invoice_items.push i
80
+ rescue
81
+ end
67
82
  end
68
83
  end
69
84
  def parse_date(date)
@@ -1,3 +1,3 @@
1
1
  module Fastbill
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastbill
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-10-11 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70250807431580 !ruby/object:Gem::Requirement
16
+ requirement: &70108860467460 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70250807431580
24
+ version_requirements: *70108860467460
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: httparty
27
- requirement: &70250807507420 !ruby/object:Gem::Requirement
27
+ requirement: &70108860536240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70250807507420
35
+ version_requirements: *70108860536240
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: crack
38
- requirement: &70250807548360 !ruby/object:Gem::Requirement
38
+ requirement: &70108860610780 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70250807548360
46
+ version_requirements: *70108860610780
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: httparty
49
- requirement: &70250807613500 !ruby/object:Gem::Requirement
49
+ requirement: &70108860726580 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70250807613500
57
+ version_requirements: *70108860726580
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: crack
60
- requirement: &70250807680700 !ruby/object:Gem::Requirement
60
+ requirement: &70108860872240 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70250807680700
68
+ version_requirements: *70108860872240
69
69
  description: a basic ruby wrapper for the methods provided by the fastbill API
70
70
  email:
71
71
  - kai@4ware.net