11from base import QuickbooksBaseObject , CustomField , Ref , CustomerMemo , Address , EmailAddress , QuickbooksManagedObject , \
2- LinkedTxnMixin , QuickbooksTransactionEntity
2+ LinkedTxnMixin , QuickbooksTransactionEntity , LinkedTxn
33from tax import TxnTaxDetail
44
5+
6+ class EstimateLine (QuickbooksBaseObject ):
7+ list_dict = {
8+ "LinkedTxn" : LinkedTxn ,
9+ "CustomField" : CustomField ,
10+ }
11+
12+ def __init__ (self ):
13+ super (EstimateLine , self ).__init__ ()
14+ self .Id = 0
15+ self .LineNum = 0
16+ self .Description = ""
17+ self .Amount = 0
18+ self .DetailType = ""
19+ self .LinkedTxn = []
20+ self .CustomField = []
21+
22+ def __unicode__ (self ):
23+ return str (self .Amount )
24+
25+
26+ class DiscountOverride (QuickbooksBaseObject ):
27+ class_dict = {
28+ "DiscountRef" : Ref ,
29+ "DiscountAccountRef" : Ref ,
30+ }
31+
32+ qbo_object_name = "DiscountOverride"
33+
34+ def __init__ (self ):
35+ super (DiscountOverride , self ).__init__ ()
36+ self .PercentBased = False
37+ self .DiscountPercent = 0
38+ self .DiscountRef = None
39+ self .DiscountAccountRef = None
40+
41+
42+ class DiscountLineDetail (QuickbooksBaseObject ):
43+ class_dict = {
44+ "Discount" : DiscountOverride ,
45+ "ClassRef" : Ref ,
46+ "TaxCodeRef" : Ref ,
47+ }
48+
49+ def __init__ (self ):
50+ super (DiscountLineDetail , self ).__init__ ()
51+
52+ self .Discount = None
53+ self .ClassRef = None
54+ self .TaxCodeRef = None
55+
56+
57+ class DiscountLine (EstimateLine ):
58+ class_dict = {
59+ "DiscountLineDetail" : DiscountLineDetail
60+ }
61+
62+ def __init__ (self ):
63+ super (DiscountLine , self ).__init__ ()
64+ self .DetailType = "DiscountLineDetail"
65+ self .DiscountLineDetail = None
66+
67+
68+ class SubtotalLineDetail (QuickbooksBaseObject ):
69+ class_dict = {
70+ "ItemRef" : Ref
71+ }
72+
73+ def __init__ (self ):
74+ super (SubtotalLineDetail , self ).__init__ ()
75+ self .ItemRef = None
76+
77+
78+ class SubtotalLine (EstimateLine ):
79+ class_dict = {
80+ "SubtotalLineDetail" : SubtotalLineDetail
81+ }
82+
83+ def __init__ (self ):
84+ super (SubtotalLine , self ).__init__ ()
85+ self .DetailType = "SubtotalLineDetail"
86+ self .SubtotalLineDetail = None
87+
88+
89+ class DescriptionLineDetail (QuickbooksBaseObject ):
90+ class_dict = {
91+ "TaxCodeRef" : Ref
92+ }
93+
94+ def __init__ (self ):
95+ super (DescriptionLineDetail , self ).__init__ ()
96+ self .ServiceDate = ""
97+ self .TaxCodeRef = None
98+
99+
100+ class DescriptionLine (EstimateLine ):
101+ class_dict = {
102+ "DescriptionLineDetail" : DescriptionLineDetail
103+ }
104+
105+ def __init__ (self ):
106+ super (DescriptionLine , self ).__init__ ()
107+ self .DetailType = "DescriptionOnly"
108+ self .DescriptionLineDetail = None
109+
110+
5111class SalesItemLineDetail (QuickbooksBaseObject ):
6112 class_dict = {
7113 "ItemRef" : Ref ,
8- "TaxCodeRef" : Ref
114+ "ClassRef" : Ref ,
115+ "TaxCodeRef" : Ref ,
116+ "PriceLevelRef" : Ref ,
9117 }
10118
11119 def __init__ (self ):
12120 super (SalesItemLineDetail , self ).__init__ ()
13121 self .UnitPrice = 0
14122 self .Qty = 0
123+ self .MarkupInfo = ""
124+ self .ServiceDate = ""
125+ self .TaxInclusiveAmt = 0
15126
16127 def __unicode__ (self ):
17128 return str (self .UnitPrice )
18129
19130
20- class EstimateLine ( QuickbooksBaseObject ):
131+ class SaleItemLine ( EstimateLine ):
21132 class_dict = {
22133 "SalesItemLineDetail" : SalesItemLineDetail
23134 }
24135
25136 def __init__ (self ):
26- super (EstimateLine , self ).__init__ ()
27- self .LineNum = 0
28- self .Amount = 0
29- self .Description = ""
30- self .DetailType = ""
137+ super (SaleItemLine , self ).__init__ ()
138+ self .DetailType = "SalesItemLineDetail"
31139 self .SalesItemLineDetail = None
32140
33- def __unicode__ (self ):
34- return str (self .Amount )
35-
36141
37142class Estimate (QuickbooksManagedObject , QuickbooksTransactionEntity , LinkedTxnMixin ):
38143 """
@@ -47,10 +152,17 @@ class Estimate(QuickbooksManagedObject, QuickbooksTransactionEntity, LinkedTxnMi
47152 "TxnTaxDetail" : TxnTaxDetail ,
48153 "CustomerMemo" : CustomerMemo ,
49154 "BillEmail" : EmailAddress ,
155+ "DepartmentRef" : Ref ,
156+ "CurrencyRef" : Ref ,
157+ "ClassRef" : Ref ,
158+ "SalesTermRef" : Ref ,
159+ "ShipMethodRef" : Ref ,
50160 }
51161
52162 list_dict = {
53163 "CustomField" : CustomField ,
164+ "LinkedTxn" : LinkedTxn ,
165+ "Line" : EstimateLine ,
54166 }
55167
56168 qbo_object_name = "Estimate"
@@ -60,16 +172,31 @@ def __init__(self):
60172 self .DocNumber = ""
61173 self .TxnDate = ""
62174 self .TxnStatus = ""
175+ self .PrivateNote = ""
63176 self .TotalAmt = 0
64- self .ApplyTaxAfterDiscount = 0
177+ self .ExchangeRate = 1
178+ self .ApplyTaxAfterDiscount = False
65179 self .PrintStatus = "NotSet"
66180 self .EmailStatus = "NotSet"
181+ self .DueDate = ""
182+ self .ShipDate = ""
183+ self .ExpirationDate = ""
184+ self .AcceptedBy = ""
185+ self .AcceptedDate = ""
186+ self .GlobalTaxCalculation = "TaxExcluded"
67187 self .BillAddr = None
68188 self .ShipAddr = None
189+ self .BillEmail = None
69190 self .CustomerRef = None
70191 self .TxnTaxDetail = None
71192 self .CustomerMemo = None
193+ self .ClassRef = None
194+ self .SalesTermRef = None
195+ self .ShipMethodRef = None
196+
72197 self .CustomField = []
198+ self .LinkedTxn = []
199+ self .Line = []
73200
74201 def __unicode__ (self ):
75202 return str (self .TotalAmt )
0 commit comments