mirror of
https://github.com/bcomsugi/dasaproject.git
synced 2026-01-10 16:52:38 +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
|
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')
|
print('_get_sales_order_header')
|
||||||
ic(f'responsestring:{response_string}')
|
ic(f'responsestring:{response_string}')
|
||||||
QBXML = ET.fromstring(response_string)
|
QBXML = ET.fromstring(response_string)
|
||||||
@ -288,77 +288,7 @@ class SalesOrderQuery:
|
|||||||
if len(SalesOrderLineRet) > 0:
|
if len(SalesOrderLineRet) > 0:
|
||||||
disc_amount=0
|
disc_amount=0
|
||||||
for SalesOrderLineRet in SalesOrderLineRet:
|
for SalesOrderLineRet in SalesOrderLineRet:
|
||||||
TxnLineID = SalesOrderLineRet.find('TxnLineID').text
|
disc = 0
|
||||||
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:
|
|
||||||
TxnLineID = SalesOrderLineRet.find('TxnLineID').text
|
TxnLineID = SalesOrderLineRet.find('TxnLineID').text
|
||||||
ItemFullName = SalesOrderLineRet.find('ItemRef/FullName')
|
ItemFullName = SalesOrderLineRet.find('ItemRef/FullName')
|
||||||
if ItemFullName is None:
|
if ItemFullName is None:
|
||||||
@ -382,10 +312,12 @@ class SalesOrderQuery:
|
|||||||
BackOrdered = float(Quantity) - float(Invoiced)
|
BackOrdered = float(Quantity) - float(Invoiced)
|
||||||
if BackOrdered and LineIsManuallyClosed.lower() == 'false' :
|
if BackOrdered and LineIsManuallyClosed.lower() == 'false' :
|
||||||
if self.Customer[2]:
|
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]))
|
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(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]))
|
# 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]))
|
||||||
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])
|
if disc > 0:
|
||||||
# disc_amount+=float(Quantity)*2000 #testing only
|
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,
|
SalesOrderLinedict = {'TxnLineID':TxnLineID,
|
||||||
'ItemFullName':ItemFullName,
|
'ItemFullName':ItemFullName,
|
||||||
@ -396,6 +328,7 @@ class SalesOrderQuery:
|
|||||||
'BackOrdered':BackOrdered,
|
'BackOrdered':BackOrdered,
|
||||||
'Invoiced':Invoiced,
|
'Invoiced':Invoiced,
|
||||||
'LineIsManuallyClosed':LineIsManuallyClosed,
|
'LineIsManuallyClosed':LineIsManuallyClosed,
|
||||||
|
'disc':disc,
|
||||||
}
|
}
|
||||||
SalesOrderdict['SalesOrderLineRet'].append(SalesOrderLinedict)
|
SalesOrderdict['SalesOrderLineRet'].append(SalesOrderLinedict)
|
||||||
SalesOrderdict['Disc_Amount']=disc_amount
|
SalesOrderdict['Disc_Amount']=disc_amount
|
||||||
|
|||||||
@ -105,6 +105,7 @@ def show_inv(request):
|
|||||||
if itu:
|
if itu:
|
||||||
invoiceaddQBXML=ini.create_invoiceadd_QBXML()
|
invoiceaddQBXML=ini.create_invoiceadd_QBXML()
|
||||||
print(invoiceaddQBXML)
|
print(invoiceaddQBXML)
|
||||||
|
# print(ini.connect_to_quickbooks(ini.create_invoiceadd_QBXML()))
|
||||||
|
|
||||||
return render( request, "Invoice/so_list_form.html", context)
|
return render( request, "Invoice/so_list_form.html", context)
|
||||||
# return HttpResponse('')
|
# return HttpResponse('')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user