def update_serial_nos(self, cancel=False): from stock.doctype.stock_ledger_entry.stock_ledger_entry import update_serial_nos_after_submit, get_serial_nos update_serial_nos_after_submit(self, "Delivery Note", "delivery_note_details") update_serial_nos_after_submit(self, "Delivery Note", "packing_details") for table_fieldname in ("delivery_note_details", "packing_details"): for d in self.doclist.get({"parentfield": table_fieldname}): for serial_no in get_serial_nos(d.serial_no): sr = webnotes.bean("Serial No", serial_no) if cancel: sr.doc.status = "Available" for fieldname in ("warranty_expiry_date", "delivery_document_type", "delivery_document_no", "delivery_date", "delivery_time", "customer", "customer_name"): sr.doc.fields[fieldname] = None else: sr.doc.delivery_document_type = "Delivery Note" sr.doc.delivery_document_no = self.doc.name sr.doc.delivery_date = self.doc.posting_date sr.doc.delivery_time = self.doc.posting_time sr.doc.customer = self.doc.customer sr.doc.customer_name = self.doc.customer_name if sr.doc.warranty_period: sr.doc.warranty_expiry_date = add_days(cstr(self.doc.posting_date), cint(sr.doc.warranty_period)) sr.doc.status = 'Delivered' sr.save()
def test_serialized(self): from stock.doctype.stock_entry.test_stock_entry import make_serialized_item from stock.doctype.stock_ledger_entry.stock_ledger_entry import get_serial_nos se = make_serialized_item() serial_nos = get_serial_nos(se.doclist[1].serial_no) si = webnotes.bean(copy=test_records[0]) si.doc.update_stock = 1 si.doclist[1].item_code = "_Test Serialized Item With Series" si.doclist[1].qty = 1 si.doclist[1].serial_no = serial_nos[0] si.insert() si.submit() self.assertEquals( webnotes.conn.get_value("Serial No", serial_nos[0], "status"), "Delivered") self.assertFalse( webnotes.conn.get_value("Serial No", serial_nos[0], "warehouse")) self.assertEquals( webnotes.conn.get_value("Serial No", serial_nos[0], "delivery_document_no"), si.doc.name) return si
def update_serial_nos(self, cancel=False): from stock.doctype.stock_ledger_entry.stock_ledger_entry import update_serial_nos_after_submit, get_serial_nos update_serial_nos_after_submit(self, self.doc.doctype, self.fname) update_serial_nos_after_submit(self, self.doc.doctype, "packing_details") for table_fieldname in (self.fname, "packing_details"): for d in self.doclist.get({"parentfield": table_fieldname}): for serial_no in get_serial_nos(d.serial_no): sr = webnotes.bean("Serial No", serial_no) if cancel: sr.doc.status = "Available" for fieldname in ("warranty_expiry_date", "delivery_document_type", "delivery_document_no", "delivery_date", "delivery_time", "customer", "customer_name"): sr.doc.fields[fieldname] = None else: sr.doc.delivery_document_type = self.doc.doctype sr.doc.delivery_document_no = self.doc.name sr.doc.delivery_date = self.doc.posting_date sr.doc.delivery_time = self.doc.posting_time sr.doc.customer = self.doc.customer sr.doc.customer_name = self.doc.customer_name if sr.doc.warranty_period: sr.doc.warranty_expiry_date = add_days(cstr(self.doc.posting_date), cint(sr.doc.warranty_period)) sr.doc.status = 'Delivered' sr.save()
def test_serialized_cancel(self): from stock.doctype.stock_ledger_entry.stock_ledger_entry import get_serial_nos dn = self.test_serialized() dn.cancel() serial_nos = get_serial_nos(dn.doclist[1].serial_no) self.assertEquals(webnotes.conn.get_value("Serial No", serial_nos[0], "status"), "Available") self.assertEquals(webnotes.conn.get_value("Serial No", serial_nos[0], "warehouse"), "_Test Warehouse - _TC") self.assertFalse(webnotes.conn.get_value("Serial No", serial_nos[0], "delivery_document_no"))
def update_serial_nos(self, cancel=False): from stock.doctype.stock_ledger_entry.stock_ledger_entry import update_serial_nos_after_submit, get_serial_nos update_serial_nos_after_submit(self, "Purchase Receipt", "purchase_receipt_details") for d in self.doclist.get({"parentfield": "purchase_receipt_details"}): for serial_no in get_serial_nos(d.serial_no): sr = webnotes.bean("Serial No", serial_no) if cancel: sr.doc.supplier = None sr.doc.supplier_name = None else: sr.doc.supplier = self.doc.supplier sr.doc.supplier_name = self.doc.supplier_name sr.save()
def test_serialized_cancel(self): from stock.doctype.stock_ledger_entry.stock_ledger_entry import get_serial_nos si = self.test_serialized() si.cancel() serial_nos = get_serial_nos(si.doclist[1].serial_no) self.assertEquals( webnotes.conn.get_value("Serial No", serial_nos[0], "status"), "Available") self.assertEquals( webnotes.conn.get_value("Serial No", serial_nos[0], "warehouse"), "_Test Warehouse - _TC") self.assertFalse( webnotes.conn.get_value("Serial No", serial_nos[0], "delivery_document_no"))
def update_serial_no(self, is_submit): """Create / Update Serial No""" from stock.doctype.stock_ledger_entry.stock_ledger_entry import update_serial_nos_after_submit, get_serial_nos update_serial_nos_after_submit(self, "Stock Entry", "mtn_details") for d in getlist(self.doclist, 'mtn_details'): for serial_no in get_serial_nos(d.serial_no): if self.doc.purpose == 'Purchase Return': sr = webnotes.bean("Serial No", serial_no) sr.doc.status = "Purchase Returned" if is_submit else "Available" sr.save() if self.doc.purpose == "Sales Return": sr = webnotes.bean("Serial No", serial_no) sr.doc.status = "Sales Returned" if is_submit else "Delivered" sr.save()
def test_serialize_status(self): from stock.doctype.stock_ledger_entry.stock_ledger_entry import SerialNoStatusError, get_serial_nos from stock.doctype.stock_entry.test_stock_entry import make_serialized_item se = make_serialized_item() serial_nos = get_serial_nos(se.doclist[1].serial_no) sr = webnotes.bean("Serial No", serial_nos[0]) sr.doc.status = "Not Available" sr.save() dn = webnotes.bean(copy=test_records[0]) dn.doclist[1].item_code = "_Test Serialized Item With Series" dn.doclist[1].qty = 1 dn.doclist[1].serial_no = serial_nos[0] dn.insert() self.assertRaises(SerialNoStatusError, dn.submit)
def test_serialized(self): from stock.doctype.stock_entry.test_stock_entry import make_serialized_item from stock.doctype.stock_ledger_entry.stock_ledger_entry import get_serial_nos se = make_serialized_item() serial_nos = get_serial_nos(se.doclist[1].serial_no) dn = webnotes.bean(copy=test_records[0]) dn.doclist[1].item_code = "_Test Serialized Item With Series" dn.doclist[1].qty = 1 dn.doclist[1].serial_no = serial_nos[0] dn.insert() dn.submit() self.assertEquals(webnotes.conn.get_value("Serial No", serial_nos[0], "status"), "Delivered") self.assertFalse(webnotes.conn.get_value("Serial No", serial_nos[0], "warehouse")) self.assertEquals(webnotes.conn.get_value("Serial No", serial_nos[0], "delivery_document_no"), dn.doc.name) return dn