From 436467a5c96f343360c818901e3b9c7054722527 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 8 Jul 2013 12:37:59 +0530 Subject: [PATCH] [purchase order] tests pass --- accounts/doctype/purchase_invoice/purchase_invoice.py | 2 +- buying/doctype/purchase_order/purchase_order.py | 1 - buying/doctype/purchase_order/test_purchase_order.py | 7 ++++++- controllers/buying_controller.py | 6 ++++-- stock/doctype/purchase_receipt/purchase_receipt.py | 6 ++++++ 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py index 3060a1ee1a5..8d646ba41de 100644 --- a/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -244,7 +244,7 @@ class DocType(BuyingController): raise Exception , " Validation Error " def validate_reference_value(self): - # pass + pass # Validate PO and PR # ------------------- diff --git a/buying/doctype/purchase_order/purchase_order.py b/buying/doctype/purchase_order/purchase_order.py index 0b3f317cc57..4972f667058 100644 --- a/buying/doctype/purchase_order/purchase_order.py +++ b/buying/doctype/purchase_order/purchase_order.py @@ -234,7 +234,6 @@ def make_purchase_receipt(source_name, target_doclist=None): def make_purchase_invoice(source_name, target_doclist=None): from webnotes.model.mapper import get_mapped_doclist - def set_missing_values(source, target): bean = webnotes.bean(target) bean.run_method("set_missing_values") diff --git a/buying/doctype/purchase_order/test_purchase_order.py b/buying/doctype/purchase_order/test_purchase_order.py index 85420d84930..e70de97df67 100644 --- a/buying/doctype/purchase_order/test_purchase_order.py +++ b/buying/doctype/purchase_order/test_purchase_order.py @@ -32,10 +32,13 @@ class TestPurchaseOrder(unittest.TestCase): po = webnotes.bean("Purchase Order", po.doc.name) po.submit() pr = make_purchase_receipt(po.doc.name) + pr[0]["supplier_warehouse"] = "_Test Warehouse 1" self.assertEquals(pr[0]["doctype"], "Purchase Receipt") self.assertEquals(len(pr), len(test_records[0])) + webnotes.bean(pr).insert() + def test_make_purchase_invocie(self): from buying.doctype.purchase_order.purchase_order import make_purchase_invoice @@ -50,10 +53,12 @@ class TestPurchaseOrder(unittest.TestCase): self.assertEquals(pi[0]["doctype"], "Purchase Invoice") self.assertEquals(len(pi), len(test_records[0])) + + webnotes.bean(pi).insert() def test_subcontracting(self): po = webnotes.bean(copy=test_records[0]) - po.insert() + po.insert() self.assertEquals(len(po.doclist.get({"parentfield": "po_raw_material_details"})), 2) def test_warehouse_company_validation(self): diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py index 03f7726aa29..a44ceba9c32 100644 --- a/controllers/buying_controller.py +++ b/controllers/buying_controller.py @@ -52,9 +52,11 @@ class BuyingController(StockController): self.doc.fields[fieldname] = val self.set_missing_item_details(get_item_details) - + def set_supplier_defaults(self): - self.doc.fields.update(self.get_default_supplier_address(self.doc.fields)) + for fieldname, val in self.get_default_address_and_contact("supplier").items(): + if self.meta.get_field(fieldname): + self.doc.fields[fieldname] = val def get_purchase_tax_details(self): self.doclist = self.doc.clear_table(self.doclist, "purchase_tax_details") diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py index 3db31eb7cbc..878dfe80288 100644 --- a/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/stock/doctype/purchase_receipt/purchase_receipt.py @@ -68,6 +68,12 @@ class DocType(BuyingController): msgprint("Rejected Warehouse is necessary if there are rejections.") raise Exception + if not flt(d.qty) and flt(d.rejected_qty): + d.qty = flt(d.received_qty) - flt(d.rejected_qty) + + elif not flt(d.rejected_qty): + d.rejected_qty = flt(d.received_qty) - flt(d.qty) + # Check Received Qty = Accepted Qty + Rejected Qty if ((flt(d.qty) + flt(d.rejected_qty)) != flt(d.received_qty)):