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 GetList(AjaxErpOutList Json, ref PageInfo page) { try { IList list = new List(); StringBuilder strSql = new StringBuilder(); List para = new List(); 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.DataTableToModel(dt); return list; } catch { throw new NotImplementedException(); } } public ErpOut GetModel(string OrdNo, ref IList 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.ReaderToModel(dt); IDALErpOutDetail erpInDetail = new DALErpOutDetail(); erpMats = erpInDetail.GetList(OrdNo); return us; } catch { throw new NotImplementedException(); } } public bool Add(ErpOut model, List 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 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 EMats) { bool result = false; try { //IList ls = new List(); 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 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 GetListZ(AjaxErpOutInfo Json, ref PageInfo page) { try { IList list = new List(); StringBuilder strSql = new StringBuilder(); List para = new List(); 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.DataTableToModel(dt); return list; } catch { throw new NotImplementedException(); } } } }