using BLL.DAL;
|
using Common;
|
using Model;
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace BLL
|
{
|
public class DALPalletOut
|
{
|
public IList<ErpOut> GetList(AjaxErpOutList Json, ref PageInfo page)
|
{
|
try
|
{
|
IList<ErpOut> list = new List<ErpOut>();
|
StringBuilder strSql = new StringBuilder();
|
List<SqlParam> para = new List<SqlParam>();
|
strSql.Append("Select DISTINCT * from view_ErpOut where OrdType=2 ");
|
//strSql.Append("Select * from view_ErpOut where 1 = 1 ");
|
if (!string.IsNullOrEmpty(Json.OrdNo))
|
{
|
strSql.Append(" and OrdNo like '%' + @OrdNo + '%' ");
|
para.Add(new SqlParam("@OrdNo", Json.OrdNo));
|
}
|
if (!string.IsNullOrEmpty(Json.Statu))
|
{
|
strSql.Append(" and StatuCode like '%' + @Statu + '%' ");
|
para.Add(new SqlParam("@Statu", Json.Statu));
|
}
|
|
if (Json.BeginTime != DateTime.MinValue && Json.BeginTime != null && Json.BeginTime != DateTime.MaxValue)
|
{
|
strSql.Append(" and CreateTime >= @CreateTime1 ");
|
para.Add(new SqlParam("@CreateTime1", Convert.ToDateTime(Json.BeginTime)));
|
}
|
|
if (Json.EndTime != DateTime.MinValue && Json.EndTime != null && Json.EndTime != DateTime.MaxValue)
|
{
|
|
strSql.Append(" and CreateTime <= @CreateTime2 ");
|
para.Add(new SqlParam("@CreateTime2", Convert.ToDateTime(Json.EndTime).ToShortDateString() + " 23:59:59.999"));
|
}
|
|
SqlParam[] param = null;
|
if (para != null)
|
param = para.ToArray();
|
|
DataTable dt = DataFactory.SqlDataBase().GetPageList(strSql.ToString(), param, "CreateTime", "desc", ref page);
|
list = ModelConvertHelper<ErpOut>.DataTableToModel(dt);
|
|
return list;
|
}
|
catch
|
{
|
throw new NotImplementedException();
|
}
|
|
}
|
public ErpOut GetModel(string OrdNo, ref IList<StorePalno> erpMats)
|
{
|
try
|
{
|
|
|
ErpOut us = null;
|
StringBuilder strSql = new StringBuilder();
|
strSql.Append(" Select * from View_ErpOut where ");
|
strSql.Append("OrdNo = @OrdNo ");
|
//strSql.Append("and IsDel != 1");
|
SqlParam[] para = new SqlParam[]
|
{
|
new SqlParam("@OrdNo", OrdNo),
|
};
|
|
IDataReader dt = DataFactory.SqlDataBase().GetDataReaderBySQL(strSql, para);
|
|
us = ModelConvertHelper<ErpOut>.ReaderToModel(dt);
|
|
IDALErpOutDetail erpInDetail = new DALErpOutDetail();
|
erpMats = erpInDetail.GetList(OrdNo);
|
|
|
return us;
|
}
|
catch
|
{
|
throw new NotImplementedException();
|
}
|
}
|
public bool Add(ErpOut model, List<StorePalno> Mats)
|
{
|
bool result = false;
|
try
|
{
|
Hashtable ht1 = new Hashtable();
|
Hashtable rs = new Hashtable();
|
ht1["sCode"] = "TPNO";
|
ht1["OUT_sResult"] = "";
|
|
|
int num = DataFactory.SqlDataBase().ExecuteByProcReturn("GetSerialNo", ht1, ref rs);
|
|
if (num == 0) return result;
|
model.OrdNo = rs["OUT_sResult"].ToString();
|
|
foreach (StorePalno erp in Mats)
|
{
|
erp.OrdNo = model.OrdNo;
|
//erp.CQuant = "0";
|
}
|
DALPltOutDetail dALErp = new DALPltOutDetail();
|
bool value = dALErp.Add(Mats);
|
|
if (!value) return result;
|
Hashtable ht = new Hashtable();
|
|
ht["OrdNo"] = "'" + model.OrdNo + "'";
|
//ht["OrdType"] = string.IsNullOrEmpty(model.OrdType) ? "''" : "( select top 1 OrdTypeNo from OrdType where OrdTypeName = '" + model.OrdType + "')";
|
//ht["CusNum"] = "'" + model.CusNum + "'";
|
ht["CreateUser"] = "'" + model.CreateUser + "'";
|
ht["Demo"] = "'" + model.Demo + "'";
|
ht["IsDel"] = 0;
|
ht["OrdType"] = "2";
|
int _ret = DataFactory.SqlDataBase().InsertByHashtableNullParam("Erp_Out", ht);
|
|
if (_ret == 1) result = true;
|
|
return result;
|
}
|
catch
|
{
|
return result;
|
}
|
}
|
|
public bool AddZK(ErpOutZ model, List<ErpOutZ> models)
|
{
|
bool result = false;
|
try
|
{
|
string OrdNo = "";
|
string Demo = "";
|
Hashtable ht1 = new Hashtable();
|
Hashtable rs = new Hashtable();
|
ht1["sCode"] = "TPNO";
|
ht1["OUT_sResult"] = "";
|
int num = DataFactory.SqlDataBase().ExecuteByProcReturn("GetSerialNo", ht1, ref rs);
|
|
if (num == 0)
|
return result;
|
|
OrdNo = rs["OUT_sResult"].ToString();
|
|
for (int i = 0; i < models.Count; i++)
|
{
|
models[i].OrdNo = OrdNo;
|
if (!string.IsNullOrEmpty(models[i].Demo))
|
{
|
Demo = models[i].Demo;
|
}
|
}
|
|
bool value = AddDetailZ(models);
|
|
if (!value) return result;
|
Hashtable ht = new Hashtable();
|
|
ht["OrdNo"] = "'" + OrdNo + "'";
|
ht["Statu"] = "'01'";
|
//ht["OrdType"] = string.IsNullOrEmpty(model.OrdType) ? "''" : "( select top 1 OrdTypeNo from OrdType where OrdTypeName = '" + model.OrdType + "')";
|
//ht["CusNum"] = "'" + model.CusNum + "'";
|
ht["CreateUser"] = "'" + models[0].CreateUser + "'";
|
ht["Demo"] = "'" + Demo + "'";
|
ht["IsDel"] = 0;
|
ht["OrdType"] = "2";
|
int _ret = DataFactory.SqlDataBase().InsertByHashtableNullParam("Erp_Out", ht);
|
|
if (_ret == 1) result = true;
|
|
return result;
|
}
|
catch
|
{
|
return result;
|
}
|
}
|
|
public bool AddDetailZ(List<ErpOutZ> EMats)
|
{
|
bool result = false;
|
try
|
{
|
//IList<ErpMat> ls = new List<ErpMat>();
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append(@"
|
INSERT INTO dbo.ErpOutDetail
|
(
|
OrdNo,
|
StoreGuid,
|
DepartGuid,
|
CurQuant,
|
Statu,
|
PickerUser,
|
IsDel,
|
Demo,
|
BatchDemo,
|
CreateTime,
|
CreateUser
|
)
|
VALUES");
|
|
for (int i = 0; i < EMats.Count; i++)
|
{
|
strSql.Append($@"
|
( '{EMats[i].OrdNo}',
|
'{EMats[i].Guid}',
|
'{EMats[i].DepartGuid}',
|
'{EMats[i].Quant}',
|
'01',
|
'{EMats[i].PickerUser}',
|
0,
|
'',
|
'{EMats[i].Demo}',
|
GETDATE(),
|
'{EMats[i].CreateUser}'
|
),");
|
|
//lijiangang新增:更改货位状态为待出库
|
StringBuilder Sql = new StringBuilder();
|
Sql.Append("update DepotsLocation set TurnoverDemand='04' where LocationCode='" + EMats[i].LocationCode + "'");
|
DataFactory.SqlDataBase().ExecuteBySql(Sql);
|
}
|
strSql.Remove(strSql.Length - 1, 1);
|
int dt = DataFactory.SqlDataBase().ExecuteBySql(strSql);
|
|
if (EMats.Count == dt) result = true;
|
|
return result;
|
}
|
catch
|
{
|
return result;
|
}
|
}
|
|
public bool Update(ErpOut model, List<StorePalno> Mats)
|
{
|
bool result = false;
|
try
|
{
|
foreach (StorePalno erp in Mats)
|
{
|
erp.OrdNo = model.OrdNo;
|
}
|
DALPltOutDetail dALErp = new DALPltOutDetail();
|
if (!dALErp.Update(Mats)) return false;
|
Hashtable ht = new Hashtable();
|
ht["Demo"] = string.IsNullOrEmpty(model.Demo) ? "''" : "'" + model.Demo + "'";
|
|
string OrdNo = "'" + model.OrdNo + "'";
|
|
int _ret = DataFactory.SqlDataBase().UpdateByHashtable("Erp_Out", nameof(model.OrdNo), OrdNo, ht);
|
|
if (_ret == 1) result = true;
|
|
return result;
|
|
}
|
catch
|
{
|
return result;
|
}
|
}
|
public bool BatchDelete(string[] OrdNo)
|
{
|
bool result = false;
|
try
|
{
|
Hashtable ht = new Hashtable();
|
ht["Statu"] = "01";
|
|
int dt = DataFactory.SqlDataBase().IsExist("Erp_Out", "OrdNo", OrdNo, ht);
|
if (dt >= OrdNo.Length)
|
{
|
int _ret = DataFactory.SqlDataBase().BatchDeleteData("Erp_Out", "OrdNo", OrdNo);
|
if (_ret >= OrdNo.Length)
|
{
|
int dt1 = DataFactory.SqlDataBase().IsExist("ErpOutDetail", "OrdNo", OrdNo);
|
if (dt1 > 0)
|
{
|
//ljg新增:删除出库单数据更改货位状态为合格
|
StringBuilder hql = new StringBuilder();
|
hql.Append("select * from ErpOutDetail where OrdNo='" + OrdNo[0] + "'");
|
DataTable dep = DataFactory.SqlDataBase().GetDataTableBySQL(hql);
|
if (dep.Rows.Count > 0)
|
{
|
for (int i = 0; i < dep.Rows.Count; i++)
|
{
|
StringBuilder Sql = new StringBuilder();
|
Sql.Append("update DepotsLocation set TurnoverDemand='02' where LocationCode='" + dep.Rows[i]["Addre"].ToString() + "'");
|
DataFactory.SqlDataBase().ExecuteBySql(Sql);
|
}
|
}
|
|
int _ret1 = DataFactory.SqlDataBase().BatchDeleteData("ErpOutDetail", "OrdNo", OrdNo);
|
if (_ret1 >= dt1) result = true;
|
}
|
}
|
}
|
return result;
|
}
|
catch
|
{
|
return result;
|
}
|
}
|
|
public bool BatchDeleteZ(string[] OrdNo)
|
{
|
bool result = false;
|
try
|
{
|
Hashtable ht = new Hashtable();
|
ht["Statu"] = "01";
|
|
int dt = DataFactory.SqlDataBase().IsExist("Erp_Out", "OrdNo", OrdNo, ht);
|
if (dt >= OrdNo.Length)
|
{
|
//int _ret = DataFactory.SqlDataBase().BatchDeleteData("Erp_Out", "OrdNo", OrdNo);
|
StringBuilder sbStr = new StringBuilder();
|
sbStr.Append("Update Erp_Out set IsDel = '1' where OrdNo='" + OrdNo[0] + "';");
|
int _ret = DataFactory.SqlDataBase().ExecuteBySql(sbStr);
|
if (_ret >= OrdNo.Length)
|
{
|
int dt1 = DataFactory.SqlDataBase().IsExist("ErpOutDetail", "OrdNo", OrdNo);
|
if (dt1 > 0)
|
{
|
//ljg新增:删除出库单数据更改货位状态为合格
|
StringBuilder hql = new StringBuilder();
|
hql.Append("select a1.OrdNo,a1.StoreGuid,a2.LocationCode,a2.Palno from ErpOutDetail as a1 left join log_Store as a2 on a1.StoreGuid = a2.Guid where OrdNo='" + OrdNo[0] + "'");
|
DataTable dep = DataFactory.SqlDataBase().GetDataTableBySQL(hql);
|
if (dep.Rows.Count > 0)
|
{
|
for (int i = 0; i < dep.Rows.Count; i++)
|
{
|
StringBuilder Sql = new StringBuilder();
|
Sql.Append("update DepotsLocation set TurnoverDemand='02' where LocationCode='" + dep.Rows[i]["LocationCode"].ToString() + "'");
|
DataFactory.SqlDataBase().ExecuteBySql(Sql);
|
}
|
}
|
|
//int _ret1 = DataFactory.SqlDataBase().BatchDeleteData("ErpOutDetail", "OrdNo", OrdNo);
|
StringBuilder sbStr2 = new StringBuilder();
|
sbStr.Append("Update ErpOutDetail set IsDel = '1' where OrdNo='" + OrdNo[0] + "';");
|
int _ret1 = DataFactory.SqlDataBase().ExecuteBySql(sbStr);
|
if (_ret1 >= dt1) result = true;
|
}
|
}
|
}
|
return result;
|
}
|
catch
|
{
|
return result;
|
}
|
}
|
|
public IList<Storekxx> GetListZ(AjaxErpOutInfo Json, ref PageInfo page)
|
{
|
try
|
{
|
|
IList<Storekxx> list = new List<Storekxx>();
|
StringBuilder strSql = new StringBuilder();
|
List<SqlParam> para = new List<SqlParam>();
|
strSql.Append("select t1.OrdNo,t2.LocationCode,t2.Palno,t1.CurQuant,t2.Quant,t1.CreateTime from ErpOutDetail as t1 left join log_Store t2 on t1.StoreGuid = t2.Guid ");
|
|
if (Json.OrdNo != null && Json.OrdNo != "")
|
{
|
if (para.Count < 1) strSql.Append("where "); else strSql.Append(" and ");
|
strSql.Append("OrdNo = @OrdNo ");
|
para.Add(new SqlParam("@OrdNo", Json.OrdNo));
|
}
|
|
|
SqlParam[] param = null;
|
if (para != null)
|
param = para.ToArray();
|
|
DataTable dt = DataFactory.SqlDataBase().GetPageList(strSql.ToString(), param, "CreateTime", "ASC", ref page);
|
list = ModelConvertHelper<Storekxx>.DataTableToModel(dt);
|
|
return list;
|
}
|
catch
|
{
|
throw new NotImplementedException();
|
}
|
|
}
|
}
|
}
|