[fix] Rejected serial nos in purchase invoice
This commit is contained in:
parent
972224e71a
commit
c46c1f0288
@ -398,6 +398,17 @@ class TestPurchaseInvoice(unittest.TestCase):
|
|||||||
rm_supp_cost = sum([d.amount for d in pi.get("supplied_items")])
|
rm_supp_cost = sum([d.amount for d in pi.get("supplied_items")])
|
||||||
self.assertEquals(pi.get("items")[0].rm_supp_cost, flt(rm_supp_cost, 2))
|
self.assertEquals(pi.get("items")[0].rm_supp_cost, flt(rm_supp_cost, 2))
|
||||||
|
|
||||||
|
def test_rejected_serial_no(self):
|
||||||
|
pi = make_purchase_invoice(item_code="_Test Serialized Item With Series", received_qty=2, qty=1,
|
||||||
|
rejected_qty=1, rate=500, update_stock=1,
|
||||||
|
rejected_warehouse = "_Test Rejected Warehouse - _TC")
|
||||||
|
|
||||||
|
self.assertEquals(frappe.db.get_value("Serial No", pi.get("items")[0].serial_no, "warehouse"),
|
||||||
|
pi.get("items")[0].warehouse)
|
||||||
|
|
||||||
|
self.assertEquals(frappe.db.get_value("Serial No", pi.get("items")[0].rejected_serial_no,
|
||||||
|
"warehouse"), pi.get("items")[0].rejected_warehouse)
|
||||||
|
|
||||||
def make_purchase_invoice(**args):
|
def make_purchase_invoice(**args):
|
||||||
pi = frappe.new_doc("Purchase Invoice")
|
pi = frappe.new_doc("Purchase Invoice")
|
||||||
args = frappe._dict(args)
|
args = frappe._dict(args)
|
||||||
@ -419,19 +430,23 @@ def make_purchase_invoice(**args):
|
|||||||
pi.conversion_rate = args.conversion_rate or 1
|
pi.conversion_rate = args.conversion_rate or 1
|
||||||
pi.is_return = args.is_return
|
pi.is_return = args.is_return
|
||||||
pi.return_against = args.return_against
|
pi.return_against = args.return_against
|
||||||
pi.is_subcontracted = args.is_subcontracted
|
pi.is_subcontracted = args.is_subcontracted or "No"
|
||||||
pi.supplier_warehouse = "_Test Warehouse 1 - _TC"
|
pi.supplier_warehouse = "_Test Warehouse 1 - _TC"
|
||||||
|
|
||||||
pi.append("items", {
|
pi.append("items", {
|
||||||
"item_code": args.item or args.item_code or "_Test Item",
|
"item_code": args.item or args.item_code or "_Test Item",
|
||||||
"warehouse": args.warehouse or "_Test Warehouse - _TC",
|
"warehouse": args.warehouse or "_Test Warehouse - _TC",
|
||||||
"qty": args.qty or 5,
|
"qty": args.qty or 5,
|
||||||
|
"received_qty": args.received_qty or 0,
|
||||||
|
"rejected_qty": args.rejected_qty or 0,
|
||||||
"rate": args.rate or 50,
|
"rate": args.rate or 50,
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
"serial_no": args.serial_no,
|
"serial_no": args.serial_no,
|
||||||
"stock_uom": "_Test UOM",
|
"stock_uom": "_Test UOM",
|
||||||
"cost_center": "_Test Cost Center - _TC",
|
"cost_center": "_Test Cost Center - _TC",
|
||||||
"project": args.project
|
"project": args.project,
|
||||||
|
"rejected_warehouse": args.rejected_warehouse or "",
|
||||||
|
"rejected_serial_no": args.rejected_serial_no or ""
|
||||||
})
|
})
|
||||||
if not args.do_not_save:
|
if not args.do_not_save:
|
||||||
pi.insert()
|
pi.insert()
|
||||||
|
|||||||
@ -973,17 +973,17 @@
|
|||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"fieldname": "rejected_serial_no",
|
"fieldname": "rejected_serial_no",
|
||||||
"fieldtype": "Text",
|
"fieldtype": "Text",
|
||||||
"hidden": 1,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
"ignore_xss_filter": 0,
|
"ignore_xss_filter": 0,
|
||||||
"in_filter": 0,
|
"in_filter": 0,
|
||||||
"in_list_view": 0,
|
"in_list_view": 0,
|
||||||
"label": "Rejected Serial No",
|
"label": "Rejected Serial No",
|
||||||
"length": 0,
|
"length": 0,
|
||||||
"no_copy": 0,
|
"no_copy": 1,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": "",
|
"precision": "",
|
||||||
"print_hide": 0,
|
"print_hide": 1,
|
||||||
"print_hide_if_no_value": 0,
|
"print_hide_if_no_value": 0,
|
||||||
"read_only": 0,
|
"read_only": 0,
|
||||||
"report_hide": 0,
|
"report_hide": 0,
|
||||||
@ -1545,12 +1545,13 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2016-04-07 16:38:30.502386",
|
"modified": "2016-04-18 08:08:53.056818",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "Purchase Invoice Item",
|
"name": "Purchase Invoice Item",
|
||||||
"owner": "Administrator",
|
"owner": "Administrator",
|
||||||
"permissions": [],
|
"permissions": [],
|
||||||
|
"quick_entry": 0,
|
||||||
"read_only": 0,
|
"read_only": 0,
|
||||||
"read_only_onload": 0,
|
"read_only_onload": 0,
|
||||||
"sort_field": "modified",
|
"sort_field": "modified",
|
||||||
|
|||||||
@ -51,7 +51,7 @@ class PurchaseCommon(BuyingController):
|
|||||||
item_code = %s and warehouse = %s""", (d.item_code, d.warehouse), as_dict=1)
|
item_code = %s and warehouse = %s""", (d.item_code, d.warehouse), as_dict=1)
|
||||||
|
|
||||||
f_lst ={'projected_qty': bin and flt(bin[0]['projected_qty']) or 0, 'ordered_qty': 0, 'received_qty' : 0}
|
f_lst ={'projected_qty': bin and flt(bin[0]['projected_qty']) or 0, 'ordered_qty': 0, 'received_qty' : 0}
|
||||||
if d.doctype == 'Purchase Receipt Item':
|
if d.doctype in ('Purchase Receipt Item', 'Purchase Invoice Item'):
|
||||||
f_lst.pop('received_qty')
|
f_lst.pop('received_qty')
|
||||||
for x in f_lst :
|
for x in f_lst :
|
||||||
if d.meta.get_field(x):
|
if d.meta.get_field(x):
|
||||||
|
|||||||
@ -303,7 +303,8 @@ def update_serial_nos_after_submit(controller, parentfield):
|
|||||||
if not stock_ledger_entries: return
|
if not stock_ledger_entries: return
|
||||||
|
|
||||||
for d in controller.get(parentfield):
|
for d in controller.get(parentfield):
|
||||||
update_rejected_serial_nos = True if (controller.doctype=="Purchase Receipt" and d.rejected_qty) else False
|
update_rejected_serial_nos = True if (controller.doctype in ("Purchase Receipt", "Purchase Invoice")
|
||||||
|
and d.rejected_qty) else False
|
||||||
accepted_serial_nos_updated = False
|
accepted_serial_nos_updated = False
|
||||||
warehouse = d.t_warehouse if controller.doctype == "Stock Entry" else d.warehouse
|
warehouse = d.t_warehouse if controller.doctype == "Stock Entry" else d.warehouse
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user