mirror of
https://github.com/bcomsugi/dasaproject.git
synced 2026-01-10 05:52:38 +07:00
minor update exim.py
This commit is contained in:
parent
d056ae2eb1
commit
0f65abb29f
@ -312,8 +312,9 @@ def LineAdd(lineAdd:Union[list, dict])->dict:
|
|||||||
|
|
||||||
class InvoiceAdd(baseQBQuery):
|
class InvoiceAdd(baseQBQuery):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
print(f'{args = }')
|
# print(f'{args = }')
|
||||||
print(f'{kwargs = }')
|
# pprint.pprint(args, sort_dicts=False)
|
||||||
|
# print(f'{kwargs = }')
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
# self.includeRetElements_allowed = ['TxnID', 'TimeCreated', 'TimeModified', 'EditSequence', 'TxnNumber', 'CustomerRef', 'ClassRef', 'ARAccontRef', 'TemplateRef']
|
# self.includeRetElements_allowed = ['TxnID', 'TimeCreated', 'TimeModified', 'EditSequence', 'TxnNumber', 'CustomerRef', 'ClassRef', 'ARAccontRef', 'TemplateRef']
|
||||||
self.onError = "stopOnError"
|
self.onError = "stopOnError"
|
||||||
@ -329,13 +330,16 @@ class InvoiceAdd(baseQBQuery):
|
|||||||
# self.QBDict[self.classNameRq]={}
|
# self.QBDict[self.classNameRq]={}
|
||||||
# self.QBDict={}
|
# self.QBDict={}
|
||||||
print('before')
|
print('before')
|
||||||
|
print(f'{len(args) = }')
|
||||||
if len(args)==0:
|
if len(args)==0:
|
||||||
|
print("Only 1 args")
|
||||||
self.create_data(kwargs)
|
self.create_data(kwargs)
|
||||||
self.qbdicttemp = self.QBDict.copy()
|
self.qbdicttemp = self.QBDict.copy()
|
||||||
del self.QBDict[self.__class__.__name__]
|
del self.QBDict[self.__class__.__name__]
|
||||||
self.QBDict[self.classNameRq]=self.qbdicttemp
|
self.QBDict[self.classNameRq]=self.qbdicttemp
|
||||||
else:
|
else:
|
||||||
self.qbdictlist = []
|
self.qbdictlist = []
|
||||||
|
print("more than 1 args")
|
||||||
for arg in args:
|
for arg in args:
|
||||||
self.create_data(arg)
|
self.create_data(arg)
|
||||||
self.qbdictlist.append(self.QBDict.copy())
|
self.qbdictlist.append(self.QBDict.copy())
|
||||||
@ -345,7 +349,7 @@ class InvoiceAdd(baseQBQuery):
|
|||||||
|
|
||||||
|
|
||||||
def create_data(self, kwargs):
|
def create_data(self, kwargs):
|
||||||
# print(kwargs)
|
# pprint.pprint(kwargs, sort_dicts=False)
|
||||||
self.isRequiredFieldSatisfied = False
|
self.isRequiredFieldSatisfied = False
|
||||||
# self.QBDict[self.__class__.__name__]={'@defMacro':'MACROTYPE'}
|
# self.QBDict[self.__class__.__name__]={'@defMacro':'MACROTYPE'}
|
||||||
self.QBDict[self.__class__.__name__]={}
|
self.QBDict[self.__class__.__name__]={}
|
||||||
@ -586,6 +590,7 @@ class InvoiceAdd(baseQBQuery):
|
|||||||
self.QBDict[self.classNameRq]["IncludeRetElement"]=kwargs['IncludeRetElement']
|
self.QBDict[self.classNameRq]["IncludeRetElement"]=kwargs['IncludeRetElement']
|
||||||
|
|
||||||
# print(self.classNameRq)
|
# print(self.classNameRq)
|
||||||
|
print('self.QBDICT')
|
||||||
pprint.pprint(self.QBDict, sort_dicts=False)
|
pprint.pprint(self.QBDict, sort_dicts=False)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ def timing(f):
|
|||||||
class baseQBQuery:
|
class baseQBQuery:
|
||||||
def __init__(self, *args, **kwargs, ) -> None:
|
def __init__(self, *args, **kwargs, ) -> None:
|
||||||
# print(f'{kwargs = }')
|
# print(f'{kwargs = }')
|
||||||
print(f'{args = }')
|
# print(f'{args = }')
|
||||||
self.QBXML = None
|
self.QBXML = None
|
||||||
self.QBDict = {}
|
self.QBDict = {}
|
||||||
self.response_string = None
|
self.response_string = None
|
||||||
|
|||||||
24
exim.py
24
exim.py
@ -1,7 +1,7 @@
|
|||||||
# from . import QBClasses
|
# from . import QBClasses
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
# from QBClass.QBClasses import InvoiceQuery, SalesOrderQuery
|
# from QBClass.QBClasses import InvoiceQuery, SalesOrderQuery
|
||||||
from QBClass.QBClasses import InvoiceQuery, SalesOrderQuery
|
from QBClass.QBClasses import InvoiceQuery, SalesOrderQuery, InvoiceAdd
|
||||||
# import timeit
|
# import timeit
|
||||||
import time
|
import time
|
||||||
import json
|
import json
|
||||||
@ -363,6 +363,7 @@ def make_invoiceadd_dict(iq_list):
|
|||||||
inv_line_no_soline = []
|
inv_line_no_soline = []
|
||||||
inv_line_no_itemref = []
|
inv_line_no_itemref = []
|
||||||
invoiceaddlist = []
|
invoiceaddlist = []
|
||||||
|
invadddict = {}
|
||||||
for inv_line in iq_list:
|
for inv_line in iq_list:
|
||||||
# if 'InvoiceLineRet' not in txn:
|
# if 'InvoiceLineRet' not in txn:
|
||||||
# print(f"{txn['RefNumber'] = } doesnt have InvoiceLineRet")
|
# print(f"{txn['RefNumber'] = } doesnt have InvoiceLineRet")
|
||||||
@ -420,7 +421,7 @@ def make_invoiceadd_dict(iq_list):
|
|||||||
inv_line['InvoiceLineRet'] = [inv_line['InvoiceLineRet']]
|
inv_line['InvoiceLineRet'] = [inv_line['InvoiceLineRet']]
|
||||||
|
|
||||||
for idx, invlineret in enumerate(inv_line['InvoiceLineRet']):
|
for idx, invlineret in enumerate(inv_line['InvoiceLineRet']):
|
||||||
print(f'{invlineret = }')
|
# print(f'{invlineret = }')
|
||||||
if 'ItemRef' not in invlineret:
|
if 'ItemRef' not in invlineret:
|
||||||
inv_line_no_itemref.append({'RefNumber':inv_line['RefNumber'],
|
inv_line_no_itemref.append({'RefNumber':inv_line['RefNumber'],
|
||||||
'idx':idx,})
|
'idx':idx,})
|
||||||
@ -454,7 +455,8 @@ def make_invoiceadd_dict(iq_list):
|
|||||||
invadddict['InvoiceLineAdd'] = invoicelineadd_list
|
invadddict['InvoiceLineAdd'] = invoicelineadd_list
|
||||||
invoiceaddlist.append(invadddict)
|
invoiceaddlist.append(invadddict)
|
||||||
|
|
||||||
pprint(invadddict, sort_dicts=False)
|
# pprint(invadddict, sort_dicts=False)
|
||||||
|
pprint(invoiceaddlist, sort_dicts=False)
|
||||||
for x in invoiceaddlist:
|
for x in invoiceaddlist:
|
||||||
if '10671' in x['RefNumber']:
|
if '10671' in x['RefNumber']:
|
||||||
pprint(x, sort_dicts=False)
|
pprint(x, sort_dicts=False)
|
||||||
@ -463,7 +465,8 @@ def make_invoiceadd_dict(iq_list):
|
|||||||
# if '10671' in y['ItemRef_FullName']:
|
# if '10671' in y['ItemRef_FullName']:
|
||||||
# pprint(x, sort_dicts=False)
|
# pprint(x, sort_dicts=False)
|
||||||
# break
|
# break
|
||||||
print(f'{len(invoiceaddlist) = }')
|
print(f'make_invoiceadd_dict - >{len(invoiceaddlist) = }')
|
||||||
|
return invoiceaddlist
|
||||||
|
|
||||||
def writeToFile(iq_list=None, so_dict=None, filename = "", suffix="", indent=2):
|
def writeToFile(iq_list=None, so_dict=None, filename = "", suffix="", indent=2):
|
||||||
if not filename:
|
if not filename:
|
||||||
@ -529,6 +532,7 @@ def main(fromtxndate, totxndate, maxreturned:int=None):
|
|||||||
# process()
|
# process()
|
||||||
|
|
||||||
invqueryfilename = f'exim\Data\{fromtxndate}iq'
|
invqueryfilename = f'exim\Data\{fromtxndate}iq'
|
||||||
|
|
||||||
# if maxreturned:
|
# if maxreturned:
|
||||||
# iq_list, so_dict = get_all_so_from_invoice(MaxReturned=maxreturned)
|
# iq_list, so_dict = get_all_so_from_invoice(MaxReturned=maxreturned)
|
||||||
|
|
||||||
@ -542,7 +546,7 @@ def main(fromtxndate, totxndate, maxreturned:int=None):
|
|||||||
|
|
||||||
# ## Reading from QB and write to a file depends on txndate
|
# ## Reading from QB and write to a file depends on txndate
|
||||||
# iq_list, so_dict = get_all_so_from_invoice(FromTxnDate=fromtxndate, ToTxnDate=totxndate)
|
# iq_list, so_dict = get_all_so_from_invoice(FromTxnDate=fromtxndate, ToTxnDate=totxndate)
|
||||||
# writeToFile(iq_list, so_dict, filename=invqueryfilename)
|
# writeToFile(iq_list, so_dict, filename=invqueryfilename)
|
||||||
|
|
||||||
### reading from existing file the iq_list and so_dict jsonfile
|
### reading from existing file the iq_list and so_dict jsonfile
|
||||||
|
|
||||||
@ -556,13 +560,17 @@ def main(fromtxndate, totxndate, maxreturned:int=None):
|
|||||||
print(len(iq_list))
|
print(len(iq_list))
|
||||||
print(f'Seems {invqueryfilename}{suffix}.json is {checking_iqwith_so(iq_list)}') #checking the iq_list. is it good to import to new QB?
|
print(f'Seems {invqueryfilename}{suffix}.json is {checking_iqwith_so(iq_list)}') #checking the iq_list. is it good to import to new QB?
|
||||||
|
|
||||||
make_invoiceadd_dict(iq_list)
|
return make_invoiceadd_dict(iq_list)
|
||||||
|
|
||||||
if __name__=='__main__':
|
if __name__=='__main__':
|
||||||
# print(np.arange('2021-02', '2021-03', dtype='datetime64[D]'))
|
# print(np.arange('2021-02', '2021-03', dtype='datetime64[D]'))
|
||||||
fromtxndate = '2022-08-01'
|
fromtxndate = '2022-07-02'
|
||||||
totxndate = get_last_date_of_month(fromtxndate)
|
totxndate = get_last_date_of_month(fromtxndate)
|
||||||
_fromdate = datetime.datetime.fromisoformat(fromtxndate)
|
_fromdate = datetime.datetime.fromisoformat(fromtxndate)
|
||||||
|
|
||||||
print(fromtxndate)
|
print(fromtxndate)
|
||||||
main(fromtxndate, totxndate)
|
readydata = main(fromtxndate, totxndate, 2)
|
||||||
|
# print(readydata)
|
||||||
|
|
||||||
|
IA = InvoiceAdd(*readydata, debug=False)
|
||||||
|
# IA.all()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user