fixes in tax controller and test purchase receipt
diff --git a/controllers/__init__.py b/controllers/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/controllers/__init__.py
diff --git a/controllers/tax_controller.py b/controllers/tax_controller.py
index 6df17f5..d19a729 100644
--- a/controllers/tax_controller.py
+++ b/controllers/tax_controller.py
@@ -72,6 +72,7 @@
self.calculate_taxes()
self.calculate_totals()
self.set_amount_in_words()
+ self.cleanup()
def calculate_item_values(self):
def _set_base(item, print_field, base_field):
@@ -104,12 +105,12 @@
item.fields[self.fmap.print_amount] = \
flt(item.fields.get(self.fmap.print_rate) * \
- item.fields.get(self.fmap.qty),
+ item.fields.get("qty"),
self.precision.item[self.fmap.print_amount])
_set_base(item, self.fmap.print_ref_rate, self.fmap.ref_rate)
_set_base(item, self.fmap.print_rate, self.fmap.rate)
- _set_base(item, self.fmap.print_amount, self.fmap.amount)
+ _set_base(item, self.fmap.print_amount, "amount")
def initialize_taxes(self):
for tax in self.tax_doclist:
@@ -431,3 +432,14 @@
return flt(item_tax_map.get(tax.account_head), self.precision.tax.rate)
else:
return tax.rate
+
+ def cleanup(self):
+ for f in ["taxes_and_charges_total_print", "rounded_total_in_words_print",
+ "rounded_total_print", "rounded_total_in_words"]:
+ del self.doc.fields[self.fmap.get(f) or f]
+
+ for f in ["grand_total_print_for_current_item", "tax_amount_print",
+ "grand_total_for_current_item", "tax_amount_for_current_item",
+ "total_print"]:
+ for doc in self.doclist.get({"parentfield": self.fmap.taxes_and_charges}):
+ del doc.fields[self.fmap.get(f) or f]
diff --git a/controllers/transaction_controller.py b/controllers/transaction_controller.py
index 5d77472..a7dbde1 100644
--- a/controllers/transaction_controller.py
+++ b/controllers/transaction_controller.py
@@ -21,8 +21,6 @@
from webnotes.utils import cint
import json
-import stock.utils
-
from webnotes.model.controller import DocListController
class TransactionController(DocListController):
diff --git a/stock/doctype/purchase_receipt/test_purchase_receipt.py b/stock/doctype/purchase_receipt/test_purchase_receipt.py
index 98418d0..dfd2188 100644
--- a/stock/doctype/purchase_receipt/test_purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -97,24 +97,24 @@
"doctype": "Purchase Receipt Item",
"item_code": "Home Desktop 100",
"qty": 10, "received_qty": 10, "rejected_qty": 0, "purchase_rate": 50,
- "amount": 500, "warehouse": "Default Warehouse", "valuation_tax_amount": 250,
+ "amount": 500, "warehouse": "Default Warehouse",
"parentfield": "purchase_receipt_details",
"conversion_factor": 1, "uom": "Nos", "stock_uom": "Nos"
},
{
"doctype": "Purchase Taxes and Charges", "charge_type": "Actual",
- "account_head": "Shipping Charges - %s" % abbr, "purchase_rate": 100, "tax_amount": 100,
+ "account_head": "Shipping Charges - %s" % abbr, "rate": 100, "tax_amount": 100,
"category": "Valuation and Total", "parentfield": "purchase_tax_details",
"cost_center": "Default Cost Center - %s" % abbr
},
{
"doctype": "Purchase Taxes and Charges", "charge_type": "Actual",
- "account_head": "VAT - Test - %s" % abbr, "purchase_rate": 120, "tax_amount": 120,
+ "account_head": "VAT - Test - %s" % abbr, "rate": 120, "tax_amount": 120,
"category": "Total", "parentfield": "purchase_tax_details"
},
{
"doctype": "Purchase Taxes and Charges", "charge_type": "Actual",
- "account_head": "Customs Duty - %s" % abbr, "purchase_rate": 150, "tax_amount": 150,
+ "account_head": "Customs Duty - %s" % abbr, "rate": 150, "tax_amount": 150,
"category": "Valuation", "parentfield": "purchase_tax_details",
"cost_center": "Default Cost Center - %s" % abbr
}
@@ -158,7 +158,6 @@
load_data()
webnotes.conn.set_value("Global Defaults", None, "automatic_inventory_accounting", 1)
-
def test_purchase_receipt(self):
# warehouse does not have stock in hand specified
self.run_purchase_receipt_test(base_purchase_receipt,
@@ -169,9 +168,17 @@
credit_account, stock_value):
from webnotes.model.doclist import DocList
dl = webnotes.insert(DocList(purchase_receipt))
+
+ from controllers.tax_controller import TaxController
+ tax_controller = TaxController(dl.doc, dl.doclist)
+ tax_controller.item_table_field = "purchase_receipt_details"
+ tax_controller.calculate_taxes_and_totals()
+ dl.doc = tax_controller.doc
+ dl.doclist = tax_controller.doclist
+
dl.submit()
dl.load_from_db()
-
+
gle = webnotes.conn.sql("""select account, ifnull(debit, 0), ifnull(credit, 0)
from `tabGL Entry` where voucher_no = %s""", dl.doclist[0].name)