Skip to content

Commit 1ee8a96

Browse files
committed
Updated objects.
1 parent 9a99c92 commit 1ee8a96

34 files changed

Lines changed: 172 additions & 150 deletions

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ These instructions were written for a Django application. Make sure to change it
1010

1111
1. Create the Authorization URL for your application:
1212

13-
from quickbooks.client import QuickBooks
13+
from quickbooks import QuickBooks
1414
1515
quickbooks = QuickBooks(
1616
sandbox=True,
@@ -51,7 +51,7 @@ These instructions were written for a Django application. Make sure to change it
5151
QuickBooks client uses a singleton pattern. Just be sure to create the QuickBooks object before you make any calls to QBO.
5252
Setup the client connection using the stored `access_token` and the `access_token_secret` and `realm_id`:
5353

54-
from quickbooks.client import QuickBooks
54+
from quickbooks import QuickBooks
5555

5656
QuickBooks(
5757
sandbox=True,

quickbooks/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from client import QuickBooks

quickbooks/client.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,6 @@ def make_request(self, request_type, url, request_body=None, content_type='appli
154154
req = self.session.request(request_type, url, True, self.company_id, headers=headers, data=request_body)
155155
result = req.json()
156156

157-
print "----------------"
158-
print result
159-
print "----------------"
160-
161157
if req.status_code is not httplib.OK or "Fault" in result:
162158
self.handle_exceptions(result["Fault"])
163159
else:

quickbooks/mixins.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ def to_json(self):
88

99
class FromJsonMixin(object):
1010
class_dict = {}
11+
list_dict = {}
1112

1213
@classmethod
1314
def from_json(cls, json_data):
@@ -48,7 +49,7 @@ class UpdateMixin(object):
4849
qbo_object_name = ""
4950

5051
def save(self):
51-
from client import QuickBooks
52+
from .client import QuickBooks
5253
qb = QuickBooks()
5354

5455
if self.Id > 0:

quickbooks/objects/account.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
from base import QuickbooksBaseObject, Ref
1+
from base import Ref, QuickbooksManagedObject
22

33

4-
class Account(QuickbooksBaseObject):
4+
class Account(QuickbooksManagedObject):
55
"""
66
QBO definition: Account is a component of a Chart Of Accounts, and is part of a Ledger. Used to record a total
77
monetary amount allocated against a specific use. Accounts are one of five basic types: asset, liability,
@@ -17,6 +17,8 @@ class Account(QuickbooksBaseObject):
1717
qbo_object_name = "Account"
1818

1919
def __init__(self):
20+
super(Account, self).__init__()
21+
2022
self.Name = ""
2123
self.SubAccount = False
2224
self.FullyQualifiedName = ""

quickbooks/objects/base.py

Lines changed: 13 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
from ..mixins import ToJsonMixin, FromJsonMixin, ReadMixin, ListMixin, UpdateMixin
22

33

4-
class QuickbooksBaseObject(ToJsonMixin, FromJsonMixin, ReadMixin, ListMixin, UpdateMixin):
5-
class_dict = {}
6-
list_dict = {}
74

8-
Id = 0
9-
SyncToken = 0
10-
sparse = "false"
11-
domain = "QBO"
12-
TxnDate = ""
5+
class QuickbooksBaseObject(ToJsonMixin, FromJsonMixin):
6+
def __init__(self):
7+
self.Id = 0
8+
self.SyncToken = 0
9+
self.sparse = "false"
10+
self.domain = "QBO"
11+
self.TxnDate = ""
12+
13+
14+
class QuickbooksManagedObject(QuickbooksBaseObject, ReadMixin, ListMixin, UpdateMixin):
15+
pass
1316

1417

1518
class MetaData:
@@ -19,25 +22,21 @@ def __init__(self):
1922

2023

2124
class Address(ToJsonMixin, FromJsonMixin):
22-
class_dict = {}
23-
list_dict = {}
24-
2525
def __init__(self):
2626
self.Id = 0
2727
self.Line1 = ""
2828
self.Line2 = ""
2929
self.City = ""
3030
self.CountrySubDivisionCode = ""
3131
self.PostalCode = ""
32+
self.Lat = ""
33+
self.Long = ""
3234

3335
def __unicode__(self):
3436
return "{0} {1}, {2} {3}".format(self.Line1, self.City, self.CountrySubDivisionCode, self.PostalCode)
3537

3638

3739
class PhoneNumber(ToJsonMixin, FromJsonMixin):
38-
class_dict = {}
39-
list_dict = {}
40-
4140
def __init__(self):
4241
self.FreeFormNumber = ""
4342

@@ -46,9 +45,6 @@ def __unicode__(self):
4645

4746

4847
class EmailAddress(ToJsonMixin, FromJsonMixin):
49-
class_dict = {}
50-
list_dict = {}
51-
5248
def __init__(self):
5349
self.Address = ""
5450

@@ -57,9 +53,6 @@ def __unicode__(self):
5753

5854

5955
class WebAddress(ToJsonMixin, FromJsonMixin):
60-
class_dict = {}
61-
list_dict = {}
62-
6356
def __init__(self):
6457
self.URI = ""
6558

@@ -68,9 +61,6 @@ def __unicode__(self):
6861

6962

7063
class Ref(ToJsonMixin, FromJsonMixin):
71-
class_dict = {}
72-
list_dict = {}
73-
7464
def __init__(self):
7565
self.value = ""
7666
self.name = ""
@@ -80,9 +70,6 @@ def __unicode__(self):
8070

8171

8272
class CustomField(ToJsonMixin, FromJsonMixin):
83-
class_dict = {}
84-
list_dict = {}
85-
8673
def __init__(self):
8774
self.Type = ""
8875
self.Name = ""
@@ -93,9 +80,6 @@ def __unicode__(self):
9380

9481

9582
class LinkedTxn(QuickbooksBaseObject):
96-
class_dict = {}
97-
list_dict = {}
98-
9983
qbo_object_name = "LinkedTxn"
10084

10185
def __init__(self):

quickbooks/objects/bill.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
from base import QuickbooksBaseObject, Ref, LinkedTxn
2-
3-
1+
from base import QuickbooksBaseObject, Ref, LinkedTxn, QuickbooksManagedObject
42

53

64
class AccountBasedExpenseLineDetail(QuickbooksBaseObject):
@@ -10,8 +8,6 @@ class AccountBasedExpenseLineDetail(QuickbooksBaseObject):
108
"TaxCodeRef": Ref
119
}
1210

13-
qbo_object_name = "AccountBasedExpenseLineDetail"
14-
1511
def __init__(self):
1612
self.BillableStatus = ""
1713

@@ -25,17 +21,17 @@ class BillLine(QuickbooksBaseObject):
2521
"AccountBasedExpenseLineDetail": AccountBasedExpenseLineDetail
2622
}
2723

28-
qbo_object_name = "Line"
29-
3024
def __init__(self):
25+
super(BillLine, self).__init__()
26+
3127
self.Description = ""
3228
self.Amount = ""
3329
self.DetailType = ""
3430

3531
self.AccountBasedExpenseLineDetail = None
3632

3733

38-
class Bill(QuickbooksBaseObject):
34+
class Bill(QuickbooksManagedObject):
3935
"""
4036
QBO definition: A Bill entity is an AP transaction representing a request-for-payment from a third party for
4137
goods/services rendered and/or received.
@@ -56,6 +52,8 @@ class Bill(QuickbooksBaseObject):
5652
qbo_object_name = "Bill"
5753

5854
def __init__(self):
55+
super(Bill, self).__init__()
56+
5957
self.DueDate = ""
6058
self.Balance = 0
6159
self.TotalAmt = ""

quickbooks/objects/billpayment.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
from base import QuickbooksBaseObject, Ref, LinkedTxn
2-
1+
from base import QuickbooksBaseObject, Ref, LinkedTxn, QuickbooksManagedObject
32

43

54
class CheckPayment(QuickbooksBaseObject):
@@ -10,6 +9,7 @@ class CheckPayment(QuickbooksBaseObject):
109
qbo_object_name = "CheckPayment"
1110

1211
def __init__(self):
12+
super(CheckPayment, self).__init__()
1313
self.PrintStatus = ""
1414
self.BankAccountRef = None
1515

@@ -22,14 +22,15 @@ class BillPaymentLine(QuickbooksBaseObject):
2222
qbo_object_name = "Line"
2323

2424
def __init__(self):
25+
super(BillPaymentLine, self).__init__()
2526
self.Amount = 0
2627
self.LinkedTxn = []
2728

2829
def __unicode__(self):
2930
return self.Amount
3031

3132

32-
class BillPayment(QuickbooksBaseObject):
33+
class BillPayment(QuickbooksManagedObject):
3334
"""
3435
QBO definition: A BillPayment entity represents the financial transaction of payment of bills that the
3536
business owner receives from a vendor for goods or services purchased from the vendor. QuickBooks Online
@@ -53,6 +54,7 @@ class BillPayment(QuickbooksBaseObject):
5354
qbo_object_name = "BillPayment"
5455

5556
def __init__(self):
57+
super(BillPayment, self).__init__()
5658
self.PayType = ""
5759
self.TotalAmt = 0
5860
self.TxnDate = ""

quickbooks/objects/budget.py

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,25 @@
1-
from base import QuickbooksBaseObject, Ref
1+
from base import QuickbooksBaseObject, Ref, QuickbooksManagedObject
22

33

4-
class Budget(QuickbooksBaseObject):
4+
class BudgetDetail(QuickbooksBaseObject):
5+
class_dict = {
6+
"AccountRef": Ref,
7+
"CustomerRef": Ref
8+
}
9+
10+
def __init__(self):
11+
super(BudgetDetail, self).__init__()
12+
self.BudgetDate = ""
13+
self.Amount = 0
14+
15+
self.AccountRef = None
16+
self.CustomerRef = None
17+
18+
def __unicode__(self):
19+
return self.Amount
20+
21+
22+
class Budget(QuickbooksManagedObject):
523
"""
624
QBO definition: The Budget endpoint allows you to retrieve the current state of budgets already set up in the user's
725
company file. A budget allows for an amount to be assigned on a monthly, quarterly, or annual basis for a specific
@@ -16,6 +34,7 @@ class Budget(QuickbooksBaseObject):
1634
qbo_object_name = "Budget"
1735

1836
def __init__(self):
37+
super(Budget, self).__init__()
1938
self.Name = ""
2039
self.StartDate = ""
2140
self.EndDate = ""
@@ -28,19 +47,3 @@ def __init__(self):
2847
def __unicode__(self):
2948
return self.Name
3049

31-
32-
class BudgetDetail(QuickbooksBaseObject):
33-
class_dict = {
34-
"AccountRef": Ref,
35-
"CustomerRef": Ref
36-
}
37-
38-
def __init__(self):
39-
self.BudgetDate = ""
40-
self.Amount = 0
41-
42-
self.AccountRef = None
43-
self.CustomerRef = None
44-
45-
def __unicode__(self):
46-
return self.Amount

quickbooks/objects/creditmemo.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from base import QuickbooksBaseObject, Address, EmailAddress, Ref, CustomField, CustomerMemo
1+
from base import QuickbooksBaseObject, Address, EmailAddress, Ref, CustomField, CustomerMemo, QuickbooksManagedObject
22
from tax import TxnTaxDetail
33

44

@@ -9,6 +9,7 @@ class SalesItemLineDetail(QuickbooksBaseObject):
99
}
1010

1111
def __init__(self):
12+
super(SalesItemLineDetail, self).__init__()
1213
self.Qty = 0
1314
self.UnitPrice = 0
1415

@@ -22,7 +23,7 @@ class CreditMemoLine(QuickbooksBaseObject):
2223
}
2324

2425
def __init__(self):
25-
26+
super(CreditMemoLine, self).__init__()
2627
self.LineNum = ""
2728
self.Description = ""
2829
self.Amount = ""
@@ -31,7 +32,7 @@ def __init__(self):
3132
self.SalesItemLineDetail = None
3233

3334

34-
class CreditMemo(QuickbooksBaseObject):
35+
class CreditMemo(QuickbooksManagedObject):
3536
"""
3637
QBO definition: The CreditMemo is a financial transaction representing a refund or credit of payment or part
3738
of a payment for goods or services that have been sold.
@@ -55,6 +56,7 @@ class CreditMemo(QuickbooksBaseObject):
5556
qbo_object_name = "CreditMemo"
5657

5758
def __init__(self):
59+
super(CreditMemo, self).__init__()
5860
self.RemainingCredit = ""
5961
self.DocNumber = ""
6062
self.TxnDate = ""

0 commit comments

Comments
 (0)