|
|
@@ -2732,6 +2732,91 @@ namespace SiteCore.Handler
|
|
|
|
|
|
}
|
|
|
|
|
|
+ sql.AppendFormat("SELECT s.ComName ,o.AfterSaleReason, COUNT ( * ) AS AllOrder FROM CE_ErpTradeCell o LEFT JOIN CE_ErpSupplier s ON s.ID = o.SupplierId WHERE 1 = 1 AND o.AfterSaleState >= 1 AND o.AfterSaleResSupId > 0 {0} GROUP BY o.AfterSaleReason, s.ComName ORDER BY s.ComName DESC", sqlDate);
|
|
|
+ DataTable dtafter = DbHelper.DbConn.ExecuteDataset(sql.ToString()).Tables[0];
|
|
|
+ DataTable dt = new DataTable();
|
|
|
+ dt.Columns.Add(new DataColumn("ComName", typeof(string)));
|
|
|
+ dt.Columns.Add(new DataColumn("AfterSaleReason1", typeof(string)));
|
|
|
+ dt.Columns.Add(new DataColumn("AfterSaleReason2", typeof(string)));
|
|
|
+ dt.Columns.Add(new DataColumn("AfterSaleReason3", typeof(string)));
|
|
|
+ dt.Columns.Add(new DataColumn("AfterSaleReason4", typeof(string)));
|
|
|
+ dt.Columns.Add(new DataColumn("AllOrder", typeof(string)));
|
|
|
+ dt.Columns.Add(new DataColumn("rate", typeof(string)));
|
|
|
+ DataRow dr_he = dt.NewRow();
|
|
|
+ dr_he[0] = "合计";
|
|
|
+ dr_he[1] = 0;
|
|
|
+ dr_he[2] = 0;
|
|
|
+ dr_he[3] = 0;
|
|
|
+ dr_he[4] = 0;
|
|
|
+ dr_he[5] = 0;
|
|
|
+ dr_he[6] = 0;
|
|
|
+ foreach (DataRow row in dtafter.Rows)
|
|
|
+ {
|
|
|
+ string reason = row["AfterSaleReason"].ToString();
|
|
|
+ string[] reason_list = reason.Split(new char[] { '|' });
|
|
|
+ DataRow dr = dt.NewRow();
|
|
|
+ dr[0] = row["ComName"];
|
|
|
+ if (reason_list.Length > 0)
|
|
|
+ {
|
|
|
+ dr[1] = reason_list[0];
|
|
|
+ }
|
|
|
+ if (reason_list.Length > 1)
|
|
|
+ {
|
|
|
+ dr[2] = reason_list[1];
|
|
|
+ }
|
|
|
+ if (reason_list.Length > 2)
|
|
|
+ {
|
|
|
+ dr[3] = reason_list[2];
|
|
|
+ }
|
|
|
+ if (reason_list.Length > 3)
|
|
|
+ {
|
|
|
+ dr[4] = reason_list[3];
|
|
|
+ }
|
|
|
+ dr[5] = row["AllOrder"];
|
|
|
+ dr[6] = 0;
|
|
|
+
|
|
|
+ dt.Rows.Add(dr);
|
|
|
+ dr_he[5] = Convert.ToDecimal(dr_he[5]) + Convert.ToDecimal(dr[5]);
|
|
|
+ }
|
|
|
+ foreach (DataRow row in dt.Rows)
|
|
|
+ {
|
|
|
+ row[6] = Math.Round(Math.Round(Convert.ToDecimal(row[5]) / Convert.ToDecimal(dr_he[5]), 4) * 100, 2);
|
|
|
+ }
|
|
|
+ dr_he[6] = 100;
|
|
|
+ dt.Rows.Add(dr_he);
|
|
|
+ DataView dv = new DataView(dt);
|
|
|
+ //dv.Sort = "AllOrder desc";
|
|
|
+ DataTable dtNew = dv.ToTable();
|
|
|
+ writeGridDataTableJson(dtNew.Rows.Count, dtNew);
|
|
|
+
|
|
|
+ }public void get_erp_aftersale_sup_product_gather()
|
|
|
+ {
|
|
|
+ string date1 = GetPostString("date1");
|
|
|
+ string date2 = GetPostString("date2");
|
|
|
+ string pay_date1 = GetPostString("pay_date1");
|
|
|
+ string pay_date2 = GetPostString("pay_date2");
|
|
|
+
|
|
|
+ if (date1.Length <= 0 && pay_date1.Length <= 0)
|
|
|
+ {
|
|
|
+ pay_date1 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ pay_date2 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ }
|
|
|
+
|
|
|
+ StringBuilder sql = new StringBuilder();
|
|
|
+
|
|
|
+ StringBuilder sqlDate = new StringBuilder();
|
|
|
+
|
|
|
+ if (date1.Length > 0)
|
|
|
+ {
|
|
|
+ sqlDate.AppendFormat("and o.HandleTime >= '{0}' AND o.HandleTime < '{1}'", date1, date2);
|
|
|
+
|
|
|
+ }
|
|
|
+ if (pay_date1.Length > 0)
|
|
|
+ {
|
|
|
+ sqlDate.AppendFormat("and o.pay_time >= '{0}' AND o.pay_time < '{1}'", pay_date1, pay_date2);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
sql.AppendFormat("SELECT s.ComName ,p.PType,o.AfterSaleReason, COUNT ( * ) AS AllOrder FROM CE_ErpTradeCell o LEFT JOIN CE_ErpSupplier s ON s.ID = o.SupplierId LEFT JOIN CE_ErpProduct p ON o.ProductId = p.id WHERE 1 = 1 AND o.AfterSaleState >= 1 AND o.AfterSaleResSupId > 0 {0} GROUP BY o.AfterSaleReason, s.ComName,p.PType ORDER BY s.ComName DESC", sqlDate);
|
|
|
DataTable dtafter = DbHelper.DbConn.ExecuteDataset(sql.ToString()).Tables[0];
|
|
|
DataTable dt = new DataTable();
|