mirror of
https://github.com/bcomsugi/dasaproject.git
synced 2026-01-10 06:52:36 +07:00
_get_sales_order_header fixed disc
This commit is contained in:
parent
2e22a01b52
commit
c160fc619b
@ -260,7 +260,7 @@ class SalesOrderQuery:
|
||||
return False, status_code
|
||||
|
||||
|
||||
def _get_sales_order_header_(self, response_string):
|
||||
def _get_sales_order_header(self, response_string):
|
||||
print('_get_sales_order_header')
|
||||
ic(f'responsestring:{response_string}')
|
||||
QBXML = ET.fromstring(response_string)
|
||||
@ -288,77 +288,7 @@ class SalesOrderQuery:
|
||||
if len(SalesOrderLineRet) > 0:
|
||||
disc_amount=0
|
||||
for SalesOrderLineRet in SalesOrderLineRet:
|
||||
TxnLineID = SalesOrderLineRet.find('TxnLineID').text
|
||||
ItemFullName = SalesOrderLineRet.find('ItemRef/FullName')
|
||||
if ItemFullName is None:
|
||||
ic("no itemfullname")
|
||||
break
|
||||
else:
|
||||
ItemFullName=ItemFullName.text
|
||||
ic(ItemFullName)
|
||||
Quantity = SalesOrderLineRet.find('Quantity').text
|
||||
UnitOfMeasure = SalesOrderLineRet.find('UnitOfMeasure').text
|
||||
Rate = float(SalesOrderLineRet.find('Rate').text)
|
||||
|
||||
Amount = float(SalesOrderLineRet.find('Amount').text)
|
||||
# if self.SPPriceLevelName:
|
||||
if self.Customer[2]:
|
||||
# print(Rate, (Rate - self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.SPPriceLevelName)].values.tolist()[0][2]))
|
||||
ic(Quantity, Rate, (Rate - self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.Customer[2])].values.tolist()[0][2]))
|
||||
disc_amount += float(Quantity) * (Rate-self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.Customer[2])].values.tolist()[0][2])
|
||||
# disc_amount+=float(Quantity)*2000 #testing only
|
||||
Invoiced = SalesOrderLineRet.find('Invoiced').text
|
||||
LineIsManuallyClosed = SalesOrderLineRet.find('IsManuallyClosed').text
|
||||
# print(TxnLineID, ItemFullName)
|
||||
BackOrdered = float(Quantity) - float(Invoiced)
|
||||
if BackOrdered:
|
||||
SalesOrderLinedict = {'TxnLineID':TxnLineID,
|
||||
'ItemFullName':ItemFullName,
|
||||
'Quantity':Quantity,
|
||||
'UOM':UnitOfMeasure,
|
||||
'Rate':Rate,
|
||||
'Amount':Amount,
|
||||
'BackOrdered':BackOrdered,
|
||||
'Invoiced':Invoiced,
|
||||
'LineIsManuallyClosed':LineIsManuallyClosed,
|
||||
}
|
||||
SalesOrderdict['SalesOrderLineRet'].append(SalesOrderLinedict)
|
||||
SalesOrderdict['Disc_Amount']=disc_amount
|
||||
_SalesOrderlist.append(SalesOrderdict)
|
||||
# print(_SalesOrderlist)
|
||||
self.SalesOrderList=_SalesOrderlist
|
||||
# print(f'_get_sales_order_header->Salesorderlist: {self.SalesOrderList}')
|
||||
return self.SalesOrderList
|
||||
|
||||
|
||||
def _get_sales_order_header(self, response_string):
|
||||
print('_get_sales_order_header_2')
|
||||
ic(f'responsestring:{response_string}')
|
||||
QBXML = ET.fromstring(response_string)
|
||||
datadict = {}
|
||||
SalesOrderdict = {}
|
||||
_SalesOrderlist = []
|
||||
SalesOrderRets = QBXML.findall('.//SalesOrderRet')
|
||||
# print(SalesOrderRets)
|
||||
for SalesOrderRet in SalesOrderRets:
|
||||
RefNumber = SalesOrderRet.find('RefNumber').text
|
||||
# Memo = SalesOrderRet.find('Memo').text
|
||||
TxnDate = SalesOrderRet.find('TxnDate').text
|
||||
TxnNumber = SalesOrderRet.find('TxnNumber').text
|
||||
CustomerFullName = SalesOrderRet.find('CustomerRef/FullName').text
|
||||
TxnID = SalesOrderRet.find('TxnID').text
|
||||
TotalAmount = SalesOrderRet.find('TotalAmount').text
|
||||
IsFullyInvoiced = SalesOrderRet.find('IsFullyInvoiced').text
|
||||
IsManuallyClosed = SalesOrderRet.find('IsManuallyClosed').text
|
||||
# print(CustomerFullName, TxnID, TotalAmount)
|
||||
SalesOrderdict = {'RefNumber':RefNumber, 'CustomerFullName':CustomerFullName, 'TxnID':TxnID,
|
||||
'TxnDate':TxnDate, 'TxnNumber':TxnNumber,
|
||||
'TotalAmount':TotalAmount, 'IsFullyInvoiced':IsFullyInvoiced, 'IsManuallyClosed':IsManuallyClosed, 'SalesOrderLineRet':[]}
|
||||
SalesOrderLineRet = SalesOrderRet.findall('SalesOrderLineRet')
|
||||
ic(len(SalesOrderLineRet))
|
||||
if len(SalesOrderLineRet) > 0:
|
||||
disc_amount=0
|
||||
for SalesOrderLineRet in SalesOrderLineRet:
|
||||
disc = 0
|
||||
TxnLineID = SalesOrderLineRet.find('TxnLineID').text
|
||||
ItemFullName = SalesOrderLineRet.find('ItemRef/FullName')
|
||||
if ItemFullName is None:
|
||||
@ -382,10 +312,12 @@ class SalesOrderQuery:
|
||||
BackOrdered = float(Quantity) - float(Invoiced)
|
||||
if BackOrdered and LineIsManuallyClosed.lower() == 'false' :
|
||||
if self.Customer[2]:
|
||||
# print(Rate, (Rate - self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.SPPriceLevelName)].values.tolist()[0][2]))
|
||||
ic(Quantity, BackOrdered, Rate, (Rate - self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.Customer[2])].values.tolist()[0][2]))
|
||||
disc_amount += BackOrdered * (Rate-self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.Customer[2])].values.tolist()[0][2])
|
||||
# disc_amount+=float(Quantity)*2000 #testing only
|
||||
disc = Rate-self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.Customer[2])].values.tolist()[0][2]
|
||||
# ic(Rate, disc, (Rate - self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.SPPriceLevelName)].values.tolist()[0][2]))
|
||||
if disc > 0:
|
||||
ic(Quantity, BackOrdered, Rate, (Rate - self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.Customer[2])].values.tolist()[0][2]))
|
||||
disc_amount += BackOrdered * disc # (Rate-self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.Customer[2])].values.tolist()[0][2])
|
||||
# disc_amount += BackOrdered * 2500#(Rate-self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.Customer[2])].values.tolist()[0][2])
|
||||
|
||||
SalesOrderLinedict = {'TxnLineID':TxnLineID,
|
||||
'ItemFullName':ItemFullName,
|
||||
@ -396,6 +328,7 @@ class SalesOrderQuery:
|
||||
'BackOrdered':BackOrdered,
|
||||
'Invoiced':Invoiced,
|
||||
'LineIsManuallyClosed':LineIsManuallyClosed,
|
||||
'disc':disc,
|
||||
}
|
||||
SalesOrderdict['SalesOrderLineRet'].append(SalesOrderLinedict)
|
||||
SalesOrderdict['Disc_Amount']=disc_amount
|
||||
|
||||
@ -105,6 +105,7 @@ def show_inv(request):
|
||||
if itu:
|
||||
invoiceaddQBXML=ini.create_invoiceadd_QBXML()
|
||||
print(invoiceaddQBXML)
|
||||
# print(ini.connect_to_quickbooks(ini.create_invoiceadd_QBXML()))
|
||||
|
||||
return render( request, "Invoice/so_list_form.html", context)
|
||||
# return HttpResponse('')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user