fix: filters for the manufacturing reports
This commit is contained in:
parent
0fa1cc647f
commit
cb1a910538
@ -13,17 +13,38 @@ frappe.query_reports["Job Card Summary"] = {
|
|||||||
reqd: 1
|
reqd: 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: __("From Date"),
|
fieldname: "fiscal_year",
|
||||||
|
label: __("Fiscal Year"),
|
||||||
|
fieldtype: "Link",
|
||||||
|
options: "Fiscal Year",
|
||||||
|
default: frappe.defaults.get_user_default("fiscal_year"),
|
||||||
|
reqd: 1,
|
||||||
|
on_change: function(query_report) {
|
||||||
|
var fiscal_year = query_report.get_values().fiscal_year;
|
||||||
|
if (!fiscal_year) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
|
||||||
|
var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
|
||||||
|
frappe.query_report.set_filter_value({
|
||||||
|
from_date: fy.year_start_date,
|
||||||
|
to_date: fy.year_end_date
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: __("From Posting Date"),
|
||||||
fieldname:"from_date",
|
fieldname:"from_date",
|
||||||
fieldtype: "Date",
|
fieldtype: "Date",
|
||||||
default: frappe.datetime.add_months(frappe.datetime.get_today(), -12),
|
default: frappe.defaults.get_user_default("year_start_date"),
|
||||||
reqd: 1
|
reqd: 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: __("To Date"),
|
label: __("To Posting Datetime"),
|
||||||
fieldname:"to_date",
|
fieldname:"to_date",
|
||||||
fieldtype: "Date",
|
fieldtype: "Date",
|
||||||
default: frappe.datetime.get_today(),
|
default: frappe.defaults.get_user_default("year_end_date"),
|
||||||
reqd: 1,
|
reqd: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -15,9 +15,12 @@ def execute(filters=None):
|
|||||||
return columns, data, None, chart_data
|
return columns, data, None, chart_data
|
||||||
|
|
||||||
def get_data(filters):
|
def get_data(filters):
|
||||||
query_filters = {"docstatus": ("<", 2)}
|
query_filters = {
|
||||||
|
"docstatus": ("=", 1),
|
||||||
|
"posting_date": ("between", [filters.from_date, filters.to_date])
|
||||||
|
}
|
||||||
|
|
||||||
fields = ["name", "status", "work_order", "production_item", "item_name",
|
fields = ["name", "status", "work_order", "production_item", "item_name", "posting_date",
|
||||||
"total_completed_qty", "workstation", "operation", "employee_name", "total_time_in_mins"]
|
"total_completed_qty", "workstation", "operation", "employee_name", "total_time_in_mins"]
|
||||||
|
|
||||||
for field in ["work_order", "workstation", "operation", "company"]:
|
for field in ["work_order", "workstation", "operation", "company"]:
|
||||||
@ -30,12 +33,19 @@ def get_data(filters):
|
|||||||
if not data: return []
|
if not data: return []
|
||||||
|
|
||||||
job_cards = [d.name for d in data]
|
job_cards = [d.name for d in data]
|
||||||
|
|
||||||
|
job_card_time_filter = {
|
||||||
|
"docstatus": 1,
|
||||||
|
"parent": ("in", job_cards),
|
||||||
|
}
|
||||||
|
|
||||||
job_card_time_details = {}
|
job_card_time_details = {}
|
||||||
for job_card_data in frappe.get_all("Job Card Time Log",
|
for job_card_data in frappe.get_all("Job Card Time Log",
|
||||||
fields=["min(from_time) as from_time", "max(to_time) as to_time", "parent"],
|
fields=["min(from_time) as from_time", "max(to_time) as to_time", "parent"],
|
||||||
filters={"docstatus": ("<", 2), "parent": ("in", job_cards)}, group_by="parent"):
|
filters=job_card_time_filter, group_by="parent", debug=1):
|
||||||
job_card_time_details[job_card_data.parent] = job_card_data
|
job_card_time_details[job_card_data.parent] = job_card_data
|
||||||
|
|
||||||
|
res = []
|
||||||
for d in data:
|
for d in data:
|
||||||
if d.status == "Material Transferred":
|
if d.status == "Material Transferred":
|
||||||
d.status = "Open"
|
d.status = "Open"
|
||||||
@ -43,8 +53,9 @@ def get_data(filters):
|
|||||||
if job_card_time_details.get(d.name):
|
if job_card_time_details.get(d.name):
|
||||||
d.from_time = job_card_time_details.get(d.name).from_time
|
d.from_time = job_card_time_details.get(d.name).from_time
|
||||||
d.to_time = job_card_time_details.get(d.name).to_time
|
d.to_time = job_card_time_details.get(d.name).to_time
|
||||||
|
res.append(d)
|
||||||
|
|
||||||
return data
|
return res
|
||||||
|
|
||||||
def get_chart_data(job_card_details, filters):
|
def get_chart_data(job_card_details, filters):
|
||||||
labels, periodic_data = prepare_chart_data(job_card_details, filters)
|
labels, periodic_data = prepare_chart_data(job_card_details, filters)
|
||||||
@ -86,10 +97,10 @@ def prepare_chart_data(job_card_details, filters):
|
|||||||
labels.append(period)
|
labels.append(period)
|
||||||
|
|
||||||
for d in job_card_details:
|
for d in job_card_details:
|
||||||
if getdate(d.from_time) >= from_date and getdate(d.to_time) <= end_date:
|
if getdate(d.posting_date) > from_date and getdate(d.posting_date) <= end_date:
|
||||||
status = "Completed" if d.status == "Completed" else "Pending"
|
status = "Completed" if d.status == "Completed" else "Pending"
|
||||||
|
|
||||||
if periodic_data.get(status) and periodic_data.get(status).get(period):
|
if periodic_data.get(status).get(period):
|
||||||
periodic_data[status][period] += 1
|
periodic_data[status][period] += 1
|
||||||
else:
|
else:
|
||||||
periodic_data[status][period] = 1
|
periodic_data[status][period] = 1
|
||||||
@ -105,6 +116,12 @@ def get_columns(filters):
|
|||||||
"options": "Job Card",
|
"options": "Job Card",
|
||||||
"width": 100
|
"width": 100
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"label": _("Posting Date"),
|
||||||
|
"fieldname": "posting_date",
|
||||||
|
"fieldtype": "Date",
|
||||||
|
"width": 100
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
if not filters.get("status"):
|
if not filters.get("status"):
|
||||||
|
|||||||
@ -13,17 +13,38 @@ frappe.query_reports["Work Order Summary"] = {
|
|||||||
reqd: 1
|
reqd: 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: __("From Date"),
|
fieldname: "fiscal_year",
|
||||||
|
label: __("Fiscal Year"),
|
||||||
|
fieldtype: "Link",
|
||||||
|
options: "Fiscal Year",
|
||||||
|
default: frappe.defaults.get_user_default("fiscal_year"),
|
||||||
|
reqd: 1,
|
||||||
|
on_change: function(query_report) {
|
||||||
|
var fiscal_year = query_report.get_values().fiscal_year;
|
||||||
|
if (!fiscal_year) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
|
||||||
|
var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
|
||||||
|
frappe.query_report.set_filter_value({
|
||||||
|
from_date: fy.year_start_date,
|
||||||
|
to_date: fy.year_end_date
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: __("From Posting Date"),
|
||||||
fieldname:"from_date",
|
fieldname:"from_date",
|
||||||
fieldtype: "Date",
|
fieldtype: "Date",
|
||||||
default: frappe.datetime.add_months(frappe.datetime.get_today(), -12),
|
default: frappe.defaults.get_user_default("year_start_date"),
|
||||||
reqd: 1
|
reqd: 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: __("To Date"),
|
label: __("To Posting Datetime"),
|
||||||
fieldname:"to_date",
|
fieldname:"to_date",
|
||||||
fieldtype: "Date",
|
fieldtype: "Date",
|
||||||
default: frappe.datetime.get_today(),
|
default: frappe.defaults.get_user_default("year_end_date"),
|
||||||
reqd: 1,
|
reqd: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user