From 1119fb4c00b6e9fcc7962fd7b4a91c4e54341222 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 6 Mar 2015 20:50:30 +0530 Subject: [PATCH] Fixed Sales Invoice test cases --- .../doctype/sales_invoice/sales_invoice.js | 4 +- .../sales_invoice/test_sales_invoice.py | 134 +++++++++++------- 2 files changed, 88 insertions(+), 50 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index a289d0e876a..607995b1dab 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -96,7 +96,7 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte company: cur_frm.doc.company } }) - }, "icon-download", "btn-default"); + }); }, delivery_note_btn: function() { @@ -116,7 +116,7 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte }; } }); - }, "icon-download", "btn-default"); + }); }, tc_name: function() { diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py index 1ceedad3020..1188e7201ff 100644 --- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py @@ -85,6 +85,10 @@ class TestSalesInvoice(unittest.TestCase): si.get("items")[0].price_list_rate = 1 si.get("items")[1].rate = 3 si.get("items")[1].price_list_rate = 3 + + # change shipping to $2 + si.get("taxes")[0].tax_amount = 2 + si.insert() expected_values = { @@ -109,23 +113,23 @@ class TestSalesInvoice(unittest.TestCase): # check tax calculation expected_values = { - "keys": ["tax_amount", "total"], - "_Test Account Shipping Charges - _TC": [100, 1350], - "_Test Account Customs Duty - _TC": [125, 1475], - "_Test Account Excise Duty - _TC": [140, 1615], - "_Test Account Education Cess - _TC": [2.8, 1617.8], - "_Test Account S&H Education Cess - _TC": [1.4, 1619.2], - "_Test Account CST - _TC": [32.38, 1651.58], - "_Test Account VAT - _TC": [156.25, 1807.83], - "_Test Account Discount - _TC": [-180.78, 1627.05] + "keys": ["base_tax_amount", "base_total", "tax_amount", "total"], + "_Test Account Shipping Charges - _TC": [100, 1350, 2, 27], + "_Test Account Customs Duty - _TC": [125, 1475, 2.5, 29.5], + "_Test Account Excise Duty - _TC": [140, 1615, 2.8, 32.3], + "_Test Account Education Cess - _TC": [3, 1618, 0.06, 32.36], + "_Test Account S&H Education Cess - _TC": [1.5, 1619.5, 0.03, 32.39], + "_Test Account CST - _TC": [32.5, 1652, 0.65, 33.04], + "_Test Account VAT - _TC": [156.5, 1808.5, 3.13, 36.17], + "_Test Account Discount - _TC": [-180.5, 1628, -3.61, 32.56] } for d in si.get("taxes"): for i, k in enumerate(expected_values["keys"]): self.assertEquals(d.get(k), expected_values[d.account_head][i]) - self.assertEquals(si.base_grand_total, 1627.05) - self.assertEquals(si.grand_total, 32.54) + self.assertEquals(si.base_grand_total, 1628) + self.assertEquals(si.grand_total, 32.56) def test_sales_invoice_discount_amount(self): si = frappe.copy_doc(test_records[3]) @@ -141,25 +145,40 @@ class TestSalesInvoice(unittest.TestCase): }) si.insert() - expected_values = { - "keys": ["price_list_rate", "discount_percentage", "rate", "amount", - "base_price_list_rate", "base_rate", "base_amount"], - "_Test Item Home Desktop 100": [62.5, 0, 62.5, 625.0, 50, 50, 465.37], - "_Test Item Home Desktop 200": [190.66, 0, 190.66, 953.3, 150, 150, 698.08], - } + expected_values = [ + { + "item_code": "_Test Item Home Desktop 100", + "price_list_rate": 62.5, + "discount_percentage": 0, + "rate": 62.5, "amount": 625, + "base_price_list_rate": 62.5, + "base_rate": 62.5, "base_amount": 625, + "net_rate": 46.54, "net_amount": 465.37, + "base_net_rate": 46.54, "base_net_amount": 465.37 + }, + { + "item_code": "_Test Item Home Desktop 200", + "price_list_rate": 190.66, + "discount_percentage": 0, + "rate": 190.66, "amount": 953.3, + "base_price_list_rate": 190.66, + "base_rate": 190.66, "base_amount": 953.3, + "net_rate": 139.62, "net_amount": 698.08, + "base_net_rate": 139.62, "base_net_amount": 698.08 + } + ] # check if children are saved - self.assertEquals(len(si.get("items")), - len(expected_values)-1) + self.assertEquals(len(si.get("items")), len(expected_values)) # check if item values are calculated - for d in si.get("items"): - for i, k in enumerate(expected_values["keys"]): - self.assertEquals(d.get(k), expected_values[d.item_code][i]) + for i, d in enumerate(si.get("items")): + for k, v in expected_values[i].items(): + self.assertEquals(d.get(k), v) # check net total self.assertEquals(si.base_net_total, 1163.45) - self.assertEquals(si.net_total, 1578.3) + self.assertEquals(si.total, 1578.3) # check tax calculation expected_values = { @@ -270,7 +289,7 @@ class TestSalesInvoice(unittest.TestCase): # check net total self.assertEquals(si.base_net_total, 1249.98) - self.assertEquals(si.net_total, 1578.3) + self.assertEquals(si.total, 1578.3) # check tax calculation expected_values = { @@ -301,48 +320,67 @@ class TestSalesInvoice(unittest.TestCase): si.get("items")[0].discount_percentage = 10 si.get("items")[1].price_list_rate = 187.5 si.get("items")[1].discount_percentage = 20 - si.get("taxes")[6].rate = 5000 + + # change shipping to $2 + si.get("taxes")[6].tax_amount = 2 si.insert() - expected_values = { - "keys": ["price_list_rate", "discount_percentage", "rate", "amount", - "base_price_list_rate", "base_rate", "base_amount"], - "_Test Item Home Desktop 100": [55.56, 10, 50, 500, 2222.11, 1999.9, 19999.04], - "_Test Item Home Desktop 200": [187.5, 20, 150, 750, 7375.66, 5900.53, 29502.66], - } + expected_values = [ + { + "item_code": "_Test Item Home Desktop 100", + "price_list_rate": 55.56, + "discount_percentage": 10, + "rate": 50, "amount": 500, + "base_price_list_rate": 2778, + "base_rate": 2500, "base_amount": 25000, + "net_rate": 40, "net_amount": 399.98, + "base_net_rate": 2000, "base_net_amount": 19999 + }, + { + "item_code": "_Test Item Home Desktop 200", + "price_list_rate": 187.5, + "discount_percentage": 20, + "rate": 150, "amount": 750, + "base_price_list_rate": 9375, + "base_rate": 7500, "base_amount": 37500, + "net_rate": 118.01, "net_amount": 590.05, + "base_net_rate": 5900.5, "base_net_amount": 29502.5 + } + ] # check if children are saved - self.assertEquals(len(si.get("items")), len(expected_values)-1) + self.assertEquals(len(si.get("items")), len(expected_values)) # check if item values are calculated - for d in si.get("items"): - for i, k in enumerate(expected_values["keys"]): - self.assertEquals(d.get(k), expected_values[d.item_code][i]) + for i, d in enumerate(si.get("items")): + for key, val in expected_values[i].items(): + self.assertEquals(d.get(key), val) # check net total - self.assertEquals(si.base_net_total, 49501.7) - self.assertEquals(si.net_total, 1250) + self.assertEquals(si.base_net_total, 49501.5) + self.assertEquals(si.net_total, 990.03) + self.assertEquals(si.total, 1250) # check tax calculation expected_values = { - "keys": ["tax_amount", "total"], - "_Test Account Excise Duty - _TC": [5540.22, 55041.92], - "_Test Account Education Cess - _TC": [110.81, 55152.73], - "_Test Account S&H Education Cess - _TC": [55.4, 55208.13], - "_Test Account CST - _TC": [1104.16, 56312.29], - "_Test Account VAT - _TC": [6187.71, 62500], - "_Test Account Customs Duty - _TC": [4950.17, 67450.17], - "_Test Account Shipping Charges - _TC": [5000, 72450.17], - "_Test Account Discount - _TC": [-7245.01, 65205.16] + "keys": ["base_tax_amount", "base_total", "tax_amount", "total"], + "_Test Account Excise Duty - _TC": [5540.5, 55042, 110.81, 1100.84], + "_Test Account Education Cess - _TC": [111, 55153, 2.22, 1103.06], + "_Test Account S&H Education Cess - _TC": [55.5, 55208.5, 1.11, 1104.17], + "_Test Account CST - _TC": [1104, 56312.5, 22.08, 1126.25], + "_Test Account VAT - _TC": [6188, 62500.5, 123.76, 1250.01], + "_Test Account Customs Duty - _TC": [4950.5, 67451, 99.01, 1349.02], + "_Test Account Shipping Charges - _TC": [ 100, 67551, 2, 1351.02], + "_Test Account Discount - _TC": [ -6755, 60796, -135.10, 1215.92] } for d in si.get("taxes"): for i, k in enumerate(expected_values["keys"]): self.assertEquals(d.get(k), expected_values[d.account_head][i]) - self.assertEquals(si.base_grand_total, 65205.16) - self.assertEquals(si.grand_total, 1304.1) + self.assertEquals(si.base_grand_total, 60796) + self.assertEquals(si.grand_total, 1215.92) def test_outstanding(self): w = self.make()