Allow nagative batch balance from landed cost voucher

This commit is contained in:
Nabin Hait 2015-01-23 12:18:01 +05:30
parent 9768467d53
commit 4ccd8d3326
2 changed files with 6 additions and 6 deletions

View File

@ -32,16 +32,15 @@ class StockLedgerEntry(Document):
#check for item quantity available in stock #check for item quantity available in stock
def actual_amt_check(self): def actual_amt_check(self):
if self.batch_no: if self.batch_no and not self.get("allow_negative_stock"):
batch_bal_after_transaction = flt(frappe.db.sql("""select sum(actual_qty) batch_bal_after_transaction = flt(frappe.db.sql("""select sum(actual_qty)
from `tabStock Ledger Entry` from `tabStock Ledger Entry`
where warehouse=%s and item_code=%s and batch_no=%s""", where warehouse=%s and item_code=%s and batch_no=%s""",
(self.warehouse, self.item_code, self.batch_no))[0][0]) (self.warehouse, self.item_code, self.batch_no))[0][0])
if batch_bal_after_transaction < 0: if batch_bal_after_transaction < 0:
frappe.throw(_("Negative balance {0} in Batch {1} for Item {2} at Warehouse {3} on {4} {5}") frappe.throw(_("Stock balance in Batch {0} will become negative {1} for Item {2} at Warehouse {3}")
.format(batch_bal_after_transaction - self.actual_qty, self.batch_no, self.item_code, self.warehouse, .format(self.batch_no, batch_bal_after_transaction, self.item_code, self.warehouse))
formatdate(self.posting_date), self.posting_time))
def validate_mandatory(self): def validate_mandatory(self):
mandatory = ['warehouse','posting_date','voucher_type','voucher_no','company'] mandatory = ['warehouse','posting_date','voucher_type','voucher_no','company']

View File

@ -28,7 +28,7 @@ def make_sl_entries(sl_entries, is_amended=None, allow_negative_stock=False):
sle['actual_qty'] = -flt(sle['actual_qty']) sle['actual_qty'] = -flt(sle['actual_qty'])
if sle.get("actual_qty") or sle.get("voucher_type")=="Stock Reconciliation": if sle.get("actual_qty") or sle.get("voucher_type")=="Stock Reconciliation":
sle_id = make_entry(sle) sle_id = make_entry(sle, allow_negative_stock)
args = sle.copy() args = sle.copy()
args.update({ args.update({
@ -46,10 +46,11 @@ def set_as_cancel(voucher_type, voucher_no):
where voucher_no=%s and voucher_type=%s""", where voucher_no=%s and voucher_type=%s""",
(now(), frappe.session.user, voucher_type, voucher_no)) (now(), frappe.session.user, voucher_type, voucher_no))
def make_entry(args): def make_entry(args, allow_negative_stock=False):
args.update({"doctype": "Stock Ledger Entry"}) args.update({"doctype": "Stock Ledger Entry"})
sle = frappe.get_doc(args) sle = frappe.get_doc(args)
sle.ignore_permissions = 1 sle.ignore_permissions = 1
sle.allow_negative_stock=allow_negative_stock
sle.insert() sle.insert()
sle.submit() sle.submit()
return sle.name return sle.name