mirror of
https://github.com/bcomsugi/Quickbooks-API.git
synced 2026-01-08 09:12:38 +07:00
update InvoiceAdd class with lineadd
This commit is contained in:
parent
2351d4d80b
commit
786ba1e6d1
461
QBClasses.py
461
QBClasses.py
@ -1,9 +1,9 @@
|
||||
from .server import baseQBQuery
|
||||
from server import baseQBQuery
|
||||
# from server import baseQBQuery, timing
|
||||
import pprint
|
||||
# import timeit
|
||||
# import xml.dom.minidom
|
||||
from .utils import timing, cleanIncludeRetElements, makeAList
|
||||
from utils import timing, cleanIncludeRetElements, makeAList
|
||||
import json
|
||||
from typing import Union
|
||||
|
||||
@ -22,7 +22,7 @@ class ItemInventoryQuery(baseQBQuery):
|
||||
self.includeRetElements_allowed = ["ListID", "FullName", "TimeCreated", "TimeModified", "EditSequence", "Name", "IsActive", "ClassRef", "ParentRef", "Sublevel", "BarCodeValue",
|
||||
"ManufacturerPartNumber", "UnitOfMeasureSetRef", "IsTaxIncluded", "SalesTaxCodeRef", "SalesDesc,", "SalesPrice", "IncomeAccountRef",
|
||||
"PurchaseDesc", "PurchaseCost", "PurchaseTaxCodeRef", "COGSAccountRef", "PrefVendorRef", "AssetAccountRef", "ReforderPoint", "Max", "QuantityOnHand",
|
||||
"AcerageCost", "QuantityOnOrder", "QuantityOnSalesOrder",
|
||||
"AverageCost", "QuantityOnOrder", "QuantityOnSalesOrder",
|
||||
"ExternalGUID", "DataExtRet",
|
||||
]
|
||||
self.onError = "stopOnError"
|
||||
@ -311,198 +311,265 @@ def LineAdd(lineAdd:Union[list, dict])->dict:
|
||||
# print(cleanIncludeRetElements(['ActiveOnly', 'NonZero', 'All'], "nonzero", 'ActiveOnly'))
|
||||
|
||||
class InvoiceAdd(baseQBQuery):
|
||||
def __init__(self, *args, **kwargs):
|
||||
print(f'{args = }')
|
||||
print(f'{kwargs = }')
|
||||
super().__init__(*args, **kwargs)
|
||||
# self.includeRetElements_allowed = ['TxnID', 'TimeCreated', 'TimeModified', 'EditSequence', 'TxnNumber', 'CustomerRef', 'ClassRef', 'ARAccontRef', 'TemplateRef']
|
||||
self.onError = "stopOnError"
|
||||
self.retName = 'InvoiceAddRet'
|
||||
def __init__(self, *args, **kwargs):
|
||||
print(f'{args = }')
|
||||
print(f'{kwargs = }')
|
||||
super().__init__(*args, **kwargs)
|
||||
# self.includeRetElements_allowed = ['TxnID', 'TimeCreated', 'TimeModified', 'EditSequence', 'TxnNumber', 'CustomerRef', 'ClassRef', 'ARAccontRef', 'TemplateRef']
|
||||
self.onError = "stopOnError"
|
||||
self.retName = 'InvoiceAddRet'
|
||||
|
||||
self.defaultFilterKey = "TxnID"
|
||||
self.className = "InvoiceAdd"
|
||||
self.classNameRq:str = self.__class__.__name__ + 'Rq'
|
||||
self.reqSubName = self.className
|
||||
if 'debug' in kwargs and isinstance(kwargs['debug'], bool):
|
||||
self.class_debug=kwargs["debug"]
|
||||
self.defaultFilterKey = "TxnID"
|
||||
self.className = "InvoiceAdd"
|
||||
self.classNameRq:str = self.__class__.__name__ + 'Rq'
|
||||
self.reqSubName = self.className
|
||||
if 'debug' in kwargs and isinstance(kwargs['debug'], bool):
|
||||
self.class_debug=kwargs["debug"]
|
||||
|
||||
self.QBDict[self.classNameRq]={}
|
||||
|
||||
self.isRequiredFieldSatisfied = False
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]={'@defMacro':'MACROTYPE'}
|
||||
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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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.isRequiredFieldSatisfied=True
|
||||
|
||||
if not self.isRequiredFieldSatisfied:
|
||||
raise Exception("Need CustomerRef FullName and/or ListID")
|
||||
self.QBDict[self.classNameRq]={}
|
||||
|
||||
self.isRequiredFieldSatisfied = False
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]={'@defMacro':'MACROTYPE'}
|
||||
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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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.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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'TxnDate' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["TxnDate"]=kwargs['TxnDate']
|
||||
if 'RefNumber' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["RefNumber"]=kwargs['RefNumber']
|
||||
if 'BillAddress_Addr1' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'BillAddress_Addr3' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'BillAddress_Addr5' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'BillAddress_State' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'BillAddress_Country' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'TxnDate' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["TxnDate"]=kwargs['TxnDate']
|
||||
if 'RefNumber' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["RefNumber"]=kwargs['RefNumber']
|
||||
if 'BillAddress_Addr1' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'BillAddress_Addr3' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'BillAddress_Addr5' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'BillAddress_State' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'BillAddress_Country' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'ShipAddress_Addr1' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'ShipAddress_Addr3' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'ShipAddress_Addr5' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'ShipAddress_State' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'ShipAddress_Country' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'IsPending' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["IsPending"]=kwargs['IsPending']
|
||||
if 'IsFinanceCharge' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["IsFinanceCharge"]=kwargs['IsFinanceCharge']
|
||||
if 'PONumber' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'DueDate' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'FOB' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["FOB"]=kwargs['FOB']
|
||||
if 'ShipDate' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'Memo' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'IsToBePrinted' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["IsToBePrinted"]=kwargs['IsToBePrinted']
|
||||
if 'IsToBeEmailed' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["IsToBeEmailed"]=kwargs['IsToBeEmailed']
|
||||
if 'IsTaxIncluded' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'Other' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["Other"]=kwargs['Other']
|
||||
if 'ExchangeRate' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["ExchangeRate"]=kwargs['ExchangeRate']
|
||||
if 'ExternalGUID' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["ExternalGUID"]=kwargs['ExternalGUID']
|
||||
if 'LinkToTxnID' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'SetCredit_Override' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["SetCredit"]["Override"]=kwargs['SetCredit_Override']
|
||||
#add InvoiceLineAdd kwargs here
|
||||
|
||||
if 'ShipAddress_Addr1' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'ShipAddress_Addr3' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'ShipAddress_Addr5' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'ShipAddress_State' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'ShipAddress_Country' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'IsPending' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["IsPending"]=kwargs['IsPending']
|
||||
if 'IsFinanceCharge' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["IsFinanceCharge"]=kwargs['IsFinanceCharge']
|
||||
if 'PONumber' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'DueDate' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'FOB' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["FOB"]=kwargs['FOB']
|
||||
if 'ShipDate' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'Memo' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'IsToBePrinted' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["IsToBePrinted"]=kwargs['IsToBePrinted']
|
||||
if 'IsToBeEmailed' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["IsToBeEmailed"]=kwargs['IsToBeEmailed']
|
||||
if 'IsTaxIncluded' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']
|
||||
else:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
|
||||
if 'Other' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["Other"]=kwargs['Other']
|
||||
if 'ExchangeRate' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["ExchangeRate"]=kwargs['ExchangeRate']
|
||||
if 'ExternalGUID' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["ExternalGUID"]=kwargs['ExternalGUID']
|
||||
if 'LinkToTxnID' in kwargs:
|
||||
self.QBDict[self.classNameRq][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']}
|
||||
if 'SetCredit_Override' in kwargs:
|
||||
self.QBDict[self.classNameRq][self.__class__.__name__]["SetCredit"]["Override"]=kwargs['SetCredit_Override']
|
||||
#add InvoiceLineAdd kwargs here
|
||||
|
||||
if 'IncludeRetElement' in kwargs:
|
||||
self.QBDict[self.classNameRq]["IncludeRetElement"]=kwargs['IncludeRetElement']
|
||||
self.InvoiceLineAdd = []
|
||||
if 'InvoiceLineAdd' in kwargs:
|
||||
LineAdd = kwargs.get('InvoiceLineAdd')
|
||||
self.isLineAddOk = True
|
||||
if isinstance(LineAdd, dict ):
|
||||
LineAdd = [LineAdd]
|
||||
elif isinstance(LineAdd, list):
|
||||
pass
|
||||
else:
|
||||
self.isLineAddOk = False
|
||||
|
||||
# print(self.classNameRq)
|
||||
# print(self.QBDict)
|
||||
if self.isLineAddOk: #check if each instance in the list are all dictionary.
|
||||
for eachLineAdd in LineAdd:
|
||||
if not isinstance(eachLineAdd, dict):
|
||||
self.isLineAddOk = False
|
||||
break
|
||||
else:
|
||||
print("InvoiceLineAdd Not OK. has to be lisst of dict or a dict")
|
||||
|
||||
|
||||
if self.isLineAddOk: #if everything good
|
||||
for eachLineAdd in LineAdd:
|
||||
self.LineAddDict = {}
|
||||
if 'ItemRef_ListID' in eachLineAdd:
|
||||
if 'ItemRef' in self.QBDict[self.classNameRq][self.__class__.__name__]:
|
||||
self.LineAddDict["ItemRef"]['ListID']= eachLineAdd['ItemRef_ListID']
|
||||
else:
|
||||
self.LineAddDict["ItemRef"]={'ListID': eachLineAdd['ItemRef_ListID']}
|
||||
if 'ItemRef_FullName' in eachLineAdd:
|
||||
self.LineAddDict["ItemRef"]={'FullName': eachLineAdd['ItemRef_FullName']}
|
||||
if 'Desc' in eachLineAdd:
|
||||
self.LineAddDict["Desc"]=eachLineAdd['Desc']
|
||||
if 'Quantity' in eachLineAdd:
|
||||
self.LineAddDict["Quantity"]=eachLineAdd['Quantity']
|
||||
if 'UnitOfMeasure' in eachLineAdd:
|
||||
self.LineAddDict["UnitOfMeasure"]=eachLineAdd['UnitOfMeasure']
|
||||
if 'Rate' in eachLineAdd:
|
||||
self.LineAddDict["Rate"]=eachLineAdd['Rate']
|
||||
elif 'RatePercent' in eachLineAdd:
|
||||
self.LineAddDict["RatePercent"]=eachLineAdd['RatePercent']
|
||||
elif 'PriceLevelRef_ListID' in eachLineAdd:
|
||||
if 'PriceLevelRef' in self.QBDict[self.classNameRq][self.__class__.__name__]:
|
||||
self.LineAddDict["PriceLevelRef"]['ListID']= eachLineAdd['PriceLevelRef_ListID']
|
||||
else:
|
||||
self.LineAddDict["PriceLevelRef"]={'ListID': eachLineAdd['PriceLevelRef_ListID']}
|
||||
elif 'PriceLevelRef_FullName' in eachLineAdd:
|
||||
self.LineAddDict["PriceLevelRef"]={'FullName': eachLineAdd['PriceLevelRef_FullName']}
|
||||
|
||||
if 'Amount' in eachLineAdd:
|
||||
self.LineAddDict["Amount"]=eachLineAdd['Amount']
|
||||
# Others
|
||||
if 'Other1' in eachLineAdd:
|
||||
self.LineAddDict["Other1"]=eachLineAdd['Other1']
|
||||
if 'Other2' in eachLineAdd:
|
||||
self.LineAddDict["Other2"]=eachLineAdd['Other2']
|
||||
if len(self.LineAddDict)>0:
|
||||
self.InvoiceLineAdd.append(self.LineAddDict)
|
||||
if 'LinkToTxn_TxnID' in eachLineAdd and 'LinkToTxn_TxnLineID' in eachLineAdd:
|
||||
self.LineAddDict["LinkToTxn"]={'TxnID': eachLineAdd['LinkToTxn_TxnID'], 'TxnLineID': eachLineAdd['LinkToTxn_TxnLineID']}
|
||||
|
||||
#skip the rest, not too important
|
||||
else:
|
||||
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
|
||||
|
||||
|
||||
|
||||
if 'IncludeRetElement' in kwargs:
|
||||
self.QBDict[self.classNameRq]["IncludeRetElement"]=kwargs['IncludeRetElement']
|
||||
|
||||
# print(self.classNameRq)
|
||||
# pprint.pprint(self.QBDict, sort_dicts=False)
|
||||
|
||||
|
||||
class CustomerQuery(baseQBQuery):
|
||||
@ -551,8 +618,10 @@ class CustomerQuery(baseQBQuery):
|
||||
print(f'{IRE = }')
|
||||
if len(IRE)>0:
|
||||
if self.defaultFilterKey not in IRE:
|
||||
IRE.append(self.defaultFilterKey)
|
||||
self.QBDict[self.classNameRq]["IncludeRetElement"]=IRE
|
||||
# IRE.append(self.defaultFilterKey)
|
||||
self.QBDict[self.classNameRq]["IncludeRetElement"]=['ListID'] + IRE
|
||||
else:
|
||||
self.QBDict[self.classNameRq]["IncludeRetElement"]=IRE
|
||||
else:
|
||||
self.QBDict[self.classNameRq]["IncludeRetElement"]=self.includeRetElements_allowed
|
||||
if 'OwnerID' in kwargs:
|
||||
@ -1302,7 +1371,13 @@ if __name__ == "__main__":
|
||||
|
||||
@timing
|
||||
def customerquery():
|
||||
g= CustomerQuery(MaxReturned=3, IncludeRetElement=["fullname", "name", "CompanyName", "BillAddressBlock", "ShipAddressBlock", "Notes", "AdditionalNotesRet", 'creditlimit'])
|
||||
FullName = 'Sentosa Jati Bening'
|
||||
# FullName = "8, Toko"
|
||||
FullName = "999 HPL"
|
||||
g= CustomerQuery(MaxReturned=6, IncludeRetElement=["fullname", "name", "CompanyName", "ShipAddress", "ShipToAddress","Phone", "Notes", "AdditionalNotesRet", 'creditlimit'])
|
||||
# g= CustomerQuery(MaxReturned=3, IncludeRetElement=["fullname", "name", "CompanyName", "BillAddressBlock", "ShipAddressBlock", "Notes", "AdditionalNotesRet", 'creditlimit'])
|
||||
# g=CustomerQuery(MaxReturned = None,)
|
||||
# g= CustomerQuery(FullName= FullName,)# IncludeRetElement=["fullname", "name", "CompanyName", "BillAddressBlock", "ShipAddressBlock", "Notes", "AdditionalNotesRet", 'creditlimit'])
|
||||
# g= CustomerQuery(MaxReturned=20, ActiveStatus="ActiveOnly", MatchCriterion="StartsWith", Name="to", IncludeRetElement=["fullname", "name", "billaddressblock", "currencyfilter"])
|
||||
# print(g.IncludeRetElements_allowed)
|
||||
print("init finish")
|
||||
@ -1376,13 +1451,13 @@ if __name__ == "__main__":
|
||||
print([y for y in x])
|
||||
print(f"{x.get('Name')} : {len(x.get('PriceLevelPerItemRet'))}")
|
||||
|
||||
pricelevel()
|
||||
# pricelevel()
|
||||
# invoicequery()
|
||||
# salesorderquery()
|
||||
# transactionquery()
|
||||
# pprint.pprint(InventoryStockStatusByVendor(), sort_dicts=False)
|
||||
# iteminventoryquery()
|
||||
# customerquery()
|
||||
customerquery()
|
||||
# readxmltodict()
|
||||
# g=SalesOrderQuery(MaxReturned=1)
|
||||
# print(len(None))
|
||||
|
||||
@ -102,6 +102,7 @@ class baseQBQuery:
|
||||
# print(f'{self.response_string = }')
|
||||
xml = minidom.parseString(self.response_string.replace("\n", ""))
|
||||
self.response_string = xml.toprettyxml()
|
||||
print(self.response_string)
|
||||
# print(f'{self.response_string = }')
|
||||
|
||||
self.statusOk = self.isDataOK()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user