using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ApServerProvider;
using System.Collections;
using System.Text;
using System.Data;
using DbCommon;
using Estsh.Web.Util;
/***************************************************************************************************
*
* 作者:王勇
*
* *************************************************************************************************/
namespace Estsh.Core.Repositories
{
///
/// 目视单打印模块的业务数据
///
public class VendorOrderPrintDal : BaseApp
{
public VendorOrderPrintDal(RemotingProxy remotingProxy)
: base(remotingProxy)
{
}
public Hashtable getStockVendorOrderPrintByPage(int PageSize, int PageIndex, string str)
{
lock (_remotingProxy)
{
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", " (SELECT DISTINCT EBELN,WERKS ,LIFNR ,vendor_name ,'' AS PART_QTY ,( SELECT [dbo].[sap2wms_ymd](zdate) ) + ' ' + ( SELECT [dbo].[sap2wms_hms](zcjsj)) AS [TIME] ,( CASE STAFLG WHEN '1' THEN '已发布'WHEN '2' THEN '已确认'WHEN '3' THEN '已备货' WHEN '4' THEN '已发货'WHEN '5' THEN '已收货'ELSE '' END ) AS STAFLG ,LGORT ,COMMENTS FROM dbo.SAP_DSPO AS a LEFT JOIN dbo.sys_part AS b ON a.MATNR = b.part_no LEFT JOIN dbo.sys_vendor AS c ON a.LIFNR = c.vendor_code "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", " * "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", " a.ebeln "));
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", str + " )AS a "));
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;
}
}
public Hashtable getStockOrderDetailByPage(int PageSize, int PageIndex, string str)
{
lock (_remotingProxy)
{
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", " dbo.WMS_DSPOD AS a LEFT JOIN dbo.sys_part AS b ON a.matnr=b.part_no "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", " * "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", " evrtp "));
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", str));
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;
}
}
///
/// 修改条码打印状态
///
///
///
//public bool changeOrderStatus(string ztxm)
//{
// lock (_remotingProxy)
// {
// StringBuilder SqlStringBuilder = new StringBuilder(1024);
// SqlStringBuilder.Append(" UPDATE dbo.WMS_DSPOD SET prnsta=CONVERT(INT,prnsta)+1 WHERE ztxm='" + ztxm + "'");
// return _remotingProxy.Exists(SqlStringBuilder.ToString());
// }
//}
public bool changeOrderStatus(string ebeln)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" UPDATE dbo.WMS_DSPOD SET prnsta=CONVERT(INT,prnsta)+1 WHERE ebeln='" + ebeln + "'");
return _remotingProxy.Exists(SqlStringBuilder.ToString());
}
}
///
/// 修改订单状态
///
///
///
public bool updateDspoSetStaflg(string PoNo_Data, string PartNo_Data, string TIME, string evrtp)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" UPDATE dbo.SAP_DSPO SET staflg=3 WHERE ebeln='" + PoNo_Data + "' and matnr='" + PartNo_Data + "' and zdate='" + TIME + "'");
return _remotingProxy.Exists(SqlStringBuilder.ToString());
}
}
///
/// 修改订单状态
///
///
///
public bool updateDspoSetStaflg(string EBELN)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
changeOrderStatus(EBELN);
SqlStringBuilder.Append(" UPDATE dbo.SAP_DSPO SET staflg=3 WHERE ebeln='" + EBELN + "'");
return _remotingProxy.Exists(SqlStringBuilder.ToString());
}
}
///
/// 获取工厂
///
///
public DataTable GetFactory()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" SELECT factory_code as [value],factory_name as [key] FROM dbo.sys_factory ");
return _remotingProxy.GetDataTable(SqlStringBuilder.ToString());
}
}
///
/// 获取供应商
///
///
public DataTable GetVendor()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" SELECT vendor_code as [value],vendor_name as [key] FROM dbo.sys_vendor ");
return _remotingProxy.GetDataTable(SqlStringBuilder.ToString());
}
}
public DataTable updatePrintData(string ebeln)
{
lock (_remotingProxy)
{
Hashtable result = new Hashtable();
string SqlStrings = "";
Hashtable Parameters = new Hashtable();
Hashtable Params = new Hashtable(1);
SqlStrings = " SELECT * FROM dbo.SAP_DSPO WHERE ebeln='" + ebeln + "' ORDER BY evrtp ";
Hashtable values = new Hashtable(2);
DataTable dt = new DataTable();
dt = _remotingProxy.GetDataTable(SqlStrings, Parameters);
//ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt);
//result.Add("dataList", dataList);
return dt;
}
}
///
/// 订单确认
///
///
public bool dingDanQueRen(string ebeln)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" UPDATE dbo.SAP_DSPO SET STAFLG=2 WHERE EBELN IN (" + ebeln + ") and STAFLG=1 ");
int count = _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString());
bool bool_1 = false;
if (count > 0)
{
bool_1 = true;
}
return bool_1;
}
}
///
/// 发运确认
///
///
public bool shipQueRen(string ebeln)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" UPDATE dbo.SAP_DSPO SET STAFLG=4 WHERE EBELN IN (" + ebeln + ") and STAFLG=3 ");
int count = _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString());
bool bool_1 = false;
if (count > 0)
{
bool_1 = true;
}
return bool_1;
}
}
///
/// 查询是否全部打印
///
///
public bool selectPrintState(string PoNo_Data, string PartNo_Data, string TIME, string evrtp)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" SELECT * FROM dbo.WMS_DSPOD WHERE ebeln= '" + PoNo_Data + "' AND matnr='" + PartNo_Data + "' AND evrtp='" + evrtp + "' AND prnsta=1 ");
bool result = _remotingProxy.Exists(SqlStringBuilder.ToString());
return result;
}
}
///
/// 条码明细
///
///
public DataTable GetCodeDetail(string orderNo)
{
lock (_remotingProxy)
{
string sql = @"SELECT f.factory_name, v.vendor_name, p.part_spec, p.option3,
a.EBELN + '_' + a.REVNO as order_no, a.EVRTP, a.LIFNR, a.MATNR, a.ZDATE, a.WERKS,
b.ZTXM, b.ZDEV_NUM, a.ZDEV_NUM, a.BSTRF,
CONVERT(VARCHAR(4),CONVERT(INT,SUBSTRING(b.ztxm,14,4)))+'/'+CONVERT(VARCHAR(4),CEILING(a.ZDEV_NUM/a.BSTRF)) as seq
FROM dbo.SAP_DSPO a
JOIN dbo.WMS_DSPOD b ON a.EBELN = b.EBELN
AND a.EVRTP = b.EVRTP
JOIN dbo.sys_factory f ON a.werks = f.factory_code
JOIN dbo.sys_part p ON a.matnr = p.part_no
JOIN dbo.sys_vendor v ON a.lifnr = v.vendor_code
WHERE a.EBELN = '" + orderNo + "'order by a.ZDATE,a.ebeln,b.ZTXM asc";
return _remotingProxy.GetDataTable(sql);
}
}
///
/// 获取导入数据最早时间
///
///
///
public DataTable GetStartDate(string orderNo)
{
lock (_remotingProxy)
{
string sql = @"select distinct dbo.sap2wms_ymd(a.zdate) as InDate from SAP_DSPO a
where a.ebeln='" + orderNo + "' order by dbo.sap2wms_ymd(a.zdate) asc";
return _remotingProxy.GetDataTable(sql);
}
}
///
/// 获取第一模板明细
///
///
///
public DataSet GetExpInfo(string orderNo)
{
lock (_remotingProxy)
{
string strSql = string.Empty;
strSql += @" select DISTINCT a.lifnr,a.recymd,sv.vendor_name,sv.vendor_tel,sv.vendor_fax,sv.vendor_mtel,sv.vendor_sale,
se.emp_name,a.lgort
from SAP_DSPO a
left join sys_vendor sv on a.lifnr=sv.vendor_code
left join sys_emp se on a.recusr=se.emp_id
where a.ebeln=@orderNo";
//strSql += @" select DISTINCT recymd from SAP_DSPO where ebeln=@orderNo";
strSql += @" select distinct a.matnr as PartNo,sp.part_spec as PartDesc,a.prnnum as Qty,dbo.sap2wms_ymd(a.zdate) as InDate
from SAP_DSPO a left join sys_part sp on sp.part_no=a.matnr where a.ebeln=@orderNo
order by a.matnr,dbo.sap2wms_ymd(a.zdate)";
strSql += @" select distinct a.matnr,sp.part_spec from SAP_DSPO a left join sys_part sp on sp.part_no=a.matnr where a.ebeln=@orderNo";
Hashtable param = new Hashtable(1);
param.Add("@orderNo", orderNo);
return _remotingProxy.GetDataSet(strSql, param);
}
}
///
///获取客户名称
///
///
///
public string GetFactoryName()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select DISTINCT a.factory_name from sys_factory a ");
object obj = _remotingProxy.GetScalar(SqlStringBuilder.ToString());
if (obj == null)
return string.Empty;
else
return obj.ToString();
}
}
///
/// 获取单号条码数量
///
///
///
public int GetWmsCodeCount(string orderNo, string partNo, string evrtp)
{
lock (_remotingProxy)
{
string sql = "select COUNT(1) from WMS_DSPOD where ebeln='" + orderNo + "' and matnr='" + partNo + "' and evrtp='" + evrtp + "'";
return Convert.ToInt32(_remotingProxy.GetScalar(sql));
}
}
///
/// 根据周计划单号获取箱条码信息
///
///
///
public DataTable GetCartonNo(string weekNo)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select DISTINCT a.ebeln AS order_no,a.lifnr AS vendor_code,d.vendor_name, ");
SqlStringBuilder.Append(" a.matnr AS part_no, f.part_spec,w.zdev_num, ");
SqlStringBuilder.Append(" dbo.sap2wms_ymd(a.zdate) AS zdate, ");
SqlStringBuilder.Append(" f.option3 ,w.ZTXM as carton_no,a.REVNO as version ,w.evrtp ");
SqlStringBuilder.Append("from WMS_DSPOD w ");
SqlStringBuilder.Append(" left join SAP_DSPO a on w.EBELN = a.ebeln and w.evrtp=a.evrtp ");
SqlStringBuilder.Append(" LEFT JOIN sys_emp b ON a.recusr = b.emp_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_vendor d ON a.lifnr = d.vendor_code ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part f ON a.matnr = f.part_no ");
SqlStringBuilder.Append("WHERE 1 = 1 ");
SqlStringBuilder.Append(" and a.ebeln = @weekno");
SqlStringBuilder.Append(" order by a.ebeln,zdate,w.ZTXM asc");
Hashtable ht = new Hashtable();
ht.Add("@weekno", weekNo);
return _remotingProxy.GetDataTable(SqlStringBuilder.ToString(), ht);
}
}
}
}