commit
c525449c13
@ -6,6 +6,7 @@ import frappe
|
|||||||
from frappe import _, scrub
|
from frappe import _, scrub
|
||||||
from frappe.utils import flt
|
from frappe.utils import flt
|
||||||
|
|
||||||
|
|
||||||
def execute(filters=None):
|
def execute(filters=None):
|
||||||
if not filters: filters = frappe._dict()
|
if not filters: filters = frappe._dict()
|
||||||
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
|
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
|
||||||
@ -188,8 +189,8 @@ class GrossProfitGenerator(object):
|
|||||||
# stock_ledger_entries should already be filtered by item_code and warehouse and
|
# stock_ledger_entries should already be filtered by item_code and warehouse and
|
||||||
# sorted by posting_date desc, posting_time desc
|
# sorted by posting_date desc, posting_time desc
|
||||||
if item_code in self.non_stock_items:
|
if item_code in self.non_stock_items:
|
||||||
# average purchasing rate for non-stock items
|
#Issue 6089-Get last purchasing rate for non-stock item
|
||||||
item_rate = self.get_average_buying_rate(item_code)
|
item_rate = self.get_last_purchase_rate(item_code)
|
||||||
return flt(row.qty) * item_rate
|
return flt(row.qty) * item_rate
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@ -225,6 +226,22 @@ class GrossProfitGenerator(object):
|
|||||||
|
|
||||||
return self.average_buying_rate[item_code]
|
return self.average_buying_rate[item_code]
|
||||||
|
|
||||||
|
def get_last_purchase_rate(self, item_code):
|
||||||
|
if self.filters.to_date:
|
||||||
|
last_purchase_rate = frappe.db.sql("""
|
||||||
|
select (a.base_rate / a.conversion_factor)
|
||||||
|
from `tabPurchase Invoice Item` a
|
||||||
|
where a.item_code = %s and a.docstatus=1
|
||||||
|
and modified <= %s
|
||||||
|
order by a.modified desc limit 1""", (item_code,self.filters.to_date))
|
||||||
|
else:
|
||||||
|
last_purchase_rate = frappe.db.sql("""
|
||||||
|
select (a.base_rate / a.conversion_factor)
|
||||||
|
from `tabPurchase Invoice Item` a
|
||||||
|
where a.item_code = %s and a.docstatus=1
|
||||||
|
order by a.modified desc limit 1""", item_code)
|
||||||
|
return flt(last_purchase_rate[0][0]) if last_purchase_rate else 0
|
||||||
|
|
||||||
def load_invoice_items(self):
|
def load_invoice_items(self):
|
||||||
conditions = ""
|
conditions = ""
|
||||||
if self.filters.company:
|
if self.filters.company:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user