update ItemInventoryQuery returning FullName and UOM

This commit is contained in:
bcomsugi 2024-09-17 04:18:32 +07:00
parent 6dd0ac4224
commit f0b1362ad6
2 changed files with 16 additions and 6 deletions

View File

@ -125,6 +125,7 @@ class ItemInventoryQuery:
data = tree.findall(".//ItemInventoryRet")
NameFromTaco = []
FullName = []
UnitOfMeasure = []
print(f'get_data->response_string:{response_string}')
# print(data)
if 'DataExtRet' in self.IncludeRetElement:
@ -144,13 +145,20 @@ class ItemInventoryQuery:
print(f'ItemInventoryQuery->Not Exact Len:Fullname={len(FullName)}; NameFromTaco={len(NameFromTaco)}')
return {}
else:
fullnames = tree.findall(".//FullName")
for fullname in fullnames:
# fullnames = tree.findall(".//FullName")
itemInventoryRet = tree.findall(".//ItemInventoryRet")
for itemInventory in itemInventoryRet:
# for fullname in fullnames:
fullname = itemInventory.find("FullName")
uom = itemInventory.find("UnitOfMeasureSetRef")
if len(fullname.text.split(":"))==3:
FullName.append(fullname.text)
# print(fullname.text.strip(), type(fullname))
print(f'{fullname.text = }')
UnitOfMeasure.append(uom[1].text)
print(f'{uom.text = }')
print(fullname.text.strip(), type(fullname))
if len(FullName)>0:
return {'FullName': FullName}
return {'FullName': FullName, 'UnitOfMeasureSetRef':UnitOfMeasure}
else:
return {}
def to_excel(self, filename:str=''):
@ -189,9 +197,10 @@ class ItemInventoryQuery:
js_data=None
# print(self.create_QBXML())
response_string = self.connect_to_quickbooks(self.create_QBXML())
print(f'{response_string = }')
ret, msg = self.status_ok(response_string)
if ret:
print(f'{ret = }')
df = pd.DataFrame.from_dict(self.get_data(response_string))
print(df)
if len(df)>0:

View File

@ -60,7 +60,8 @@ async def renew_iteminventory():
@app.get('/get-iteminventory-fullname')
async def get_iteminventory_fullname(maxreturned:Union[int, None] = None):
item_inv = ItemInventoryQuery( IncludeRetElement=['FullName'], MaxReturned=maxreturned) #MaxReturned=None means get ALL items
item_inv = ItemInventoryQuery( IncludeRetElement=['FullName','UnitOfMeasureSetRef'], MaxReturned=maxreturned) #MaxReturned=None means get ALL items
# item_inv = ItemInventoryQuery( IncludeRetElement=['FullName',], MaxReturned=maxreturned) #MaxReturned=None means get ALL items
QBXML = item_inv.create_QBXML()
itu = item_inv.connect_to_quickbooks(item_inv.create_QBXML())
status, data = item_inv.to_json()