You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

295 lines
18 KiB
C#

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<StoreProcedureParameter> parameters = new List<StoreProcedureParameter>();
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<StoreProcedureParameter> parameters = new List<StoreProcedureParameter>();
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<StoreProcedureParameter> parameters = new List<StoreProcedureParameter>();
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<StoreProcedureParameter> parameters = new List<StoreProcedureParameter>();
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<StoreProcedureParameter> parameters = new List<StoreProcedureParameter>();
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;
}
}
}
}