using System;
using System.Data;
using System.Text;
using System.Collections.Generic;
using System.Data.SqlClient;
using ApServerProvider;
using DbCommon;
using System.Collections;
using Estsh.Web.Util;
/***************************************************************************************************
*
* 作者:王勇
*
* *************************************************************************************************/
namespace Estsh.Core.Repositories
{
///
/// 处理菜单模块的业务数据
///
public class BOMReleaseDal : BaseApp
{
public BOMReleaseDal(RemotingProxy remotingProxy)
: base(remotingProxy)
{
}
///
/// 根据分页条件获取分页数据列表
///
public Hashtable getListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
{
lock (_remotingProxy)
{
Hashtable result = new Hashtable();
string column = "WERKS AS factory_code, MATNR AS part_no, STLAL AS remark, ";
column += "BMEIN AS unit, IDNRK AS item_part_no, MENGE AS item_count, ";
column += "MEINS AS item_unit, DATUV AS start_ymd, AENNR AS version ";
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", "dbo.SAP_BOM"));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", column));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", OrderBy));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", ""));
parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", PageSize));
parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", PageIndex));
parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 0));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere));
Hashtable values = new Hashtable(2);
DataTable dt = new DataTable();
dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values);
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
result.Add("dataList", dataList);
result.Add("totalCount", values["@TotalCount"].ToString());
return result;
}
}
///
/// 查询BOM版本
///
///
public DataTable getVersion()
{
lock (_remotingProxy)
{
string sql = "SELECT DISTINCT AENNR AS [value] ,AENNR AS [key] FROM sap_bom order BY AENNR";
return _remotingProxy.GetDataTable(sql);
}
}
///
/// 查询当前版本中的所有零件
///
/// 零件
/// 版本
///
public DataTable getAllPart(string where, string version)
{
lock (_remotingProxy)
{
StringBuilder sb = new StringBuilder();
sb.Append("SELECT MATNR FROM sap_bom WHERE AENNR='" + version + "'" + where);
sb.Append(" AND MATNR NOT IN(SELECT part_no FROM dbo.sys_bom )");
sb.Append(" GROUP BY Matnr");
return _remotingProxy.GetDataTable(sb.ToString());
}
}
///
/// 按照总成零件号和BOM版本同步 SAP BOM 数据
///
/// 总成零件号
/// BOM版本
/// 是否同步成功
public bool SyncSAPBOMByPartNo(string partNo, string version)
{
lock (_remotingProxy)
{
string SqlString = "exec sys_sync_bom_part @part_no, @version, ''";
Hashtable Params = new Hashtable(2);
Params.Add("@part_no", partNo);
Params.Add("@version", version);
_remotingProxy.ExecuteNonQuery(SqlString, Params);
return true;
}
}
}
}