Пример #1
0
    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)
Пример #2
0
	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)
Пример #3
0
	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)
Пример #4
0
    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)
Пример #5
0
    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)