Пример #1
0
    def test_make_purchase_invoice_with_terms(self):
        from erpnext.selling.doctype.sales_order.test_sales_order import (
            automatically_fetch_payment_terms, )

        automatically_fetch_payment_terms()
        po = create_purchase_order(do_not_save=True)

        self.assertRaises(frappe.ValidationError, make_pi_from_po, po.name)

        po.update({"payment_terms_template": "_Test Payment Term Template"})

        po.save()
        po.submit()

        self.assertEqual(po.payment_schedule[0].payment_amount, 2500.0)
        self.assertEqual(getdate(po.payment_schedule[0].due_date),
                         getdate(po.transaction_date))
        self.assertEqual(po.payment_schedule[1].payment_amount, 2500.0)
        self.assertEqual(getdate(po.payment_schedule[1].due_date),
                         add_days(getdate(po.transaction_date), 30))
        pi = make_pi_from_po(po.name)
        pi.save()

        self.assertEqual(pi.doctype, "Purchase Invoice")
        self.assertEqual(len(pi.get("items", [])), 1)

        self.assertEqual(pi.payment_schedule[0].payment_amount, 2500.0)
        self.assertEqual(getdate(pi.payment_schedule[0].due_date),
                         getdate(po.transaction_date))
        self.assertEqual(pi.payment_schedule[1].payment_amount, 2500.0)
        self.assertEqual(getdate(pi.payment_schedule[1].due_date),
                         add_days(getdate(po.transaction_date), 30))
        automatically_fetch_payment_terms(enable=0)
Пример #2
0
    def test_payment_terms_are_fetched_when_creating_sales_invoice(self):
        from erpnext.accounts.doctype.payment_entry.test_payment_entry import (
            create_payment_terms_template, )
        from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice

        automatically_fetch_payment_terms()

        so = make_sales_order(uom="Nos", do_not_save=1)
        create_payment_terms_template()
        so.payment_terms_template = "Test Receivable Template"
        so.submit()

        dn = create_dn_against_so(so.name, delivered_qty=10)

        si = create_sales_invoice(qty=10, do_not_save=1)
        si.items[0].delivery_note = dn.name
        si.items[0].dn_detail = dn.items[0].name
        si.items[0].sales_order = so.name
        si.items[0].so_detail = so.items[0].name

        si.insert()
        si.submit()

        self.assertEqual(so.payment_terms_template, si.payment_terms_template)
        compare_payment_schedules(self, so, si)

        automatically_fetch_payment_terms(enable=0)
Пример #3
0
    def test_payment_terms_are_fetched_when_creating_purchase_invoice(self):
        from erpnext.accounts.doctype.payment_entry.test_payment_entry import (
            create_payment_terms_template, )
        from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice
        from erpnext.selling.doctype.sales_order.test_sales_order import (
            automatically_fetch_payment_terms,
            compare_payment_schedules,
        )

        automatically_fetch_payment_terms()

        po = create_purchase_order(qty=10, rate=100, do_not_save=1)
        create_payment_terms_template()
        po.payment_terms_template = "Test Receivable Template"
        po.submit()

        pi = make_purchase_invoice(qty=10, rate=100, do_not_save=1)
        pi.items[0].purchase_order = po.name
        pi.items[0].po_detail = po.items[0].name
        pi.insert()

        # self.assertEqual(po.payment_terms_template, pi.payment_terms_template)
        compare_payment_schedules(self, po, pi)

        automatically_fetch_payment_terms(enable=0)