def run_stock(current_date): # make purchase requests if can_make("Purchase Receipt"): from buying.doctype.purchase_order.purchase_order import make_purchase_receipt from stock.stock_ledger import NegativeStockError report = "Purchase Order Items To Be Received" for po in list( set([ r[0] for r in query_report.run(report)["result"] if r[0] != "Total" ]))[:how_many("Purchase Receipt")]: pr = webnotes.bean(make_purchase_receipt(po)) pr.doc.posting_date = current_date pr.doc.fiscal_year = current_date.year pr.insert() try: pr.submit() webnotes.conn.commit() except NegativeStockError: pass # make delivery notes (if possible) if can_make("Delivery Note"): from selling.doctype.sales_order.sales_order import make_delivery_note from stock.stock_ledger import NegativeStockError from stock.doctype.serial_no.serial_no import SerialNoRequiredError, SerialNoQtyError report = "Ordered Items To Be Delivered" for so in list( set([ r[0] for r in query_report.run(report)["result"] if r[0] != "Total" ]))[:how_many("Delivery Note")]: dn = webnotes.bean(make_delivery_note(so)) dn.doc.posting_date = current_date dn.doc.fiscal_year = current_date.year for d in dn.doclist.get({"parentfield": "delivery_note_details"}): d.expense_account = "Cost of Goods Sold - {}".format( company_abbr) dn.insert() try: dn.submit() webnotes.conn.commit() except NegativeStockError: pass except SerialNoRequiredError: pass except SerialNoQtyError: pass # try submitting existing for dn in webnotes.conn.get_values("Delivery Note", {"docstatus": 0}, "name"): b = webnotes.bean("Delivery Note", dn[0]) b.submit() webnotes.conn.commit()
def _test_delivery_note_return_against_sales_order(self, item_code, delivered_qty, returned_qty): self._insert_material_receipt() from selling.doctype.sales_order.test_sales_order import test_records as sales_order_test_records from selling.doctype.sales_order.sales_order import make_sales_invoice, make_delivery_note actual_qty_0 = self._get_actual_qty() so = webnotes.bean(copy=sales_order_test_records[0]) so.doclist[1].item_code = item_code so.doclist[1].qty = 5.0 so.insert() so.submit() dn_doclist = make_delivery_note(so.doc.name) dn = webnotes.bean(dn_doclist) dn.doc.status = "Draft" dn.doc.posting_date = so.doc.delivery_date dn.insert() dn.submit() actual_qty_1 = self._get_actual_qty() self.assertEquals(actual_qty_0 - delivered_qty, actual_qty_1) si_doclist = make_sales_invoice(so.doc.name) si = webnotes.bean(si_doclist) si.doc.posting_date = dn.doc.posting_date si.doc.debit_to = "_Test Customer - _TC" for d in si.doclist.get({"parentfield": "entries"}): d.income_account = "Sales - _TC" d.cost_center = "_Test Cost Center - _TC" si.insert() si.submit() # insert and submit stock entry for sales return se = webnotes.bean(copy=test_records[0]) se.doc.purpose = "Sales Return" se.doc.delivery_note_no = dn.doc.name se.doc.posting_date = "2013-03-10" se.doc.fiscal_year = "_Test Fiscal Year 2013" se.doclist[1].qty = se.doclist[1].transfer_qty = returned_qty se.insert() se.submit() actual_qty_2 = self._get_actual_qty() self.assertEquals(actual_qty_1 + returned_qty, actual_qty_2) return se
def _test_delivery_note_return_against_sales_order(self, item_code, delivered_qty, returned_qty): self._insert_material_receipt() from selling.doctype.sales_order.test_sales_order import test_records as sales_order_test_records from selling.doctype.sales_order.sales_order import make_sales_invoice, make_delivery_note actual_qty_0 = self._get_actual_qty() so = webnotes.bean(copy=sales_order_test_records[0]) so.doclist[1].item_code = item_code so.doclist[1].qty = 5.0 so.insert() so.submit() dn_doclist = make_delivery_note(so.doc.name) dn = webnotes.bean(dn_doclist) dn.doc.status = "Draft" dn.doc.posting_date = so.doc.delivery_date dn.insert() dn.submit() actual_qty_1 = self._get_actual_qty() self.assertEquals(actual_qty_0 - delivered_qty, actual_qty_1) si_doclist = make_sales_invoice(so.doc.name) si = webnotes.bean(si_doclist) si.doc.posting_date = dn.doc.posting_date si.doc.debit_to = "_Test Customer - _TC" for d in si.doclist.get({"parentfield": "entries"}): d.income_account = "Sales - _TC" d.cost_center = "_Test Cost Center - _TC" si.insert() si.submit() # insert and submit stock entry for sales return se = webnotes.bean(copy=test_records[0]) se.doc.purpose = "Sales Return" se.doc.delivery_note_no = dn.doc.name se.doc.posting_date = "2013-03-10" se.doc.fiscal_year = "_Test Fiscal Year 2013" se.doclist[1].qty = se.doclist[1].transfer_qty = returned_qty se.insert() se.submit() actual_qty_2 = self._get_actual_qty() self.assertEquals(actual_qty_1 + returned_qty, actual_qty_2) return se
def test_make_delivery_note(self): from selling.doctype.sales_order.sales_order import make_delivery_note so = webnotes.bean(copy=test_records[0]).insert() self.assertRaises(webnotes.ValidationError, make_delivery_note, so.doc.name) sales_order = webnotes.bean("Sales Order", so.doc.name) sales_order.submit() dn = make_delivery_note(so.doc.name) self.assertEquals(dn[0]["doctype"], "Delivery Note") self.assertEquals(len(dn), len(sales_order.doclist))
def test_make_delivery_note(self): from selling.doctype.sales_order.sales_order import make_delivery_note so = webnotes.bean(copy=test_records[0]).insert() self.assertRaises(webnotes.ValidationError, make_delivery_note, so.doc.name) sales_order = webnotes.bean("Sales Order", so.doc.name) sales_order.submit() dn = make_delivery_note(so.doc.name) self.assertEquals(dn[0]["doctype"], "Delivery Note") self.assertEquals(len(dn), len(sales_order.doclist))
def run_stock(current_date): # make purchase requests if can_make("Purchase Receipt"): from buying.doctype.purchase_order.purchase_order import make_purchase_receipt report = "Purchase Order Items To Be Received" for po in list( set([ r[0] for r in query_report.run(report)["result"] if r[0] != "Total" ]))[:how_many("Purchase Receipt")]: pr = webnotes.bean(make_purchase_receipt(po)) pr.doc.posting_date = current_date pr.doc.fiscal_year = "2013" pr.insert() pr.submit() webnotes.conn.commit() # make delivery notes (if possible) if can_make("Delivery Note"): from selling.doctype.sales_order.sales_order import make_delivery_note from stock.stock_ledger import NegativeStockError from stock.doctype.stock_ledger_entry.stock_ledger_entry import SerialNoRequiredError, SerialNoQtyError report = "Ordered Items To Be Delivered" for so in list( set([ r[0] for r in query_report.run(report)["result"] if r[0] != "Total" ]))[:how_many("Delivery Note")]: dn = webnotes.bean(make_delivery_note(so)) dn.doc.posting_date = current_date dn.doc.fiscal_year = "2013" dn.insert() try: dn.submit() webnotes.conn.commit() except NegativeStockError: pass except SerialNoRequiredError: pass except SerialNoQtyError: pass # try submitting existing for dn in webnotes.conn.get_values("Delivery Note", {"docstatus": 0}, "name"): b = webnotes.bean("Delivery Note", dn[0]) b.submit() webnotes.conn.commit()
def run_stock(current_date): # make purchase requests if can_make("Purchase Receipt"): from buying.doctype.purchase_order.purchase_order import make_purchase_receipt from stock.stock_ledger import NegativeStockError report = "Purchase Order Items To Be Received" for po in list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:how_many("Purchase Receipt")]: pr = webnotes.bean(make_purchase_receipt(po)) pr.doc.posting_date = current_date pr.doc.fiscal_year = current_date.year pr.insert() try: pr.submit() webnotes.conn.commit() except NegativeStockError: pass # make delivery notes (if possible) if can_make("Delivery Note"): from selling.doctype.sales_order.sales_order import make_delivery_note from stock.stock_ledger import NegativeStockError from stock.doctype.serial_no.serial_no import SerialNoRequiredError, SerialNoQtyError report = "Ordered Items To Be Delivered" for so in list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:how_many("Delivery Note")]: dn = webnotes.bean(make_delivery_note(so)) dn.doc.posting_date = current_date dn.doc.fiscal_year = current_date.year for d in dn.doclist.get({"parentfield": "delivery_note_details"}): d.expense_account = "Cost of Goods Sold - {}".format(company_abbr) dn.insert() try: dn.submit() webnotes.conn.commit() except NegativeStockError: pass except SerialNoRequiredError: pass except SerialNoQtyError: pass # try submitting existing for dn in webnotes.conn.get_values("Delivery Note", {"docstatus": 0}, "name"): b = webnotes.bean("Delivery Note", dn[0]) b.submit() webnotes.conn.commit()
def run_stock(current_date): # make purchase requests if can_make("Purchase Receipt"): from buying.doctype.purchase_order.purchase_order import make_purchase_receipt report = "Purchase Order Items To Be Received" for po in list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:how_many("Purchase Receipt")]: pr = webnotes.bean(make_purchase_receipt(po)) pr.doc.posting_date = current_date pr.doc.fiscal_year = "2013" pr.insert() pr.submit() webnotes.conn.commit() # make delivery notes (if possible) if can_make("Delivery Note"): from selling.doctype.sales_order.sales_order import make_delivery_note from stock.stock_ledger import NegativeStockError from stock.doctype.stock_ledger_entry.stock_ledger_entry import SerialNoRequiredError, SerialNoQtyError report = "Ordered Items To Be Delivered" for so in list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:how_many("Delivery Note")]: dn = webnotes.bean(make_delivery_note(so)) dn.doc.posting_date = current_date dn.doc.fiscal_year = "2013" dn.insert() try: dn.submit() webnotes.conn.commit() except NegativeStockError: pass except SerialNoRequiredError: pass except SerialNoQtyError: pass # try submitting existing for dn in webnotes.conn.get_values("Delivery Note", {"docstatus": 0}, "name"): b = webnotes.bean("Delivery Note", dn[0]) b.submit() webnotes.conn.commit()