mirror of
https://github.com/bcomsugi/Quickbooks-API.git
synced 2026-01-08 09:12:38 +07:00
58 lines
3.0 KiB
Python
58 lines
3.0 KiB
Python
from QBClasses import SalesOrderQuery, InvoiceQuery, TransactionQuery, InvoiceAdd, SalesOrderAdd
|
|
from utils import timing, makeAList, makeLinkedTxnList, prepareData
|
|
from pprint import pprint, PrettyPrinter
|
|
import datetime
|
|
|
|
import xmltodict
|
|
|
|
def addSO(data:dict)->bool:
|
|
CustomerRef_FullName=data.get('CustomerRef_FullName', None)
|
|
TemplateRef_FullName=data.get('TemplateRef_FullName', None)
|
|
TxnDate=data.get('TxnDate', None) #default today
|
|
RefNumber=data.get('RefNumber', None)
|
|
ShipAddress=data.get('ShipAddress', None)
|
|
PONumber=data.get('PONumber', None)
|
|
Memo=data.get('Memo', None)
|
|
IsToBePrint=False #default False
|
|
IsToBeEmail=False #default False
|
|
|
|
SalesOrderLineAdd:list[dict]=data.get('SalesOrderLineAdd', [])
|
|
for SOLine in SalesOrderLineAdd:
|
|
ItemRef_FullName=SOLine.get('ItemRef_FullName', None)
|
|
Quantity=SOLine.get('Quantity', None)
|
|
UnitOfMeasure=SOLine.get('UnitOfMeasure', None)
|
|
|
|
def main():
|
|
data = {'requestID': '345', 'CustomerRef_FullName': '999 HPL', 'RefNumber':'Ref12345', 'TxnDate': "2024-09-01"}
|
|
# data = { 'CustomerRef_FullName': '999 HPL', 'RefNumber':'Ref12345', 'TxnDate': "2024-09-01"}
|
|
includeRetElement = ['TxnID', 'EditSequence', 'CustomerRef', 'TemplateRef', 'TxnDate', 'RefNumber', 'TotalAmount', 'SalesOrderLineRet']
|
|
data['IncludeRetElement'] = includeRetElement
|
|
lineAdd = [{'ItemRef_FullName':'TACO:AA:TH-006AA', 'Quantity':5, 'Rate':1200}, {'ItemRef_FullName':'TACO:J_FC_NT:TH-807J','Other1':"my reftoother1", 'Quantity':1, 'Rate':5500}]
|
|
lineAdd = [{'ItemRef_FullName':'TACO:AA:TH-006AA', 'Quantity':5, 'Rate':1200}, {'ItemRef_FullName':'TACO:J_FC_NT:TH-807J','Other1':"my reftoother1", 'Quantity':1, }]
|
|
# lineAdd = {'ItemRef_FullName':'Item123', 'Quantity':5, 'Rate':1200}#, {'ItemRef_FullName':'Item23A', 'Quantity':1, 'Rate':5500}
|
|
data['SalesOrderLineAdd']=lineAdd
|
|
# {'requestID': '345', 'CustomerRef_FullName': '999 HPL', 'RefNumber':'Ref12345', 'TxnDate': "2024-09-01", 'IncludeRetElement': ['TxnID', 'EditSequence', 'CustomerRef', 'TemplateRef', 'TxnDate', 'RefNumber', 'TotalAmount', 'SalesOrderLineRet'], 'SalesOrderLineAdd': [{'ItemRef_FullName':'TACO:AA:TH-006AA', 'Quantity':5, 'Rate':1200}, {'ItemRef_FullName':'TACO:J_FC_NT:TH-807J','Other1':"my reftoother1", 'Quantity':1, }] }
|
|
print("")
|
|
print('this is the format to ADD SO or INV')
|
|
pprint(data, sort_dicts=False)
|
|
print("")
|
|
soAdd = SalesOrderAdd(**data)
|
|
print(f'{soAdd = }')
|
|
print(f'{soAdd.__repr__ = }')
|
|
print(f'{soAdd.all() = }')
|
|
pprint(soAdd.to_json())
|
|
|
|
def test_preparedata():
|
|
print("Test Preparedata")
|
|
data = '''order: Sumber rejeki\n
|
|
TH-001AA : 4 :Kirim Krian\n
|
|
ECO-016= 7\n
|
|
'''
|
|
prepareData(data)
|
|
if __name__=='__main__':
|
|
# test_preparedata()
|
|
main()
|
|
# data={'root':data}
|
|
# print(f'{data = }')
|
|
# QBXML = xmltodict.unparse(data, pretty=True).replace("</?qbxml>", "")#.replace(f'version="{version}"', f'version="{version}"?')
|
|
# print(QBXML) |