diff --git a/erpnext/stock/doctype/material_request/test_material_request.py b/erpnext/stock/doctype/material_request/test_material_request.py index b055c0592d44..0129eb1150a5 100644 --- a/erpnext/stock/doctype/material_request/test_material_request.py +++ b/erpnext/stock/doctype/material_request/test_material_request.py @@ -3536,6 +3536,56 @@ def test_create_material_req_to_2po_to_2pi_return_TC_SCK_102(self): gl_stock_debit = frappe.db.get_value('GL Entry',{'voucher_no':pr1.name, 'account': 'Creditors - _TC'},'credit') self.assertEqual(gl_stock_debit, 500) + def test_create_material_req_to_2po_to_1pi_return_TC_SCK_103(self): + mr = make_material_request() + + #partially qty + po = make_purchase_order(mr.name) + po.supplier = "_Test Supplier" + po.get("items")[0].rate = 100 + po.get("items")[0].qty = 5 + po.insert() + po.submit() + + #remaining qty + po1 = make_purchase_order(mr.name) + po1.supplier = "_Test Supplier" + po1.get("items")[0].rate = 100 + po1.get("items")[0].qty = 5 + po1.insert() + po1.submit() + + pr = create_purchase_invoice(po.name) + pr = create_purchase_invoice(po1.name, target_doc=pr) + pr.submit() + + #if account setup in company + if frappe.db.exists('GL Entry',{'account': 'Stock Received But Not Billed - _TC'}): + recive_account = frappe.db.get_value("Company",mr.company,"stock_received_but_not_billed") + gl_temp_credit = frappe.db.get_value('GL Entry',{'voucher_no':pr.name, 'account': recive_account},'debit') + self.assertEqual(gl_temp_credit, 1000) + + #if account setup in company + if frappe.db.exists('GL Entry',{'account': 'Creditors - _TC'}): + payable_act = frappe.db.get_value("Company",mr.company,"default_payable_account") + gl_stock_debit = frappe.db.get_value('GL Entry',{'voucher_no':pr.name, 'account': payable_act},'credit') + self.assertEqual(gl_stock_debit, 1000) + + from erpnext.controllers.sales_and_purchase_return import make_return_doc + return_pi = make_return_doc("Purchase Invoice", pr.name) + return_pi.submit() + pr.reload() + + #if account setup in company + if frappe.db.exists('GL Entry',{'account': 'Stock Received But Not Billed - _TC'}): + gl_temp_credit = frappe.db.get_value('GL Entry',{'voucher_no':pr.name, 'account': 'Stock Received But Not Billed - _TC'},'debit') + self.assertEqual(gl_temp_credit, 1000) + + #if account setup in company + if frappe.db.exists('GL Entry',{'account': 'Stock In Hand - _TC'}): + gl_stock_debit = frappe.db.get_value('GL Entry',{'voucher_no':pr.name, 'account': 'Stock In Hand - _TC'},'credit') + self.assertEqual(gl_stock_debit, 1000) + def get_in_transit_warehouse(company): if not frappe.db.exists("Warehouse Type", "Transit"): frappe.get_doc(