Merge branch 'responsive' of github.com:webnotes/erpnext into responsive
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py
index 3060a1e..8d646ba 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -244,7 +244,7 @@
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 169dcaa..4972f66 100644
--- a/buying/doctype/purchase_order/purchase_order.py
+++ b/buying/doctype/purchase_order/purchase_order.py
@@ -44,23 +44,13 @@
utilities.validate_status(self.doc.status, ["Draft", "Submitted", "Stopped",
"Cancelled"])
- # Step 2:=> get Purchase Common Obj
pc_obj = get_obj(dt='Purchase Common')
-
-
- # Step 4:=> validate for items
pc_obj.validate_for_items(self)
-
- # Get po date
pc_obj.get_prevdoc_date(self)
-
- # validate_doc
+
self.validate_doc(pc_obj)
-
- # Check for stopped status
self.check_for_stopped_status(pc_obj)
-
- # sub-contracting
+
self.validate_for_subcontracting()
self.update_raw_materials_supplied("po_raw_material_details")
@@ -244,7 +234,6 @@
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 85420d8..e70de97 100644
--- a/buying/doctype/purchase_order/test_purchase_order.py
+++ b/buying/doctype/purchase_order/test_purchase_order.py
@@ -32,10 +32,13 @@
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 @@
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/buying/doctype/supplier_quotation/test_supplier_quotation.py b/buying/doctype/supplier_quotation/test_supplier_quotation.py
index 0210b7f..7e772cc 100644
--- a/buying/doctype/supplier_quotation/test_supplier_quotation.py
+++ b/buying/doctype/supplier_quotation/test_supplier_quotation.py
@@ -36,6 +36,8 @@
self.assertEquals(po[0]["doctype"], "Purchase Order")
self.assertEquals(len(po), len(sq.doclist))
+ webnotes.bean(po).insert()
+
test_records = [
[
{
@@ -45,7 +47,7 @@
"doctype": "Supplier Quotation",
"fiscal_year": "_Test Fiscal Year 2013",
"transaction_date": "2013-02-12",
- "is_subcontracted": "Yes",
+ "is_subcontracted": "No",
"supplier": "_Test Supplier",
"supplier_name": "_Test Supplier",
"net_total": 5000.0,
diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py
index e58eb03..a44ceba 100644
--- a/controllers/buying_controller.py
+++ b/controllers/buying_controller.py
@@ -34,6 +34,9 @@
def validate(self):
super(BuyingController, self).validate()
+ if self.doc.supplier and not self.doc.supplier_name:
+ self.doc.supplier_name = webnotes.conn.get_value("Supplier",
+ self.doc.supplier, "supplier_name")
self.validate_stock_or_nonstock_items()
self.validate_warehouse_belongs_to_company()
@@ -47,11 +50,13 @@
for fieldname, val in self.get_default_address_and_contact("supplier").items():
if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
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/material_request/test_material_request.py b/stock/doctype/material_request/test_material_request.py
index fabcb40..0efc3b0 100644
--- a/stock/doctype/material_request/test_material_request.py
+++ b/stock/doctype/material_request/test_material_request.py
@@ -6,6 +6,9 @@
from webnotes.utils import flt
class TestMaterialRequest(unittest.TestCase):
+ def setUp(self):
+ webnotes.defaults.set_global_default("auto_inventory_accounting", 0)
+
def test_make_purchase_order(self):
from stock.doctype.material_request.material_request import make_purchase_order
@@ -118,6 +121,7 @@
# map a purchase order
from stock.doctype.material_request.material_request import make_purchase_order
po_doclist = make_purchase_order(mr.doc.name)
+ po_doclist[0].supplier = "_Test Supplier"
po_doclist[1].qty = 27.0
po_doclist[2].qty = 1.5
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 3db31eb..878dfe8 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -68,6 +68,12 @@
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)):