diff --git a/QBClass/QBClasses.py b/QBClass/QBClasses.py index d175159..1a6354c 100644 --- a/QBClass/QBClasses.py +++ b/QBClass/QBClasses.py @@ -326,174 +326,193 @@ class InvoiceAdd(baseQBQuery): if 'debug' in kwargs and isinstance(kwargs['debug'], bool): self.class_debug=kwargs["debug"] - self.QBDict[self.classNameRq]={} - + # self.QBDict[self.classNameRq]={} + # self.QBDict={} + print('before') + if len(args)==0: + self.create_data(kwargs) + self.qbdicttemp = self.QBDict.copy() + del self.QBDict[self.__class__.__name__] + self.QBDict[self.classNameRq]=self.qbdicttemp + else: + self.qbdictlist = [] + for arg in args: + self.create_data(arg) + self.qbdictlist.append(self.QBDict.copy()) + del self.QBDict[self.__class__.__name__] + self.QBDict[self.classNameRq]=self.qbdictlist + pprint.pprint(self.QBDict, sort_dicts=False) + + + def create_data(self, kwargs): + # print(kwargs) self.isRequiredFieldSatisfied = False - self.QBDict[self.classNameRq][self.__class__.__name__]={'@defMacro':'MACROTYPE'} + # self.QBDict[self.__class__.__name__]={'@defMacro':'MACROTYPE'} + self.QBDict[self.__class__.__name__]={} if 'CustomerRef_ListID' in kwargs: - if 'CustomerRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: - self.QBDict[self.classNameRq][self.__class__.__name__]["CustomerRef"]['ListID']= kwargs['CustomerRef_ListID'] + if 'CustomerRef' in self.QBDict[self.__class__.__name__]: + self.QBDict[self.__class__.__name__]["CustomerRef"]['ListID']= kwargs['CustomerRef_ListID'] else: - self.QBDict[self.classNameRq][self.__class__.__name__]["CustomerRef"]={'ListID': kwargs['CustomerRef_ListID']} + self.QBDict[self.__class__.__name__]["CustomerRef"]={'ListID': kwargs['CustomerRef_ListID']} self.isRequiredFieldSatisfied=True if 'CustomerRef_FullName' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["CustomerRef"]={'FullName': kwargs['CustomerRef_FullName']} + self.QBDict[self.__class__.__name__]["CustomerRef"]={'FullName': kwargs['CustomerRef_FullName']} self.isRequiredFieldSatisfied=True if not self.isRequiredFieldSatisfied: raise Exception("Need CustomerRef FullName and/or ListID") if 'ClassRef_ListID' in kwargs: - if 'ClassRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: - self.QBDict[self.classNameRq][self.__class__.__name__]["ClassRef"]['ListID']= kwargs['ClassRef_ListID'] + if 'ClassRef' in self.QBDict[self.__class__.__name__]: + self.QBDict[self.__class__.__name__]["ClassRef"]['ListID']= kwargs['ClassRef_ListID'] else: - self.QBDict[self.classNameRq][self.__class__.__name__]["ClassRef"]={'ListID': kwargs['ClassRef_ListID']} + self.QBDict[self.__class__.__name__]["ClassRef"]={'ListID': kwargs['ClassRef_ListID']} if 'ClassRef_FullName' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ClassRef"]={'FullName': kwargs['ClassRef_FullName']} + self.QBDict[self.__class__.__name__]["ClassRef"]={'FullName': kwargs['ClassRef_FullName']} if 'ARAccountRef_ListID' in kwargs: - if 'ARAccountRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: - self.QBDict[self.classNameRq][self.__class__.__name__]["ARAccountRef"]['ListID']= kwargs['ARAccountRef_ListID'] + if 'ARAccountRef' in self.QBDict[self.__class__.__name__]: + self.QBDict[self.__class__.__name__]["ARAccountRef"]['ListID']= kwargs['ARAccountRef_ListID'] else: - self.QBDict[self.classNameRq][self.__class__.__name__]["ARAccountRef"]={'ListID': kwargs['ARAccountRef_ListID']} + self.QBDict[self.__class__.__name__]["ARAccountRef"]={'ListID': kwargs['ARAccountRef_ListID']} if 'ARAccountRef_FullName' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ARAccountRef"]={'FullName': kwargs['ARAccountRef_FullName']} + self.QBDict[self.__class__.__name__]["ARAccountRef"]={'FullName': kwargs['ARAccountRef_FullName']} if 'TemplateRef_ListID' in kwargs: - if 'TemplateRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: - self.QBDict[self.classNameRq][self.__class__.__name__]["TemplateRef"]['ListID']= kwargs['TemplateRef_ListID'] + if 'TemplateRef' in self.QBDict[self.__class__.__name__]: + self.QBDict[self.__class__.__name__]["TemplateRef"]['ListID']= kwargs['TemplateRef_ListID'] else: - self.QBDict[self.classNameRq][self.__class__.__name__]["TemplateRef"]={'ListID': kwargs['TemplateRef_ListID']} + self.QBDict[self.__class__.__name__]["TemplateRef"]={'ListID': kwargs['TemplateRef_ListID']} if 'TemplateRef_FullName' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["TemplateRef"]={'FullName': kwargs['TemplateRef_FullName']} + self.QBDict[self.__class__.__name__]["TemplateRef"]={'FullName': kwargs['TemplateRef_FullName']} if 'TxnDate' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["TxnDate"]=kwargs['TxnDate'] + self.QBDict[self.__class__.__name__]["TxnDate"]=kwargs['TxnDate'] if 'RefNumber' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["RefNumber"]=kwargs['RefNumber'] + self.QBDict[self.__class__.__name__]["RefNumber"]=kwargs['RefNumber'] if 'BillAddress_Addr1' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["BillAddress"]={'Addr1': kwargs['BillAddress_Addr1']} + self.QBDict[self.__class__.__name__]["BillAddress"]={'Addr1': kwargs['BillAddress_Addr1']} if 'BillAddress_Addr2' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["BillAddress"]={'Addr2': kwargs['BillAddress_Addr2']} + self.QBDict[self.__class__.__name__]["BillAddress"]={'Addr2': kwargs['BillAddress_Addr2']} if 'BillAddress_Addr3' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["BillAddress"]={'Addr3': kwargs['BillAddress_Addr3']} + self.QBDict[self.__class__.__name__]["BillAddress"]={'Addr3': kwargs['BillAddress_Addr3']} if 'BillAddress_Addr4' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["BillAddress"]={'Addr4': kwargs['BillAddress_Addr4']} + self.QBDict[self.__class__.__name__]["BillAddress"]={'Addr4': kwargs['BillAddress_Addr4']} if 'BillAddress_Addr5' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["BillAddress"]={'Addr5': kwargs['BillAddress_Addr5']} + self.QBDict[self.__class__.__name__]["BillAddress"]={'Addr5': kwargs['BillAddress_Addr5']} if 'BillAddress_City' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["BillAddress"]={'City': kwargs['BillAddress_City']} + self.QBDict[self.__class__.__name__]["BillAddress"]={'City': kwargs['BillAddress_City']} if 'BillAddress_State' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["BillAddress"]={'State': kwargs['BillAddress_State']} + self.QBDict[self.__class__.__name__]["BillAddress"]={'State': kwargs['BillAddress_State']} if 'BillAddress_PostalCode' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["BillAddress"]={'PostalCode': kwargs['BillAddress_PostalCode']} + self.QBDict[self.__class__.__name__]["BillAddress"]={'PostalCode': kwargs['BillAddress_PostalCode']} if 'BillAddress_Country' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["BillAddress"]={'Country': kwargs['BillAddress_Country']} + self.QBDict[self.__class__.__name__]["BillAddress"]={'Country': kwargs['BillAddress_Country']} if 'BillAddress_Note' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["BillAddress"]={'Note': kwargs['BillAddress_Note']} + self.QBDict[self.__class__.__name__]["BillAddress"]={'Note': kwargs['BillAddress_Note']} if 'ShipAddress_Addr1' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipAddress"]={'Addr1': kwargs['ShipAddress_Addr1']} + self.QBDict[self.__class__.__name__]["ShipAddress"]={'Addr1': kwargs['ShipAddress_Addr1']} if 'ShipAddress_Addr2' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipAddress"]={'Addr2': kwargs['ShipAddress_Addr2']} + self.QBDict[self.__class__.__name__]["ShipAddress"]={'Addr2': kwargs['ShipAddress_Addr2']} if 'ShipAddress_Addr3' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipAddress"]={'Addr3': kwargs['ShipAddress_Addr3']} + self.QBDict[self.__class__.__name__]["ShipAddress"]={'Addr3': kwargs['ShipAddress_Addr3']} if 'ShipAddress_Addr4' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipAddress"]={'Addr4': kwargs['ShipAddress_Addr4']} + self.QBDict[self.__class__.__name__]["ShipAddress"]={'Addr4': kwargs['ShipAddress_Addr4']} if 'ShipAddress_Addr5' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipAddress"]={'Addr5': kwargs['ShipAddress_Addr5']} + self.QBDict[self.__class__.__name__]["ShipAddress"]={'Addr5': kwargs['ShipAddress_Addr5']} if 'ShipAddress_City' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipAddress"]={'City': kwargs['ShipAddress_City']} + self.QBDict[self.__class__.__name__]["ShipAddress"]={'City': kwargs['ShipAddress_City']} if 'ShipAddress_State' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipAddress"]={'State': kwargs['ShipAddress_State']} + self.QBDict[self.__class__.__name__]["ShipAddress"]={'State': kwargs['ShipAddress_State']} if 'ShipAddress_PostalCode' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipAddress"]={'PostalCode': kwargs['ShipAddress_PostalCode']} + self.QBDict[self.__class__.__name__]["ShipAddress"]={'PostalCode': kwargs['ShipAddress_PostalCode']} if 'ShipAddress_Country' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipAddress"]={'Country': kwargs['ShipAddress_Country']} + self.QBDict[self.__class__.__name__]["ShipAddress"]={'Country': kwargs['ShipAddress_Country']} if 'ShipAddress_Note' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipAddress"]={'Note': kwargs['ShipAddress_Note']} + self.QBDict[self.__class__.__name__]["ShipAddress"]={'Note': kwargs['ShipAddress_Note']} if 'IsPending' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["IsPending"]=kwargs['IsPending'] + self.QBDict[self.__class__.__name__]["IsPending"]=kwargs['IsPending'] if 'IsFinanceCharge' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["IsFinanceCharge"]=kwargs['IsFinanceCharge'] + self.QBDict[self.__class__.__name__]["IsFinanceCharge"]=kwargs['IsFinanceCharge'] if 'PONumber' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["PONumber"]=kwargs['PONumber'] + self.QBDict[self.__class__.__name__]["PONumber"]=kwargs['PONumber'] if 'TermsRef_ListID' in kwargs: - if 'TermsRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: - self.QBDict[self.classNameRq][self.__class__.__name__]["TermsRef"]['ListID']= kwargs['TermsRef_ListID'] + if 'TermsRef' in self.QBDict[self.__class__.__name__]: + self.QBDict[self.__class__.__name__]["TermsRef"]['ListID']= kwargs['TermsRef_ListID'] else: - self.QBDict[self.classNameRq][self.__class__.__name__]["TermsRef"]={'ListID': kwargs['TermsRef_ListID']} + self.QBDict[self.__class__.__name__]["TermsRef"]={'ListID': kwargs['TermsRef_ListID']} if 'TermsRef_FullName' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["TermsRef"]={'FullName': kwargs['TermsRef_FullName']} + self.QBDict[self.__class__.__name__]["TermsRef"]={'FullName': kwargs['TermsRef_FullName']} if 'DueDate' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["DueDate"]=kwargs['DueDate'] + self.QBDict[self.__class__.__name__]["DueDate"]=kwargs['DueDate'] if 'SalesRepRef_ListID' in kwargs: - if 'SalesRepRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: - self.QBDict[self.classNameRq][self.__class__.__name__]["SalesRepRef"]['ListID']= kwargs['SalesRepRef_ListID'] + if 'SalesRepRef' in self.QBDict[self.__class__.__name__]: + self.QBDict[self.__class__.__name__]["SalesRepRef"]['ListID']= kwargs['SalesRepRef_ListID'] else: - self.QBDict[self.classNameRq][self.__class__.__name__]["SalesRepRef"]={'ListID': kwargs['SalesRepRef_ListID']} + self.QBDict[self.__class__.__name__]["SalesRepRef"]={'ListID': kwargs['SalesRepRef_ListID']} if 'SalesRepRef_FullName' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["SalesRepRef"]={'FullName': kwargs['SalesRepRef_FullName']} + self.QBDict[self.__class__.__name__]["SalesRepRef"]={'FullName': kwargs['SalesRepRef_FullName']} if 'FOB' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["FOB"]=kwargs['FOB'] + self.QBDict[self.__class__.__name__]["FOB"]=kwargs['FOB'] if 'ShipDate' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipDate"]=kwargs['ShipDate'] + self.QBDict[self.__class__.__name__]["ShipDate"]=kwargs['ShipDate'] if 'ShipMethodRef_ListID' in kwargs: - if 'ShipMethodRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipMethodRef"]['ListID']= kwargs['ShipMethodRef_ListID'] + if 'ShipMethodRef' in self.QBDict[self.__class__.__name__]: + self.QBDict[self.__class__.__name__]["ShipMethodRef"]['ListID']= kwargs['ShipMethodRef_ListID'] else: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipMethodRef"]={'ListID': kwargs['ShipMethodRef_ListID']} + self.QBDict[self.__class__.__name__]["ShipMethodRef"]={'ListID': kwargs['ShipMethodRef_ListID']} if 'ShipMethodRef_FullName' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ShipMethodRef"]={'FullName': kwargs['ShipMethodRef_FullName']} + self.QBDict[self.__class__.__name__]["ShipMethodRef"]={'FullName': kwargs['ShipMethodRef_FullName']} if 'ItemSalesTaxRef_ListID' in kwargs: - if 'ItemSalesTaxRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: - self.QBDict[self.classNameRq][self.__class__.__name__]["ItemSalesTaxRef"]['ListID']= kwargs['ItemSalesTaxRef_ListID'] + if 'ItemSalesTaxRef' in self.QBDict[self.__class__.__name__]: + self.QBDict[self.__class__.__name__]["ItemSalesTaxRef"]['ListID']= kwargs['ItemSalesTaxRef_ListID'] else: - self.QBDict[self.classNameRq][self.__class__.__name__]["ItemSalesTaxRef"]={'ListID': kwargs['ItemSalesTaxRef_ListID']} + self.QBDict[self.__class__.__name__]["ItemSalesTaxRef"]={'ListID': kwargs['ItemSalesTaxRef_ListID']} if 'ItemSalesTaxRef_FullName' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ItemSalesTaxRef"]={'FullName': kwargs['ItemSalesTaxRef_FullName']} + self.QBDict[self.__class__.__name__]["ItemSalesTaxRef"]={'FullName': kwargs['ItemSalesTaxRef_FullName']} if 'Memo' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["Memo"]=kwargs['Memo'] + self.QBDict[self.__class__.__name__]["Memo"]=kwargs['Memo'] if 'CustomerMsgRef_ListID' in kwargs: - if 'CustomerMsgRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: - self.QBDict[self.classNameRq][self.__class__.__name__]["CustomerMsgRef"]['ListID']= kwargs['CustomerMsgRef_ListID'] + if 'CustomerMsgRef' in self.QBDict[self.__class__.__name__]: + self.QBDict[self.__class__.__name__]["CustomerMsgRef"]['ListID']= kwargs['CustomerMsgRef_ListID'] else: - self.QBDict[self.classNameRq][self.__class__.__name__]["CustomerMsgRef"]={'ListID': kwargs['CustomerMsgRef_ListID']} + self.QBDict[self.__class__.__name__]["CustomerMsgRef"]={'ListID': kwargs['CustomerMsgRef_ListID']} if 'CustomerMsgRef_FullName' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["CustomerMsgRef"]={'FullName': kwargs['CustomerMsgRef_FullName']} + self.QBDict[self.__class__.__name__]["CustomerMsgRef"]={'FullName': kwargs['CustomerMsgRef_FullName']} if 'IsToBePrinted' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["IsToBePrinted"]=kwargs['IsToBePrinted'] + self.QBDict[self.__class__.__name__]["IsToBePrinted"]=kwargs['IsToBePrinted'] if 'IsToBeEmailed' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["IsToBeEmailed"]=kwargs['IsToBeEmailed'] + self.QBDict[self.__class__.__name__]["IsToBeEmailed"]=kwargs['IsToBeEmailed'] if 'IsTaxIncluded' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["IsTaxIncluded"]=kwargs['IsTaxIncluded'] + self.QBDict[self.__class__.__name__]["IsTaxIncluded"]=kwargs['IsTaxIncluded'] if 'CustomerSalesTaxCodeRef_ListID' in kwargs: - if 'CustomerSalesTaxCodeRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: - self.QBDict[self.classNameRq][self.__class__.__name__]["CustomerSalesTaxCodeRef"]['ListID']= kwargs['CustomerSalesTaxCodeRef_ListID'] + if 'CustomerSalesTaxCodeRef' in self.QBDict[self.__class__.__name__]: + self.QBDict[self.__class__.__name__]["CustomerSalesTaxCodeRef"]['ListID']= kwargs['CustomerSalesTaxCodeRef_ListID'] else: - self.QBDict[self.classNameRq][self.__class__.__name__]["CustomerSalesTaxCodeRef"]={'ListID': kwargs['CustomerSalesTaxCodeRef_ListID']} + self.QBDict[self.__class__.__name__]["CustomerSalesTaxCodeRef"]={'ListID': kwargs['CustomerSalesTaxCodeRef_ListID']} if 'CustomerSalesTaxCodeRef_FullName' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["CustomerSalesTaxCodeRef"]={'FullName': kwargs['CustomerSalesTaxCodeRef_FullName']} + self.QBDict[self.__class__.__name__]["CustomerSalesTaxCodeRef"]={'FullName': kwargs['CustomerSalesTaxCodeRef_FullName']} if 'Other' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["Other"]=kwargs['Other'] + self.QBDict[self.__class__.__name__]["Other"]=kwargs['Other'] if 'ExchangeRate' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ExchangeRate"]=kwargs['ExchangeRate'] + self.QBDict[self.__class__.__name__]["ExchangeRate"]=kwargs['ExchangeRate'] if 'ExternalGUID' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["ExternalGUID"]=kwargs['ExternalGUID'] + self.QBDict[self.__class__.__name__]["ExternalGUID"]=kwargs['ExternalGUID'] if 'LinkToTxnID' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["LinkToTxnID"]=makeAList(kwargs['LinkToTxnID']) + self.QBDict[self.__class__.__name__]["LinkToTxnID"]=makeAList(kwargs['LinkToTxnID']) if 'SetCredit_CreditTxnID' in kwargs and 'SetCredit_AppliedAmount' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["SetCredit"]={'CreditTxnID':{'@useMacro':"MACROTYPE", '#text':kwargs['SetCredit_CreditTxnID']}, 'AppliedAmount': kwargs['SetCredit_AppliedAmount']} + self.QBDict[self.__class__.__name__]["SetCredit"]={'CreditTxnID':{'@useMacro':"MACROTYPE", '#text':kwargs['SetCredit_CreditTxnID']}, 'AppliedAmount': kwargs['SetCredit_AppliedAmount']} if 'SetCredit_Override' in kwargs: - self.QBDict[self.classNameRq][self.__class__.__name__]["SetCredit"]["Override"]=kwargs['SetCredit_Override'] + self.QBDict[self.__class__.__name__]["SetCredit"]["Override"]=kwargs['SetCredit_Override'] #add InvoiceLineAdd kwargs here self.InvoiceLineAdd = [] @@ -520,7 +539,7 @@ class InvoiceAdd(baseQBQuery): for eachLineAdd in LineAdd: self.LineAddDict = {} if 'ItemRef_ListID' in eachLineAdd: - if 'ItemRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: + if 'ItemRef' in self.QBDict[self.__class__.__name__]: self.LineAddDict["ItemRef"]['ListID']= eachLineAdd['ItemRef_ListID'] else: self.LineAddDict["ItemRef"]={'ListID': eachLineAdd['ItemRef_ListID']} @@ -537,7 +556,7 @@ class InvoiceAdd(baseQBQuery): elif 'RatePercent' in eachLineAdd: self.LineAddDict["RatePercent"]=eachLineAdd['RatePercent'] elif 'PriceLevelRef_ListID' in eachLineAdd: - if 'PriceLevelRef' in self.QBDict[self.classNameRq][self.__class__.__name__]: + if 'PriceLevelRef' in self.QBDict[self.__class__.__name__]: self.LineAddDict["PriceLevelRef"]['ListID']= eachLineAdd['PriceLevelRef_ListID'] else: self.LineAddDict["PriceLevelRef"]={'ListID': eachLineAdd['PriceLevelRef_ListID']} @@ -561,15 +580,13 @@ class InvoiceAdd(baseQBQuery): print("InvoiceLineAdd has to be list of dict or a dict") # print(f'{self.InvoiceLineAdd = }') if len(self.InvoiceLineAdd)>0: - self.QBDict[self.classNameRq][self.__class__.__name__]['InvoiceLineAdd']=self.InvoiceLineAdd - - + self.QBDict[self.__class__.__name__]['InvoiceLineAdd']=self.InvoiceLineAdd if 'IncludeRetElement' in kwargs: self.QBDict[self.classNameRq]["IncludeRetElement"]=kwargs['IncludeRetElement'] # print(self.classNameRq) - # pprint.pprint(self.QBDict, sort_dicts=False) + pprint.pprint(self.QBDict, sort_dicts=False) diff --git a/QBClass/server.py b/QBClass/server.py index 376f8d1..d9595b2 100644 --- a/QBClass/server.py +++ b/QBClass/server.py @@ -22,7 +22,7 @@ def timing(f): class baseQBQuery: def __init__(self, *args, **kwargs, ) -> None: # print(f'{kwargs = }') - # print(f'{args = }') + print(f'{args = }') self.QBXML = None self.QBDict = {} self.response_string = None @@ -75,6 +75,7 @@ class baseQBQuery: # } # } firstKey = str(list(self.QBDict.keys())[0]) + print(f'{firstKey = } {self.QBDict}') dataDict["?qbxml"]["QBXML"] = {"QBXMLMsgsRq": { ### Example with multiple FullName Item ### "@onError": self.onError, firstKey: self.QBDict[firstKey]}} @@ -187,6 +188,7 @@ class baseQBQuery: if self.Rs: return True if self.QBDict: + print('runcheck', self.QBDict) self.create_QBXML() if self.connect_to_quickbooks(): return True diff --git a/exim_testimport.py b/exim_testimport.py index ba43b83..99f63af 100644 --- a/exim_testimport.py +++ b/exim_testimport.py @@ -1,4 +1,4 @@ -dt = {'CustomerRef_FullName': 'JM Abadi', +dt2 = [{'CustomerRef_FullName': 'JM Abadi', 'ARAccountRef_FullName': 'Accounts Receivable', 'TemplateRef_FullName': 'DBW Invoice (11%)', 'TxnDate': '2022-08-26', @@ -29,23 +29,61 @@ dt = {'CustomerRef_FullName': 'JM Abadi', 'ShipDate': '2022-08-26', 'IsToBePrinted': 'false', 'IsToBeEmailed': 'false', -# 'LinkToTxnID': 'A289A-1661495309', - 'InvoiceLineAdd': [{ - - 'Quantity': '12', + 'InvoiceLineAdd': [{'Quantity': '12', 'UnitOfMeasure': 'Box', 'Rate': '35000', 'Amount': '420000.00', 'LinkToTxn_TxnID': 'A289A-1661495309', 'LinkToTxn_TxnLineID': 'A289C-1661495309'}, - { - - 'Quantity': '6', + {'Quantity': '6', 'UnitOfMeasure': 'Box', 'Rate': '122500', 'Amount': '735000.00', 'LinkToTxn_TxnID': 'A289A-1661495309', - 'LinkToTxn_TxnLineID': 'A289D-1661495309'}]} + 'LinkToTxn_TxnLineID': 'A289D-1661495309'}]}, + {'CustomerRef_FullName': 'JM Abadi', + 'ARAccountRef_FullName': 'Accounts Receivable', + 'TemplateRef_FullName': 'DBW Invoice (11%)', + 'TxnDate': '2022-08-26', + 'RefNumber': '10671', + 'BillAddress_Addr1': 'JM Abadi', + 'BillAddress_Addr2': 'Jl. Raya Ps. Minggu No. 75', + 'BillAddress_Addr3': None, + 'BillAddress_Addr4': None, + 'BillAddress_Addr5': None, + 'BillAddress_City': None, + 'BillAddress_State': None, + 'BillAddress_PostalCode': None, + 'BillAddress_Country': None, + 'BillAddress_Note': None, + 'ShipAddress_Addr1': 'JM Abadi', + 'ShipAddress_Addr2': 'Jl. Raya Ps. Minggu No. 75', + 'ShipAddress_Addr3': None, + 'ShipAddress_Addr4': None, + 'ShipAddress_Addr5': None, + 'ShipAddress_City': None, + 'ShipAddress_State': None, + 'ShipAddress_PostalCode': None, + 'ShipAddress_Country': None, + 'ShipAddress_Note': None, + 'TermsRef_FullName': '30 Hari', + 'DueDate': '2022-09-25', + 'SalesRepRef_FullName': 'W', + 'ShipDate': '2022-08-26', + 'IsToBePrinted': 'false', + 'IsToBeEmailed': 'false', + 'InvoiceLineAdd': [{'Quantity': '12', + 'UnitOfMeasure': 'Box', + 'Rate': '35000', + 'Amount': '420000.00', + 'LinkToTxn_TxnID': 'A289A-1661495309', + 'LinkToTxn_TxnLineID': 'A289C-1661495309'}, + {'Quantity': '6', + 'UnitOfMeasure': 'Box', + 'Rate': '122500', + 'Amount': '735000.00', + 'LinkToTxn_TxnID': 'A289A-1661495309', + 'LinkToTxn_TxnLineID': 'A289D-1661495309'}]}] # print(dt) dt = {'CustomerRef_FullName': 'JM Abadi', @@ -93,6 +131,7 @@ dt = {'CustomerRef_FullName': 'JM Abadi', 'LinkToTxn_TxnLineID': 'A289D-1661495309'}]} from QBClass.QBClasses import InvoiceAdd -IA = InvoiceAdd(**dt, debug=True) +# IA = InvoiceAdd(**dt, debug=True) +IA = InvoiceAdd(*dt2, debug=True) #a list print(IA.all())