mirror of
https://github.com/bcomsugi/dasaproject.git
synced 2026-01-10 17:02:37 +07:00
update discount correctly
This commit is contained in:
parent
c723c7bd62
commit
2e22a01b52
@ -10,7 +10,7 @@ import os
|
|||||||
import pythoncom
|
import pythoncom
|
||||||
# from icecream import ic
|
# from icecream import ic
|
||||||
|
|
||||||
ic.configureOutput(includeContext=True, )
|
# ic.configureOutput(includeContext=True, )
|
||||||
class SalesOrderQuery:
|
class SalesOrderQuery:
|
||||||
def __init__(self, **kwargs) -> None:
|
def __init__(self, **kwargs) -> None:
|
||||||
# print(f'kwargs:{kwargs}')
|
# print(f'kwargs:{kwargs}')
|
||||||
@ -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)
|
||||||
@ -272,6 +272,8 @@ class SalesOrderQuery:
|
|||||||
for SalesOrderRet in SalesOrderRets:
|
for SalesOrderRet in SalesOrderRets:
|
||||||
RefNumber = SalesOrderRet.find('RefNumber').text
|
RefNumber = SalesOrderRet.find('RefNumber').text
|
||||||
# Memo = SalesOrderRet.find('Memo').text
|
# Memo = SalesOrderRet.find('Memo').text
|
||||||
|
TxnDate = SalesOrderRet.find('TxnDate').text
|
||||||
|
TxnNumber = SalesOrderRet.find('TxnNumber').text
|
||||||
CustomerFullName = SalesOrderRet.find('CustomerRef/FullName').text
|
CustomerFullName = SalesOrderRet.find('CustomerRef/FullName').text
|
||||||
TxnID = SalesOrderRet.find('TxnID').text
|
TxnID = SalesOrderRet.find('TxnID').text
|
||||||
TotalAmount = SalesOrderRet.find('TotalAmount').text
|
TotalAmount = SalesOrderRet.find('TotalAmount').text
|
||||||
@ -279,6 +281,7 @@ class SalesOrderQuery:
|
|||||||
IsManuallyClosed = SalesOrderRet.find('IsManuallyClosed').text
|
IsManuallyClosed = SalesOrderRet.find('IsManuallyClosed').text
|
||||||
# print(CustomerFullName, TxnID, TotalAmount)
|
# print(CustomerFullName, TxnID, TotalAmount)
|
||||||
SalesOrderdict = {'RefNumber':RefNumber, 'CustomerFullName':CustomerFullName, 'TxnID':TxnID,
|
SalesOrderdict = {'RefNumber':RefNumber, 'CustomerFullName':CustomerFullName, 'TxnID':TxnID,
|
||||||
|
'TxnDate':TxnDate, 'TxnNumber':TxnNumber,
|
||||||
'TotalAmount':TotalAmount, 'IsFullyInvoiced':IsFullyInvoiced, 'IsManuallyClosed':IsManuallyClosed, 'SalesOrderLineRet':[]}
|
'TotalAmount':TotalAmount, 'IsFullyInvoiced':IsFullyInvoiced, 'IsManuallyClosed':IsManuallyClosed, 'SalesOrderLineRet':[]}
|
||||||
SalesOrderLineRet = SalesOrderRet.findall('SalesOrderLineRet')
|
SalesOrderLineRet = SalesOrderRet.findall('SalesOrderLineRet')
|
||||||
ic(len(SalesOrderLineRet))
|
ic(len(SalesOrderLineRet))
|
||||||
@ -327,6 +330,82 @@ class SalesOrderQuery:
|
|||||||
# print(f'_get_sales_order_header->Salesorderlist: {self.SalesOrderList}')
|
# print(f'_get_sales_order_header->Salesorderlist: {self.SalesOrderList}')
|
||||||
return 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
|
||||||
|
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
|
||||||
|
OverrideUOMSetRef = SalesOrderLineRet.find('OverrideUOMSetRef/FullName')
|
||||||
|
if OverrideUOMSetRef != None:
|
||||||
|
OverrideUOMSetRef = OverrideUOMSetRef.text
|
||||||
|
Rate = float(SalesOrderLineRet.find('Rate').text)
|
||||||
|
|
||||||
|
Amount = float(SalesOrderLineRet.find('Amount').text)
|
||||||
|
# if self.SPPriceLevelName:
|
||||||
|
Invoiced = SalesOrderLineRet.find('Invoiced').text
|
||||||
|
LineIsManuallyClosed = SalesOrderLineRet.find('IsManuallyClosed').text
|
||||||
|
# print(TxnLineID, ItemFullName)
|
||||||
|
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
|
||||||
|
|
||||||
|
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 addDiscountToInvoiceList(self, _dict:dict):
|
def addDiscountToInvoiceList(self, _dict:dict):
|
||||||
print("addDiscountToInvoiceList")
|
print("addDiscountToInvoiceList")
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,8 @@ from django.urls import path
|
|||||||
from . import views
|
from . import views
|
||||||
from icecream import install
|
from icecream import install
|
||||||
install()
|
install()
|
||||||
|
from icecream import ic
|
||||||
|
ic.configureOutput(includeContext=True, )
|
||||||
app_name = "Invoice"
|
app_name = "Invoice"
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user