def test_ordered_qty(self): webnotes.conn.sql("delete from tabBin") from buying.doctype.purchase_order.purchase_order import make_purchase_receipt po = webnotes.bean(copy=test_records[0]).insert() self.assertRaises(webnotes.ValidationError, make_purchase_receipt, po.doc.name) po = webnotes.bean("Purchase Order", po.doc.name) po.doc.is_subcontracted = "No" po.doclist[1].item_code = "_Test Item" po.submit() self.assertEquals( webnotes.conn.get_value("Bin", { "item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC" }, "ordered_qty"), 10) pr = make_purchase_receipt(po.doc.name) self.assertEquals(pr[0]["doctype"], "Purchase Receipt") self.assertEquals(len(pr), len(test_records[0])) pr[0]["posting_date"] = "2013-05-12" pr[0].naming_series = "_T-Purchase Receipt-" pr[1].qty = 4.0 pr_bean = webnotes.bean(pr) pr_bean.insert() pr_bean.submit() self.assertEquals( flt( webnotes.conn.get_value( "Bin", { "item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC" }, "ordered_qty")), 6.0) webnotes.conn.set_value('Item', '_Test Item', 'tolerance', 50) pr1 = make_purchase_receipt(po.doc.name) pr1[0].naming_series = "_T-Purchase Receipt-" pr1[0]["posting_date"] = "2013-05-12" pr1[1].qty = 8 pr1_bean = webnotes.bean(pr1) pr1_bean.insert() pr1_bean.submit() self.assertEquals( flt( webnotes.conn.get_value( "Bin", { "item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC" }, "ordered_qty")), 0.0)
def test_ordered_qty(self): webnotes.conn.sql("delete from tabBin") from buying.doctype.purchase_order.purchase_order import make_purchase_receipt po = webnotes.bean(copy=test_records[0]).insert() self.assertRaises(webnotes.ValidationError, make_purchase_receipt, po.doc.name) po = webnotes.bean("Purchase Order", po.doc.name) po.doc.is_subcontracted = "No" po.doclist[1].item_code = "_Test Item" po.submit() self.assertEquals(webnotes.conn.get_value("Bin", {"item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC"}, "ordered_qty"), 10) pr = make_purchase_receipt(po.doc.name) self.assertEquals(pr[0]["doctype"], "Purchase Receipt") self.assertEquals(len(pr), len(test_records[0])) pr[0]["posting_date"] = "2013-05-12" pr[0].naming_series = "_T-Purchase Receipt-" pr[1].qty = 4.0 pr_bean = webnotes.bean(pr) pr_bean.insert() pr_bean.submit() self.assertEquals(flt(webnotes.conn.get_value("Bin", {"item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC"}, "ordered_qty")), 6.0) webnotes.conn.set_value('Item', '_Test Item', 'tolerance', 50) pr1 = make_purchase_receipt(po.doc.name) pr1[0].naming_series = "_T-Purchase Receipt-" pr1[0]["posting_date"] = "2013-05-12" pr1[1].qty = 8 pr1_bean = webnotes.bean(pr1) pr1_bean.insert() pr1_bean.submit() self.assertEquals(flt(webnotes.conn.get_value("Bin", {"item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC"}, "ordered_qty")), 0.0)
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()
def test_make_purchase_receipt(self): from buying.doctype.purchase_order.purchase_order import make_purchase_receipt po = webnotes.bean(copy=test_records[0]).insert() self.assertRaises(webnotes.ValidationError, make_purchase_receipt, po.doc.name) po = webnotes.bean("Purchase Order", po.doc.name) po.submit() pr = make_purchase_receipt(po.doc.name) pr[0]["supplier_warehouse"] = "_Test Warehouse 1 - _TC" self.assertEquals(pr[0]["doctype"], "Purchase Receipt") self.assertEquals(len(pr), len(test_records[0])) pr[0].naming_series = "_T-Purchase Receipt-" webnotes.bean(pr).insert()
def test_make_purchase_receipt(self): from buying.doctype.purchase_order.purchase_order import make_purchase_receipt po = webnotes.bean(copy=test_records[0]).insert() self.assertRaises(webnotes.ValidationError, make_purchase_receipt, po.doc.name) po = webnotes.bean("Purchase Order", po.doc.name) po.submit() pr = make_purchase_receipt(po.doc.name) pr[0]["supplier_warehouse"] = "_Test Warehouse 1 - _TC" self.assertEquals(pr[0]["doctype"], "Purchase Receipt") self.assertEquals(len(pr), len(test_records[0])) pr[0].naming_series = "_T-Purchase Receipt-" webnotes.bean(pr).insert()
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()
def _test_purchase_return_return_against_purchase_order(self): self._clear_stock_account_balance() actual_qty_0 = self._get_actual_qty() from buying.doctype.purchase_order.test_purchase_order import test_records as purchase_order_test_records from buying.doctype.purchase_order.purchase_order import make_purchase_receipt, make_purchase_invoice # submit purchase receipt po = webnotes.bean(copy=purchase_order_test_records[0]) po.doc.is_subcontracted = None po.doclist[1].item_code = "_Test Item" po.doclist[1].import_rate = 50 po.insert() po.submit() pr_doclist = make_purchase_receipt(po.doc.name) pr = webnotes.bean(pr_doclist) pr.doc.posting_date = po.doc.transaction_date pr.insert() pr.submit() actual_qty_1 = self._get_actual_qty() self.assertEquals(actual_qty_0 + 10, actual_qty_1) pi_doclist = make_purchase_invoice(po.doc.name) pi = webnotes.bean(pi_doclist) pi.doc.posting_date = pr.doc.posting_date pi.doc.credit_to = "_Test Supplier - _TC" for d in pi.doclist.get({"parentfield": "entries"}): d.expense_head = "_Test Account Cost for Goods Sold - _TC" d.cost_center = "_Test Cost Center - _TC" for d in pi.doclist.get({"parentfield": "purchase_tax_details"}): d.cost_center = "_Test Cost Center - _TC" pi.run_method("calculate_taxes_and_totals") pi.doc.bill_no = "NA" pi.insert() pi.submit() # submit purchase return se = webnotes.bean(copy=test_records[0]) se.doc.purpose = "Purchase Return" se.doc.purchase_receipt_no = pr.doc.name se.doc.posting_date = "2013-03-01" se.doc.fiscal_year = "_Test Fiscal Year 2013" se.doclist[1].qty = se.doclist[1].transfer_qty = 5 se.doclist[1].s_warehouse = "_Test Warehouse - _TC" se.insert() se.submit() actual_qty_2 = self._get_actual_qty() self.assertEquals(actual_qty_1 - 5, actual_qty_2) webnotes.conn.set_default("company", self.old_default_company) return se, pr.doc.name
def _test_purchase_return_return_against_purchase_order(self): self._clear_stock() actual_qty_0 = self._get_actual_qty() from buying.doctype.purchase_order.test_purchase_order \ import test_records as purchase_order_test_records from buying.doctype.purchase_order.purchase_order import \ make_purchase_receipt, make_purchase_invoice # submit purchase receipt po = webnotes.bean(copy=purchase_order_test_records[0]) po.doc.is_subcontracted = None po.doclist[1].item_code = "_Test Item" po.doclist[1].import_rate = 50 po.insert() po.submit() pr_doclist = make_purchase_receipt(po.doc.name) pr = webnotes.bean(pr_doclist) pr.doc.posting_date = po.doc.transaction_date pr.insert() pr.submit() actual_qty_1 = self._get_actual_qty() self.assertEquals(actual_qty_0 + 10, actual_qty_1) pi_doclist = make_purchase_invoice(po.doc.name) pi = webnotes.bean(pi_doclist) pi.doc.posting_date = pr.doc.posting_date pi.doc.credit_to = "_Test Supplier - _TC" for d in pi.doclist.get({"parentfield": "entries"}): d.expense_head = "_Test Account Cost for Goods Sold - _TC" d.cost_center = "_Test Cost Center - _TC" for d in pi.doclist.get({"parentfield": "purchase_tax_details"}): d.cost_center = "_Test Cost Center - _TC" pi.run_method("calculate_taxes_and_totals") pi.doc.bill_no = "NA" pi.insert() pi.submit() # submit purchase return se = webnotes.bean(copy=test_records[0]) se.doc.purpose = "Purchase Return" se.doc.purchase_receipt_no = pr.doc.name se.doc.posting_date = "2013-03-01" se.doc.fiscal_year = "_Test Fiscal Year 2013" se.doclist[1].qty = se.doclist[1].transfer_qty = 5 se.doclist[1].s_warehouse = "_Test Warehouse - _TC" se.insert() se.submit() actual_qty_2 = self._get_actual_qty() self.assertEquals(actual_qty_1 - 5, actual_qty_2) webnotes.conn.set_default("company", self.old_default_company) return se, pr.doc.name