Got proper cumulative data working
diff --git a/erpnext/manufacturing/page/production_analytics/production_analytics.js b/erpnext/manufacturing/page/production_analytics/production_analytics.js
index c64ea91..638595d 100644
--- a/erpnext/manufacturing/page/production_analytics/production_analytics.js
+++ b/erpnext/manufacturing/page/production_analytics/production_analytics.js
@@ -55,11 +55,22 @@
 
 		this.show_zero_check()
 		this.setup_chart_check();
+		
 	},
 	init_filter_values: function() {
 		this._super();
 		this.filter_inputs.range.val('Monthly');
 	},
+	setup_chart: function() {
+		var me = this;
+		
+		var chart_data = this.get_chart_data ? this.get_chart_data() : null;
+
+		this.chart = new frappe.ui.Chart({
+			wrapper: this.chart_area,
+			data: chart_data
+		});
+	},
 
 	prepare_data: function() {
 		// add Opening, Closing, Totals rows
@@ -74,39 +85,45 @@
 		var  pending = {name:"Pending", "id":"pending-pos",
 			checked:true};
 		var completed = {name:"Completed", "id":"completed-pos",
-			checked:true};
-	
+			checked:true};	
 
 		$.each(frappe.report_dump.data["Production Order"], function(i, d) {
 			var dateobj = dateutil.str_to_obj(d.creation);
-			var date = d.creation.split(" ")[0];
-			var col = me.column_map[date];
+			var date = dateutil.str_to_user(d.creation.split(" ")[0]);
 
-			if(col) {
-				var start_period = dateutil.str_to_obj(col.name);
-				var end_period = dateutil.str_to_obj(col.id);
-				all_open_orders[col.field] = flt(all_open_orders[col.field]) + 1;
-				if(d.status=="Completed") {
-					completed[col.field] = flt(completed[col.field]) + 1;
-				}else if(d.status=="In Process") {
-					pending[col.field] = flt(pending[col.field]) + 1;
-				}else if(d.status=="Not Started") {
-					if (d.planned_start_date > start_period) {
-						not_started[col.field] = flt(not_started[col.field]) + 1;
-					}else if (d.planned_start_date < end_period) {
-						overdue[col.field] = flt(overdue[col.field]) + 1;
-					}else if (d.planned_start_date < d.actual_start_date) {
-						not_started[col.field] = flt(not_started[col.field]) + 1;
-					}else if (d.planned_start_date > dateutil.now_datetime()) {
-						not_started[col.field] = flt(not_started[col.field]) + 1;
+			$.each(me.columns, function(i,col) {
+				if (i > 1){
+					if (i == 14){
+						var temp = 0;
 					}
-					else{
-						overdue[col.field] = flt(overdue[col.field]) + 1;
+					var start_period = dateutil.user_to_obj(dateutil.str_to_user(col.id));
+					var end_period = dateutil.user_to_obj(dateutil.str_to_user(col.name));
+					if (dateobj <= start_period || end_period >= dateobj){
+						all_open_orders[col.field] = flt(all_open_orders[col.field]) + 1;
+						if(d.status=="Completed") {
+							completed[col.field] = flt(completed[col.field]) + 1;
+						}else if(d.status=="In Process") {
+							pending[col.field] = flt(pending[col.field]) + 1;
+						}else if(d.status=="Not Started") {
+							if (d.planned_start_date > start_period) {
+								not_started[col.field] = flt(not_started[col.field]) + 1;
+							}else if (d.planned_start_date < end_period) {
+								overdue[col.field] = flt(overdue[col.field]) + 1;
+							}else if (d.planned_start_date < d.actual_start_date) {
+								not_started[col.field] = flt(not_started[col.field]) + 1;
+							}else if (d.planned_start_date > dateutil.now_datetime()) {
+								not_started[col.field] = flt(not_started[col.field]) + 1;
+							}
+							else{
+								overdue[col.field] = flt(overdue[col.field]) + 1;
+							}
+						}
 					}
 				}
-			}
+			});
 		});
-
+		this.chart_area.toggle(true);
 		this.data = [all_open_orders, not_started, overdue, pending, completed];
+		
 	}
 });