mirror of
https://github.com/bcomsugi/dasaproject.git
synced 2026-01-10 17:02:37 +07:00
update invoiceaddqbxml
This commit is contained in:
parent
bd0304b409
commit
f3b1cac25b
@ -179,26 +179,38 @@ class SalesOrderQuery:
|
|||||||
disc_amount = 0
|
disc_amount = 0
|
||||||
for soidx, salesorder in enumerate(self.SalesOrderList):
|
for soidx, salesorder in enumerate(self.SalesOrderList):
|
||||||
SOTxnId = salesorder['TxnID']
|
SOTxnId = salesorder['TxnID']
|
||||||
disc_amount+=int(salesorder['Disc_Amount'])
|
# disc_amount+=int(salesorder['Disc_Amount'])
|
||||||
print(f'create_invoiceadd_QBXML->SOTxnId: {SOTxnId}')
|
print(f'create_invoiceadd_QBXML->SOTxnId: {SOTxnId}')
|
||||||
for itemline in salesorder['SalesOrderLineRet']:
|
for itemline in salesorder['SalesOrderLineRet']:
|
||||||
# if 'DNQuantity' in itemline:
|
backOrdered = str(itemline['BackOrdered'])
|
||||||
InvoiceLineAdd = self.create_sub_element(ET, InvoiceAdd, "InvoiceLineAdd", "\n ", 10 )
|
# backOrdered = '1' #testing purpose
|
||||||
# Quantity = self.create_sub_element(ET, InvoiceLineAdd, "Quantity", str(itemline['DNQuantity'] ), 12 )
|
if float(backOrdered) > 0:
|
||||||
# Quantity = self.create_sub_element(ET, InvoiceLineAdd, "Quantity", str(itemline['BackOrdered'] ), 12 )
|
discPerPcs = float(itemline['discPerPcs'])
|
||||||
# UnitOfMeasure = self.create_sub_element(ET, InvoiceLineAdd, "UnitOfMeasure", str(itemline['UOM']), 12 )
|
discPerItem = float(backOrdered) * discPerPcs
|
||||||
LinkToTxn = self.create_sub_element(ET, InvoiceLineAdd, "LinkToTxn", "\n ", 10 )
|
disc_amount += discPerItem
|
||||||
TxnID = self.create_sub_element(ET, LinkToTxn, "TxnID", SOTxnId,14 )
|
|
||||||
TxnLineID = self.create_sub_element(ET, LinkToTxn, "TxnLineID", itemline['TxnLineID'], 12 )
|
|
||||||
if soidx == len(self.SalesOrderList)-1: #last list then set the'400_Sales_discount'
|
|
||||||
print(f'disc_amount:{format(disc_amount, ".2f")}')
|
|
||||||
if disc_amount != 0:
|
|
||||||
|
|
||||||
# disc_amount=format(disc_amount, ".2f")
|
|
||||||
InvoiceLineAdd = self.create_sub_element(ET, InvoiceAdd, "InvoiceLineAdd", "\n ", 10 )
|
InvoiceLineAdd = self.create_sub_element(ET, InvoiceAdd, "InvoiceLineAdd", "\n ", 10 )
|
||||||
ItemRef = self.create_sub_element(ET, InvoiceLineAdd, "ItemRef", "\n ", 12)
|
# Quantity = self.create_sub_element(ET, InvoiceLineAdd, "Quantity", str(itemline['DNQuantity'] ), 12 )
|
||||||
ItemFullName = self.create_sub_element(ET, ItemRef, "FullName", "400_Sales Discount", 12)
|
Quantity = self.create_sub_element(ET, InvoiceLineAdd, "Quantity", backOrdered, 12 )
|
||||||
ItemRate = self.create_sub_element(ET, InvoiceLineAdd, "Rate", str(disc_amount), 10)
|
# UnitOfMeasure = self.create_sub_element(ET, InvoiceLineAdd, "UnitOfMeasure", str(itemline['UOM']), 12 )
|
||||||
|
LinkToTxn = self.create_sub_element(ET, InvoiceLineAdd, "LinkToTxn", "\n ", 10 )
|
||||||
|
TxnID = self.create_sub_element(ET, LinkToTxn, "TxnID", SOTxnId,14 )
|
||||||
|
TxnLineID = self.create_sub_element(ET, LinkToTxn, "TxnLineID", itemline['TxnLineID'], 12 )
|
||||||
|
# if soidx == len(self.SalesOrderList)-1: #last list then set the'400_Sales_discount'
|
||||||
|
# print(f'disc_amount:{format(disc_amount, ".2f")}')
|
||||||
|
# if disc_amount != 0:
|
||||||
|
|
||||||
|
# # disc_amount=format(disc_amount, ".2f")
|
||||||
|
# InvoiceLineAdd = self.create_sub_element(ET, InvoiceAdd, "InvoiceLineAdd", "\n ", 10 )
|
||||||
|
# ItemRef = self.create_sub_element(ET, InvoiceLineAdd, "ItemRef", "\n ", 12)
|
||||||
|
# ItemFullName = self.create_sub_element(ET, ItemRef, "FullName", "400_Sales Discount", 12)
|
||||||
|
# ItemRate = self.create_sub_element(ET, InvoiceLineAdd, "Rate", str(disc_amount), 10)
|
||||||
|
|
||||||
|
if disc_amount != 0:
|
||||||
|
# disc_amount=format(disc_amount, ".2f")
|
||||||
|
InvoiceLineAdd = self.create_sub_element(ET, InvoiceAdd, "InvoiceLineAdd", "\n ", 10 )
|
||||||
|
ItemRef = self.create_sub_element(ET, InvoiceLineAdd, "ItemRef", "\n ", 12)
|
||||||
|
ItemFullName = self.create_sub_element(ET, ItemRef, "FullName", "400_Sales Discount", 12)
|
||||||
|
ItemRate = self.create_sub_element(ET, InvoiceLineAdd, "Rate", str(disc_amount), 10)
|
||||||
|
|
||||||
mydata = ET.tostring(root, encoding = "unicode")
|
mydata = ET.tostring(root, encoding = "unicode")
|
||||||
|
|
||||||
@ -311,7 +323,7 @@ class SalesOrderQuery:
|
|||||||
LineIsManuallyClosed = SalesOrderLineRet.find('IsManuallyClosed').text
|
LineIsManuallyClosed = SalesOrderLineRet.find('IsManuallyClosed').text
|
||||||
# print(TxnLineID, ItemFullName)
|
# print(TxnLineID, ItemFullName)
|
||||||
BackOrdered = float(Quantity) - float(Invoiced)
|
BackOrdered = float(Quantity) - float(Invoiced)
|
||||||
if BackOrdered and LineIsManuallyClosed.lower() == 'false' :
|
if BackOrdered > 0 and LineIsManuallyClosed.lower() == 'false' :
|
||||||
if self.Customer[2]:
|
if self.Customer[2]:
|
||||||
discPerPcs = Rate-self._df_price_level.loc[(self._df_price_level['FullName']==ItemFullName) & (self._df_price_level['PriceLevelName']==self.Customer[2])].values.tolist()[0][2]
|
discPerPcs = 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]))
|
# 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]))
|
||||||
@ -320,8 +332,8 @@ class SalesOrderQuery:
|
|||||||
discPerItem = BackOrdered * discPerPcs
|
discPerItem = BackOrdered * discPerPcs
|
||||||
disc_amount += discPerItem
|
disc_amount += discPerItem
|
||||||
# disc_amount += BackOrdered * discPerPcs # (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 * discPerPcs # (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])
|
else:
|
||||||
|
discPerPcs = 0
|
||||||
SalesOrderLinedict = {'TxnLineID':TxnLineID,
|
SalesOrderLinedict = {'TxnLineID':TxnLineID,
|
||||||
'ItemFullName':ItemFullName,
|
'ItemFullName':ItemFullName,
|
||||||
'Quantity':Quantity,
|
'Quantity':Quantity,
|
||||||
@ -331,7 +343,8 @@ class SalesOrderQuery:
|
|||||||
'BackOrdered':BackOrdered,
|
'BackOrdered':BackOrdered,
|
||||||
'Invoiced':Invoiced,
|
'Invoiced':Invoiced,
|
||||||
'LineIsManuallyClosed':LineIsManuallyClosed,
|
'LineIsManuallyClosed':LineIsManuallyClosed,
|
||||||
'disc':discPerItem, # backorder qty * disc per pcs
|
'discPerItem':discPerItem, # backorder qty * disc per pcs
|
||||||
|
'discPerPcs':discPerPcs,
|
||||||
}
|
}
|
||||||
SalesOrderdict['SalesOrderLineRet'].append(SalesOrderLinedict)
|
SalesOrderdict['SalesOrderLineRet'].append(SalesOrderLinedict)
|
||||||
SalesOrderdict['Disc_Amount']=disc_amount
|
SalesOrderdict['Disc_Amount']=disc_amount
|
||||||
|
|||||||
@ -105,7 +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()))
|
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