chore: add running stock value difference in invariant report (#29012)

[skip ci]
This commit is contained in:
Ankush Menat 2021-12-23 21:13:22 +05:30 committed by GitHub
parent ae929d7a63
commit 7987a46509
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 2 deletions

View File

@ -8,7 +8,8 @@ const DIFFERNCE_FIELD_NAMES = [
"fifo_value_diff", "fifo_value_diff",
"fifo_valuation_diff", "fifo_valuation_diff",
"valuation_diff", "valuation_diff",
"fifo_difference_diff" "fifo_difference_diff",
"diff_value_diff"
]; ];
frappe.query_reports["Stock Ledger Invariant Check"] = { frappe.query_reports["Stock Ledger Invariant Check"] = {

View File

@ -50,6 +50,7 @@ def get_stock_ledger_entries(filters):
def add_invariant_check_fields(sles): def add_invariant_check_fields(sles):
balance_qty = 0.0 balance_qty = 0.0
balance_stock_value = 0.0
for idx, sle in enumerate(sles): for idx, sle in enumerate(sles):
queue = json.loads(sle.stock_queue) queue = json.loads(sle.stock_queue)
@ -60,6 +61,7 @@ def add_invariant_check_fields(sles):
fifo_value += qty * rate fifo_value += qty * rate
balance_qty += sle.actual_qty balance_qty += sle.actual_qty
balance_stock_value += sle.stock_value_difference
if sle.voucher_type == "Stock Reconciliation" and not sle.batch_no: if sle.voucher_type == "Stock Reconciliation" and not sle.batch_no:
balance_qty = sle.qty_after_transaction balance_qty = sle.qty_after_transaction
@ -70,6 +72,7 @@ def add_invariant_check_fields(sles):
sle.stock_value / sle.qty_after_transaction if sle.qty_after_transaction else None sle.stock_value / sle.qty_after_transaction if sle.qty_after_transaction else None
) )
sle.expected_qty_after_transaction = balance_qty sle.expected_qty_after_transaction = balance_qty
sle.stock_value_from_diff = balance_stock_value
# set difference fields # set difference fields
sle.difference_in_qty = sle.qty_after_transaction - sle.expected_qty_after_transaction sle.difference_in_qty = sle.qty_after_transaction - sle.expected_qty_after_transaction
@ -81,6 +84,7 @@ def add_invariant_check_fields(sles):
sle.valuation_diff = ( sle.valuation_diff = (
sle.valuation_rate - sle.balance_value_by_qty if sle.balance_value_by_qty else None sle.valuation_rate - sle.balance_value_by_qty if sle.balance_value_by_qty else None
) )
sle.diff_value_diff = sle.stock_value_from_diff - sle.stock_value
if idx > 0: if idx > 0:
sle.fifo_stock_diff = sle.fifo_stock_value - sles[idx - 1].fifo_stock_value sle.fifo_stock_diff = sle.fifo_stock_value - sles[idx - 1].fifo_stock_value
@ -191,12 +195,21 @@ def get_columns():
"fieldtype": "Float", "fieldtype": "Float",
"label": "D - E", "label": "D - E",
}, },
{ {
"fieldname": "stock_value_difference", "fieldname": "stock_value_difference",
"fieldtype": "Float", "fieldtype": "Float",
"label": "(F) Stock Value Difference", "label": "(F) Stock Value Difference",
}, },
{
"fieldname": "stock_value_from_diff",
"fieldtype": "Float",
"label": "Balance Stock Value using (F)",
},
{
"fieldname": "diff_value_diff",
"fieldtype": "Float",
"label": "K - D",
},
{ {
"fieldname": "fifo_stock_diff", "fieldname": "fifo_stock_diff",
"fieldtype": "Float", "fieldtype": "Float",