using System; using System.Collections.Generic; using System.Linq; using System.Web; using Estsh.Web.Util; using System.Collections; using System.Data; using System.Text; using ApServerProvider; using DbCommon; namespace Estsh.Core.Repositories { public class OutGoingQueryDal : BaseApp { public OutGoingQueryDal(RemotingProxy remotingProxy) : base(remotingProxy) { this.TABLE_NAME = "g_ga_order_items"; this.PK_NAME = "order_detail_id"; } public DataTable GetCountType(ref Pager pager,string startTime, string endTime) { lock (_remotingProxy) { StringBuilder strColumn = new StringBuilder(); strColumn.Append(" g.type_name , "); strColumn.Append(" COUNT(DISTINCT a.car_no) as qty "); StringBuilder strTable = new StringBuilder(); strTable.Append(" dbo.g_ga_order_detail a "); strTable.Append(" JOIN dbo.g_ga_order_items b ON a.ruid = b.order_detail_id "); strTable.Append(" LEFT JOIN dbo.sys_part c ON b.part_no = c.cust_part_no "); strTable.Append(" JOIN dbo.g_workorder d ON a.car_no = d.car_no "); strTable.Append(" JOIN dbo.sys_part e ON d.part_id = e.part_id "); strTable.Append(" JOIN dbo.sys_model f ON f.model_id = e.model_id "); strTable.Append(" JOIN dbo.sys_model_type g ON f.model_type_id = g.type_id "); StringBuilder strWhere = new StringBuilder(); strWhere.AppendFormat(" ( CONVERT(DATETIME, b.update_ymd + ' ' + b.update_hms) >= '{0}'", startTime); strWhere.AppendFormat(" AND CONVERT(DATETIME, b.update_ymd + ' ' + b.update_hms) <= '{0}')", endTime); strWhere.Append(" AND a.status IN ( 6 )"); StringBuilder strGroup = new StringBuilder(); strGroup.Append(" g.type_name"); StringBuilder strOrder = new StringBuilder(); strOrder.Append(" g.type_name"); Hashtable result = new Hashtable(); List parameters = new List(); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalCount", 100)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalPage", 100)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", strTable.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", strColumn.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", strOrder.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", strGroup.ToString())); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", pager.pageSize)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", pager.pageNo)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 1)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere.ToString())); Hashtable values = new Hashtable(2); DataTable dt = new DataTable(); dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values); //totalCount = Convert.ToInt32(values["@TotalCount"]); pager.totalRows = Convert.ToInt32(values["@TotalCount"]); return dt; } } public DataTable GetCountModel(ref Pager pager, string startTime, string endTime) { lock (_remotingProxy) { StringBuilder strColumn = new StringBuilder(); strColumn.Append(" f.model_name , "); strColumn.Append(" COUNT(DISTINCT a.car_no) as qty "); StringBuilder strTable = new StringBuilder(); strTable.Append(" dbo.g_ga_order_detail a "); strTable.Append(" JOIN dbo.g_ga_order_items b ON a.ruid = b.order_detail_id "); strTable.Append(" LEFT JOIN dbo.sys_part c ON b.part_no = c.cust_part_no "); strTable.Append(" JOIN dbo.g_workorder d ON a.car_no = d.car_no "); strTable.Append(" JOIN dbo.sys_part e ON d.part_id = e.part_id "); strTable.Append(" JOIN dbo.sys_model f ON f.model_id = e.model_id "); strTable.Append(" JOIN dbo.sys_model_type g ON f.model_type_id = g.type_id "); StringBuilder strWhere = new StringBuilder(); strWhere.AppendFormat(" ( CONVERT(DATETIME, b.update_ymd + ' ' + b.update_hms) >= '{0}'", startTime); strWhere.AppendFormat(" AND CONVERT(DATETIME, b.update_ymd + ' ' + b.update_hms) <= '{0}'", endTime); strWhere.Append(" ) "); strWhere.Append(" AND a.status IN ( 6 ) "); StringBuilder strGroup = new StringBuilder(); strGroup.Append(" f.model_name"); StringBuilder strOrder = new StringBuilder(); strOrder.Append(" f.model_name"); Hashtable result = new Hashtable(); List parameters = new List(); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalCount", 100)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalPage", 100)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", strTable.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", strColumn.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", strOrder.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", strGroup.ToString())); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", pager.pageSize)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", pager.pageNo)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 1)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere.ToString())); Hashtable values = new Hashtable(2); DataTable dt = new DataTable(); dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values); pager.totalRows = Convert.ToInt32(values["@TotalCount"]); return dt; } } public DataTable GetCountByModel(ref Pager pager, string startTime, string endTime) { lock (_remotingProxy) { StringBuilder strColumn = new StringBuilder(); strColumn.Append(" f.model_name , "); strColumn.Append(" COUNT(shipping_sn) as qty "); StringBuilder strTable = new StringBuilder(); strTable.Append(" dbo.g_ga_order_detail a "); strTable.Append(" JOIN dbo.g_ga_order_items b ON a.ruid = b.order_detail_id "); strTable.Append(" LEFT JOIN dbo.sys_part c ON b.part_no = c.cust_part_no "); strTable.Append(" JOIN dbo.g_workorder d ON a.car_no = d.car_no "); strTable.Append(" JOIN dbo.sys_part e ON d.part_id = e.part_id "); strTable.Append(" JOIN dbo.sys_model f ON f.model_id = e.model_id "); strTable.Append(" JOIN dbo.sys_model_type g ON f.model_type_id = g.type_id "); StringBuilder strWhere = new StringBuilder(); strWhere.AppendFormat(" ( CONVERT(DATETIME, b.update_ymd + ' ' + b.update_hms) >= '{0}' ", startTime); strWhere.AppendFormat(" AND CONVERT(DATETIME, b.update_ymd + ' ' + b.update_hms) <= '{0}' ", endTime); strWhere.Append(" ) "); strWhere.Append(" AND a.status IN ( 6 ) "); StringBuilder strGroup = new StringBuilder(); strGroup.Append(" f.model_name"); StringBuilder strOrder = new StringBuilder(); strOrder.Append(" f.model_name"); Hashtable result = new Hashtable(); List parameters = new List(); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalCount", 100)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalPage", 100)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", strTable.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", strColumn.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", strOrder.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", strGroup.ToString())); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", pager.pageSize)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", pager.pageNo)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 1)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere.ToString())); Hashtable values = new Hashtable(2); DataTable dt = new DataTable(); dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values); pager.totalRows = Convert.ToInt32(values["@TotalCount"]); return dt; } } public DataTable GetCountByPN(ref Pager pager, string startTime, string endTime) { lock (_remotingProxy) { StringBuilder strColumn = new StringBuilder(); strColumn.Append(" g.type_name , "); strColumn.Append(" c.part_no , "); strColumn.Append(" c.part_spec , "); strColumn.Append(" c.cust_part_no , "); strColumn.Append(" COUNT(shipping_sn) as qty "); StringBuilder strTable = new StringBuilder(); strTable.Append(" dbo.g_ga_order_detail a "); strTable.Append(" JOIN dbo.g_ga_order_items b ON a.ruid = b.order_detail_id "); strTable.Append(" LEFT JOIN dbo.sys_part c ON b.part_no = c.cust_part_no "); strTable.Append(" JOIN dbo.g_workorder d ON a.car_no = d.car_no "); strTable.Append(" JOIN dbo.sys_part e ON d.part_id = e.part_id "); strTable.Append(" JOIN dbo.sys_model f ON f.model_id = e.model_id "); strTable.Append(" JOIN dbo.sys_model_type g ON f.model_type_id = g.type_id "); StringBuilder strWhere = new StringBuilder(); strWhere.AppendFormat(" ( CONVERT(DATETIME, b.update_ymd + ' ' + b.update_hms) >= '{0}' ", startTime); strWhere.AppendFormat(" AND CONVERT(DATETIME, b.update_ymd + ' ' + b.update_hms) <= '{0}' ", endTime); strWhere.Append(" ) "); strWhere.Append(" AND a.status IN ( 6 ) "); StringBuilder strGroup = new StringBuilder(); strGroup.Append(" g.type_name , "); strGroup.Append(" c.part_no , "); strGroup.Append(" c.part_spec , "); strGroup.Append(" c.cust_part_no "); StringBuilder strOrder = new StringBuilder(); strOrder.Append(" g.type_name , "); strOrder.Append(" c.part_spec DESC "); Hashtable result = new Hashtable(); List parameters = new List(); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalCount", 100)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalPage", 100)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", strTable.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", strColumn.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", strOrder.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", strGroup.ToString())); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", pager.pageSize)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", pager.pageNo)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 1)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere.ToString())); Hashtable values = new Hashtable(2); DataTable dt = new DataTable(); dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values); pager.totalRows = Convert.ToInt32(values["@TotalCount"]); return dt; } } public DataTable GetOutGoingDeail(ref Pager pager, string startTime, string endTime) { lock (_remotingProxy) { StringBuilder strColumn = new StringBuilder(); strColumn.Append(" g.type_name , "); strColumn.Append(" f.model_name , "); strColumn.Append(" b.car_no , "); strColumn.Append(" c.part_no , "); strColumn.Append(" c.part_spec , "); strColumn.Append(" c.cust_part_no , "); strColumn.Append(" b.shipping_sn , "); strColumn.Append(" b.update_ymd + ' ' + b.update_hms AS shippingTime "); strColumn.Append(" ,h.emp_name "); strColumn.Append(" ,1 AS qty "); strColumn.Append(" ,a.order_no "); strColumn.Append(" ,a.slot_no "); StringBuilder strTable = new StringBuilder(); strTable.Append(" dbo.g_ga_order_detail a "); strTable.Append(" JOIN dbo.g_ga_order_items b ON a.ruid = b.order_detail_id "); strTable.Append(" LEFT JOIN dbo.sys_part c ON b.part_no = c.cust_part_no "); strTable.Append(" JOIN dbo.g_workorder d ON a.car_no = d.car_no "); strTable.Append(" JOIN dbo.sys_part e ON d.part_id = e.part_id "); strTable.Append(" JOIN dbo.sys_model f ON f.model_id = e.model_id "); strTable.Append(" JOIN dbo.sys_model_type g ON f.model_type_id = g.type_id "); strTable.Append(" LEFT JOIN dbo.sys_emp h ON h.emp_id = b.update_userid "); StringBuilder strWhere = new StringBuilder(); strWhere.AppendFormat("( CONVERT(DATETIME, b.update_ymd + ' ' + b.update_hms) >= '{0}'", startTime); strWhere.AppendFormat(" AND CONVERT(DATETIME, b.update_ymd + ' ' + b.update_hms) <= '{0}'", endTime); strWhere.Append(" ) "); strWhere.Append(" AND a.status IN ( 6 ) "); StringBuilder strGroup = new StringBuilder(); StringBuilder strOrder = new StringBuilder(); strOrder.Append(" b.update_ymd ,"); strOrder.Append(" b.update_hms "); Hashtable result = new Hashtable(); List parameters = new List(); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalCount", 100)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalPage", 100)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", strTable.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", strColumn.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", strOrder.ToString())); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", strGroup.ToString())); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", pager.pageSize)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", pager.pageNo)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 0)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere.ToString())); Hashtable values = new Hashtable(2); DataTable dt = new DataTable(); dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values); pager.totalRows = Convert.ToInt32(values["@TotalCount"]); return dt; } } } }