def test_total_purchase_cost_for_project(self): make_project({'project_name': '_Test Project'}) existing_purchase_cost = frappe.db.sql("""select sum(base_net_amount) from `tabPurchase Invoice Item` where project = '_Test Project' and docstatus=1""" ) existing_purchase_cost = existing_purchase_cost and existing_purchase_cost[ 0][0] or 0 pi = make_purchase_invoice(currency="USD", conversion_rate=60, project="_Test Project") self.assertEqual( frappe.db.get_value("Project", "_Test Project", "total_purchase_cost"), existing_purchase_cost + 15000) pi1 = make_purchase_invoice(qty=10, project="_Test Project") self.assertEqual( frappe.db.get_value("Project", "_Test Project", "total_purchase_cost"), existing_purchase_cost + 15500) pi1.cancel() self.assertEqual( frappe.db.get_value("Project", "_Test Project", "total_purchase_cost"), existing_purchase_cost + 15000) pi.cancel() self.assertEqual( frappe.db.get_value("Project", "_Test Project", "total_purchase_cost"), existing_purchase_cost)
def test_total_purchase_cost_for_project(self): if not frappe.db.exists("Project", {"project_name": "_Test Project for Purchase"}): project = make_project({'project_name':'_Test Project for Purchase'}) else: project = frappe.get_doc("Project", {"project_name": "_Test Project for Purchase"}) existing_purchase_cost = frappe.db.sql("""select sum(base_net_amount) from `tabPurchase Invoice Item` where project = '{0}' and docstatus=1""".format(project.name)) existing_purchase_cost = existing_purchase_cost and existing_purchase_cost[0][0] or 0 pi = make_purchase_invoice(currency="USD", conversion_rate=60, project=project.name) self.assertEqual(frappe.db.get_value("Project", project.name, "total_purchase_cost"), existing_purchase_cost + 15000) pi1 = make_purchase_invoice(qty=10, project=project.name) self.assertEqual(frappe.db.get_value("Project", project.name, "total_purchase_cost"), existing_purchase_cost + 15500) pi1.cancel() self.assertEqual(frappe.db.get_value("Project", project.name, "total_purchase_cost"), existing_purchase_cost + 15000) pi.cancel() self.assertEqual(frappe.db.get_value("Project", project.name, "total_purchase_cost"), existing_purchase_cost)
def test_jv_with_project(self): from erpnext.projects.doctype.project.test_project import make_project project = make_project({ 'project_name': 'Journal Entry Project', 'project_template_name': 'Test Project Template', 'start_date': '2020-01-01' }) jv = make_journal_entry("_Test Cash - _TC", "_Test Bank - _TC", 100, save=False) for d in jv.accounts: d.project = project.project_name jv.voucher_type = "Bank Entry" jv.multi_currency = 0 jv.cheque_no = "112233" jv.cheque_date = nowdate() jv.insert() jv.submit() expected_values = { "_Test Cash - _TC": { "project": project.project_name }, "_Test Bank - _TC": { "project": project.project_name } } gl_entries = frappe.db.sql("""select account, project, debit, credit from `tabGL Entry` where voucher_type='Journal Entry' and voucher_no=%s order by account asc""", jv.name, as_dict=1) self.assertTrue(gl_entries) for gle in gl_entries: self.assertEqual(expected_values[gle.account]["project"], gle.project)
def test_purchase_invoice_with_project_link(self): project = make_project({ 'project_name': 'Purchase Invoice Project', 'project_template_name': 'Test Project Template', 'start_date': '2020-01-01' }) item_project = make_project({ 'project_name': 'Purchase Invoice Item Project', 'project_template_name': 'Test Project Template', 'start_date': '2019-06-01' }) pi = make_purchase_invoice(credit_to="Creditors - _TC", do_not_save=1) pi.items[0].project = item_project.project_name pi.project = project.project_name pi.submit() expected_values = { "Creditors - _TC": { "project": project.project_name }, "_Test Account Cost for Goods Sold - _TC": { "project": item_project.project_name } } gl_entries = frappe.db.sql( """select account, cost_center, project, account_currency, debit, credit, debit_in_account_currency, credit_in_account_currency from `tabGL Entry` where voucher_type='Purchase Invoice' and voucher_no=%s order by account asc""", pi.name, as_dict=1) self.assertTrue(gl_entries) for gle in gl_entries: self.assertEqual(expected_values[gle.account]["project"], gle.project)
def setUpClass(cls): # Create test employee cls.test_emp1 = make_employee("*****@*****.**", "_Test Company") cls.test_emp2 = make_employee("*****@*****.**", "_Test Company") # Create test project cls.test_project = make_project({"project_name": "_Test Project"}) # Create test timesheets cls.create_test_timesheets() frappe.db.set_value("HR Settings", "HR Settings", "standard_working_hours", 9)