invoiceadd with multipe(list) dictionary

This commit is contained in:
bcomsugi 2025-02-23 15:52:33 +07:00
parent 40c237630f
commit d056ae2eb1
3 changed files with 156 additions and 98 deletions

View File

@ -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)

View File

@ -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

View File

@ -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())