Browse Source

增补及页面调整

SCP_CYJ
钱峰 2 days ago
parent
commit
9a32e11a1c
  1. 4
      Controller/SCP_ASK_CONTROLLER.cs
  2. 25
      Controller/SCP_ASN_CONTROLLER.cs
  3. 503
      Controller/SCP_INVOICE_CONTROLLER.cs
  4. 30
      Controller/SCP_PO_CONTROLLER.cs
  5. 3
      Models/CK.SCP.Models.csproj
  6. 2
      Models/ScpEntities.cs
  7. 15
      Models/ScpEntity/ExcelExportEnttity/SCP_CHECKPARTANDVENDER_EXPORT.cs
  8. 18
      Models/ScpEntity/TA_CHECKPARTANDVEND.cs
  9. 21
      Models/ScpEntity/V_TA_CheckPartsAndVend.cs
  10. 16
      SCP/SCP.csproj
  11. 82
      SCP/Views/BasicData/SCP_CheckPartsAndVend.aspx
  12. 177
      SCP/Views/BasicData/SCP_CheckPartsAndVend.aspx.cs
  13. 215
      SCP/Views/BasicData/SCP_CheckPartsAndVend.aspx.designer.cs
  14. 38
      SCP/Views/BasicData/SCP_CheckPartsAndVend_EDIT.aspx
  15. 74
      SCP/Views/BasicData/SCP_CheckPartsAndVend_EDIT.aspx.cs
  16. 89
      SCP/Views/BasicData/SCP_CheckPartsAndVend_EDIT.aspx.designer.cs
  17. 2
      SCP/Views/PlanData/SCP_ASK.aspx
  18. 2
      SCP/Views/PlanData/SCP_ASK.aspx.cs
  19. 16
      SCP/Views/富维冲压件/SCP_MAXPO_INCOMPLETE.aspx
  20. 4
      SCP/Views/富维冲压件/SCP_MAXPO_INCOMPLETE.aspx.cs
  21. 7
      SCP/Views/富维冲压件/SCP_MAXPO_INCOMPLETE_DETAIL.aspx
  22. 2
      SCP/Views/富维冲压件/SCP_PO_MAX_DETAIL.aspx
  23. 6
      SCP/Views/富维冲压件/SCP_PO_MAX_DETAIL.aspx.cs
  24. 3
      UniApiGroup/Controller/OdbcApiQadController.cs
  25. 3
      UniApiGroup/Controller/OdbcApiWmsController.cs

4
Controller/SCP_ASK_CONTROLLER.cs

@ -1918,12 +1918,14 @@ namespace CK.SCP.Controller
{
_tDetail.VendBatch = itm.VendBatch;
}
if (_t.PoBillNum.Length>=5)
{
if (_t.PoBillNum.Substring(0, 5) == "CYD03" && _t.Site == "W21")
{
var podetail = db.TB_PO_DETAIL.FirstOrDefault(t => t.PoBillNum == _t.PoBillNum && t.PartCode == itm.PartCode && t.PoLine == itm.PoLine);
_tDetail.VendBatch = podetail.SubSite + "," + podetail.Extend3 + "," + itm.VendBatch + "#";
}
}
_tDetail.UpdateUser = itm.VendBatch;
_tDetail.PackQty = itm.PackQty == 0 ? 1 : itm.PackQty;
_tDetail.PartCode = itm.PartCode;

25
Controller/SCP_ASN_CONTROLLER.cs

@ -3036,25 +3036,25 @@ namespace CK.SCP.Controller
{
p_entitys.ForEach(p =>
{
var _maxpolist = db.TB_MAXPO_DETAIL.Where(t => t.PartCode == p.PartCode && t.VendId == p.Extend1&&t.AsnQty>0 && !t.IsDeleted).ToList().OrderBy(t=>t.ContractMonth);
var _maxpolist = db.TB_MAXPO_DETAIL.Where(t => t.PartCode == p.PartCode && t.VendId == p.Extend1&&t.SurplusQty>0 && !t.IsDeleted).ToList().OrderBy(t=>t.ContractMonth);
decimal sum = 0;
if (_maxpolist.Count() > 0)
{
sum = _maxpolist.Sum(t => t.AsnQty);
sum = _maxpolist.Sum(t => t.SurplusQty);
}
decimal Qtyy = p.Qty;
if(sum< Qtyy)
{
_ret.MessageList.Add(string.Format("确认发货失败,零件号{0}大订单剩余数量不足,请联系业务人员维护", p.PartCode));
_ret.MessageList.Add(string.Format("确认发货失败,零件号{0}大订单剩余数量不足,剩余{1},请联系业务人员维护", p.PartCode,sum));
}
else
{
foreach (var _maxpo in _maxpolist)
{
if (_maxpo.AsnQty > Qtyy)
if (_maxpo.SurplusQty > Qtyy)
{
_maxpo.AsnQty = _maxpo.AsnQty - Qtyy;
TB_MAXPO_CONSUME consumne = new TB_MAXPO_CONSUME();
consumne.PoBillNum = _maxpo.PoBillNum;
consumne.BillNum = p.AsnBillNum;
@ -3064,11 +3064,9 @@ namespace CK.SCP.Controller
consumne.ShipTime = _maxpo.CreateTime;
consumlist.Add(consumne);
db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo);
break;
}
else if (_maxpo.AsnQty == Qtyy)
else if (_maxpo.SurplusQty == Qtyy)
{
TB_MAXPO_CONSUME consumne = new TB_MAXPO_CONSUME();
consumne.PoBillNum = _maxpo.PoBillNum;
@ -3078,26 +3076,21 @@ namespace CK.SCP.Controller
consumne.PartCode = _maxpo.PartCode;
consumne.ShipTime = _maxpo.CreateTime;
consumlist.Add(consumne);
_maxpo.AsnQty = 0;
db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo);
break;
}
else if (_maxpo.AsnQty < Qtyy)
else if (_maxpo.SurplusQty < Qtyy)
{
TB_MAXPO_CONSUME consumne = new TB_MAXPO_CONSUME();
consumne.PoBillNum = _maxpo.PoBillNum;
consumne.BillNum = p.AsnBillNum;
consumne.PoQty = _maxpo.AsnQty;
consumne.PoQty = _maxpo.SurplusQty;
consumne.VendId = _maxpo.VendId;
consumne.PartCode = _maxpo.PartCode;
consumne.ShipTime = _maxpo.CreateTime;
Qtyy = Qtyy - _maxpo.AsnQty;
Qtyy = Qtyy - _maxpo.SurplusQty;
consumlist.Add(consumne);
_maxpo.AsnQty = 0;
db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo);
}
}

503
Controller/SCP_INVOICE_CONTROLLER.cs

@ -12,6 +12,7 @@ using CK.SCP.Models.ScpEntity;
using CK.SCP.Models.ScpEntity.ExcelImportEntity;
using CK.SCP.Utils;
using System.Data.Entity.Core;
using CK.SCP.Models.ScpEntity.ExcelExportEnttity;
namespace CK.SCP.Controller
{
@ -1310,7 +1311,8 @@ namespace CK.SCP.Controller
invoice.BlancePrice = p_entity.BlancePrice;
db.TB_INVOICE.AddOrUpdate(invoice);
p_list.ForEach(p => {
p_list.ForEach(p =>
{
TB_INVOICE_DETAIL invocieDetail = new TB_INVOICE_DETAIL();
invocieDetail.Site = invoice.Site;
@ -1458,7 +1460,8 @@ namespace CK.SCP.Controller
invoice.Tax = p_entity.Tax;
invoice.IsRed = false;
db.TB_INVOICE.AddOrUpdate(invoice);
p_list.ForEach(p => {
p_list.ForEach(p =>
{
TB_INVOICE_DETAIL invocieDetail = new TB_INVOICE_DETAIL();
invocieDetail.InvcBillNum = invoice.InvcBillNum;
@ -1732,7 +1735,8 @@ namespace CK.SCP.Controller
}
var _list = db.TB_INVOICE_DETAIL.Where(p => p.InvcBillNum == p_billno).ToList();
_list.ForEach(p => {
_list.ForEach(p =>
{
p.State = (int)p_state;
});
@ -1745,7 +1749,8 @@ namespace CK.SCP.Controller
_entity.IsDeleted = true;
_list = db.TB_INVOICE_DETAIL.Where(p => p.InvcBillNum == p_billno).ToList();
_list.ForEach(p => {
_list.ForEach(p =>
{
p.State = (int)p_state;
p.IsDeleted = true;
});
@ -1994,7 +1999,8 @@ namespace CK.SCP.Controller
}
var _list = db.TB_INVOICE_DETAIL.Where(p => p.InvcBillNum == invoice.InvcBillNum).ToList();
_list.ForEach(p => {
_list.ForEach(p =>
{
p.State = (int)p_state;
});
@ -2007,7 +2013,8 @@ namespace CK.SCP.Controller
_entity.IsDeleted = true;
_list = db.TB_INVOICE_DETAIL.Where(p => p.InvcBillNum == invoice.InvcBillNum).ToList();
_list.ForEach(p => {
_list.ForEach(p =>
{
p.State = (int)p_state;
p.IsDeleted = true;
if (!string.IsNullOrEmpty(p_flag))//修改分摊数量
@ -2210,7 +2217,8 @@ namespace CK.SCP.Controller
_bill.UpdateTime = p_invoice.UpdateTime;
}
db.TB_INVOICE.AddOrUpdate(p => p.InvcBillNum, _bill);
p_list.ForEach(p => {
p_list.ForEach(p =>
{
var _detail = db.TB_INVOICE_DETAIL.Where(itm => itm.UID == p.UID).FirstOrDefault();
var _qty = _detail.Qty - p.Qty;
_detail.State = (int)p.State;
@ -2361,7 +2369,8 @@ namespace CK.SCP.Controller
_bill.Remark = p_invoice.Remark;
_bill.State = (int)p_invoice.State;
db.TB_INVOICE.AddOrUpdate(p => p.UID, _bill);
p_list.ForEach(p => {
p_list.ForEach(p =>
{
var _detail = db.TB_INVOICE_DETAIL.Where(itm => itm.UID == p.UID).FirstOrDefault();
_detail.State = (int)p.State;
_detail.Qty = p.Qty;
@ -3407,5 +3416,483 @@ namespace CK.SCP.Controller
}
return _ret;
}
/// <summary>
/// 物料与供应商对应关系表
/// </summary>
/// <param name="p_entity"></param>
/// <param name="p_action"></param>
public static void Get_V_TA_CheckPartsAndVend(V_TA_CheckPartsAndVend p_entity, Action<ResultObject<IQueryable<V_TA_CheckPartsAndVend>>> p_action)
{
ResultObject<IQueryable<V_TA_CheckPartsAndVend>> _ret = new ResultObject<IQueryable<V_TA_CheckPartsAndVend>>();
try
{
using (ScpEntities db = EntitiesFactory.CreateScpInstance())
{
IQueryable<V_TA_CheckPartsAndVend> q = db.V_TA_CheckPartsAndVend;
if (!string.IsNullOrEmpty(p_entity.PartCode))
{
q = q.Where(p => p.PartCode == p_entity.PartCode);
}
if (!string.IsNullOrEmpty(p_entity.VendID))
{
q = q.Where(p => p.VendID == p_entity.VendID);
}
_ret.State = ReturnStatus.Succeed;
_ret.Result = q;
p_action(_ret);
}
}
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常
{
var sb = new StringBuilder();
foreach (var error in dbEx.EntityValidationErrors.ToList())
{
error.ValidationErrors.ToList().ForEach(i =>
{
sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage);
});
}
_ret.State = ReturnStatus.Failed;
_ret.ErrorList.Add(dbEx);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TA_CheckPartsAndVend", sb.ToString());
throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString());
}
catch (OptimisticConcurrencyException ex)//并发冲突异常
{
_ret.State = ReturnStatus.Failed;
_ret.ErrorList.Add(ex);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TA_CheckPartsAndVend", ex.ToString());
throw new ScpException(ResultCode.Exception, "9999", ex.ToString());
}
catch (ScpException ex)
{
_ret.State = ReturnStatus.Failed;
_ret.ErrorList.Add(ex);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TA_CheckPartsAndVend", ex.ToString());
if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException))
{
var inner = (UpdateException)ex.InnerException;
throw new ScpException(ResultCode.Exception, "0000", ex.ToString());
}
else
{
if (ex.InnerException != null) throw ex.InnerException;
}
}
catch (Exception e)
{
_ret.State = ReturnStatus.Failed;
_ret.ErrorList.Add(e);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TA_CheckPartsAndVend", e.Message);
throw e;
}
}
/// <summary>
/// 导入检查
/// </summary>
/// <param name="db"></param>
/// <param name="p_excel"></param>
/// <param name="site"></param>
/// <returns></returns>
private static List<string> CheckExcelMode_VenderPart(ScpEntities db, SCP_CHECKPARTANDVENDER_EXPORT p_excel, string site)
{
List<string> ErrorList = new List<string>();
if (!string.IsNullOrEmpty(p_excel.))
{
int count = db.TA_PART.Count(p => p.PartCode == p_excel..Trim());
if (count == 0)
{
ErrorList.Add(string.Format("零件编号【{0}】不存在!", p_excel.));
}
}
if (!string.IsNullOrEmpty(p_excel.))
{
int count1 = db.TA_VENDER.Count(p => p.VendId == p_excel..Trim());
if (count1 == 0)
{
ErrorList.Add(string.Format("供应商【{0}】不存在!", p_excel.));
}
}
else if (string.IsNullOrEmpty(p_excel.) || string.IsNullOrEmpty(p_excel.))
{
ErrorList.Add(string.Format("零件号码【{0}】有填写为空!", p_excel.));
}
return ErrorList;
}
/// <summary>
/// 导入零件供应商对应关系表
/// </summary>
/// <param name="p_order_list"></param>
/// <param name="site"></param>
/// <param name="p_creator"></param>
/// <returns></returns>
public static ResultObject<bool> EXCEL_VENDER_PART(List<SCP_CHECKPARTANDVENDER_EXPORT> p_order_list, string site, string p_creator)
{
ResultObject<bool> _ret = new ResultObject<bool>();
try
{
using (ScpEntities db = EntitiesFactory.CreateScpInstance())
{
int number = 1;
List<string> lineError = new List<string>();
List<string> ErrorList = new List<string>();
var _lst = p_order_list;
_lst.ForEach(p =>
{
var _count = _lst.Count(itm => itm. == p. && itm. == p.);
if (_count > 1)
{
lineError.Add(string.Format("零件号码有重", p.));
ErrorList = lineError;
}
});
_lst.ForEach(p =>
{
var _ls = CheckExcelMode_VenderPart(db, p, site);
if (_ls.Count > 0)
{
lineError.Add(number.ToString());
ErrorList.Add(string.Join("<br>", _ls.ToArray()));
}
number++;
});
if (lineError.Count > 0)
{
_ret.State = ReturnStatus.Failed;
_ret.MessageList.AddRange(ErrorList);
_ret.Result = false;
}
else
{
_lst.ForEach(p =>
{
var _partdes = db.TA_CHECKPARTANDVEND.Count(t => t.PartCode == p..Trim() && t.VendID == p..Trim());
if (_partdes == 0)
{
TA_CHECKPARTANDVEND _entity = new TA_CHECKPARTANDVEND();
_entity.PartCode = p..Trim();
_entity.VendID = p..Trim();
_entity.Model = p..Trim();
db.TA_CHECKPARTANDVEND.Add(_entity);
}
else
{
var _partde = db.TA_CHECKPARTANDVEND.SingleOrDefault(t => t.PartCode == p..Trim() && t.VendID == p..Trim());
_partde.PartCode = p..Trim();
_partde.VendID = p..Trim();
_partde.Model = p..Trim();
db.TA_CHECKPARTANDVEND.AddOrUpdate(_partde);
}
});
if (_ret.MessageList.Count == 0)
{
int state = db.SaveChanges();
if (state != -1)
{
_ret.State = ReturnStatus.Succeed;
_ret.Result = true;
}
else
{
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
}
}
else
{
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
}
}
}
}
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常
{
var sb = new StringBuilder();
foreach (var error in dbEx.EntityValidationErrors.ToList())
{
error.ValidationErrors.ToList().ForEach(i =>
{
sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage);
});
}
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
_ret.ErrorList.Add(dbEx);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "EXCEL_VENDER_PART", sb.ToString());
throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString());
}
catch (OptimisticConcurrencyException ex)//并发冲突异常
{
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
_ret.ErrorList.Add(ex);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "EXCEL_VENDER_PART", ex.ToString());
throw new ScpException(ResultCode.Exception, "9999", ex.ToString());
}
catch (ScpException ex)
{
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
_ret.ErrorList.Add(ex);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "EXCEL_VENDER_PART", ex.ToString());
if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException))
{
var inner = (UpdateException)ex.InnerException;
throw new ScpException(ResultCode.Exception, "0000", ex.ToString());
}
else
{
if (ex.InnerException != null) throw ex.InnerException;
}
}
catch (Exception e)
{
_ret.State = ReturnStatus.Failed;
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "EXCEL_VENDER_PART", e.Message);
_ret.Result = false;
_ret.ErrorList.Add(e);
}
return _ret;
}
/// <summary>
/// 删除
/// </summary>
/// <param name="_ls"></param>
/// <param name="_ls1"></param>
/// <returns></returns>
public static ResultObject<bool> Del_VENDER_PART(string partcode, string vendid)
{
ResultObject<bool> _ret = new ResultObject<bool>();
try
{
using (ScpEntities db = EntitiesFactory.CreateScpInstance())
{
var _entity = db.TA_CHECKPARTANDVEND.FirstOrDefault(p => p.VendID == vendid && p.PartCode == partcode);
if (_entity != null)
{
db.TA_CHECKPARTANDVEND.Remove(_entity);
if (db.SaveChanges() != -1)
{
_ret.State = ReturnStatus.Succeed;
_ret.Result = true;
}
else
{
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
}
}
else
{
_ret.State = ReturnStatus.Failed;
_ret.Message = "请刷新后重新选择数据再进行删除!";
_ret.Result = false;
}
}
}
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常
{
var sb = new StringBuilder();
foreach (var error in dbEx.EntityValidationErrors.ToList())
{
error.ValidationErrors.ToList().ForEach(i =>
{
sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage);
});
}
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
_ret.ErrorList.Add(dbEx);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INFO_CONTROLLER), "Del_VENDER_PART", sb.ToString());
throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString());
}
catch (OptimisticConcurrencyException ex)//并发冲突异常
{
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
_ret.ErrorList.Add(ex);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INFO_CONTROLLER), "Del_VENDER_PART", ex.ToString());
throw new ScpException(ResultCode.Exception, "9999", ex.ToString());
}
catch (ScpException ex)
{
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
_ret.ErrorList.Add(ex);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INFO_CONTROLLER), "Del_VENDER_PART", ex.ToString());
if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException))
{
var inner = (UpdateException)ex.InnerException;
throw new ScpException(ResultCode.Exception, "0000", ex.ToString());
}
else
{
if (ex.InnerException != null) throw ex.InnerException;
}
}
catch (Exception e)
{
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
_ret.ErrorList.Add(e);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INFO_CONTROLLER), "Del_VENDER_PART", e.Message);
throw e;
}
return _ret;
}
/// <summary>
/// 保存零件供应商对应关系表
/// </summary>
/// <param name="p_entitys"></param>
/// <returns></returns>
public static ResultObject<bool> Save_TA_CHECKPARTANDVEND(TA_CHECKPARTANDVEND p_entitys)
{
ResultObject<bool> _ret = new ResultObject<bool>();
int pcount = 0;
int vcount = 0;
try
{
using (ScpEntities db = EntitiesFactory.CreateScpInstance())
{
var appliance = db.TA_CHECKPARTANDVEND.FirstOrDefault(p => p.PartCode == p_entitys.PartCode && p.VendID == p_entitys.VendID);
pcount = db.TA_PART.Count(q => q.PartCode == p_entitys.PartCode);
if (pcount == 0)
{
_ret.State = ReturnStatus.Failed;
_ret.Message = "未找到零件号:" + p_entitys.PartCode;
_ret.Result = false;
return _ret;
}
vcount = db.TA_VENDER.Count(q => q.VendId == p_entitys.VendID);
if (vcount == 0)
{
_ret.State = ReturnStatus.Failed;
_ret.Message = "未找到供应商:" + p_entitys.VendID;
_ret.Result = false;
return _ret;
}
if (appliance == null)
{
TA_CHECKPARTANDVEND applianc = new TA_CHECKPARTANDVEND();
applianc.PartCode = p_entitys.PartCode;
applianc.VendID = p_entitys.VendID;
applianc.Model = p_entitys.Model;
db.TA_CHECKPARTANDVEND.AddOrUpdate(applianc);
}
else
{
appliance.Model = p_entitys.Model;
db.TA_CHECKPARTANDVEND.AddOrUpdate(appliance);
}
if (db.SaveChanges() != -1)
{
_ret.State = ReturnStatus.Succeed;
_ret.Result = true;
}
else
{
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
}
}
}
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常
{
var sb = new StringBuilder();
foreach (var error in dbEx.EntityValidationErrors.ToList())
{
error.ValidationErrors.ToList().ForEach(i =>
{
sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage);
});
}
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
_ret.ErrorList.Add(dbEx);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Save_TA_LANGUAGE", sb.ToString());
throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString());
}
catch (OptimisticConcurrencyException ex)//并发冲突异常
{
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
_ret.ErrorList.Add(ex);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Save_TA_LANGUAGE", ex.ToString());
throw new ScpException(ResultCode.Exception, "9999", ex.ToString());
}
catch (ScpException ex)
{
_ret.State = ReturnStatus.Failed;
_ret.Result = false;
_ret.ErrorList.Add(ex);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Save_TA_LANGUAGE", ex.ToString());
if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException))
{
var inner = (UpdateException)ex.InnerException;
throw new ScpException(ResultCode.Exception, "0000", ex.ToString());
}
else
{
if (ex.InnerException != null) throw ex.InnerException;
}
}
catch (Exception e)
{
_ret.State = ReturnStatus.Failed;
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Save_TA_LANGUAGE", e.Message);
_ret.Result = false;
_ret.ErrorList.Add(e);
throw e;
}
return _ret;
}
}
}

30
Controller/SCP_PO_CONTROLLER.cs

@ -1872,6 +1872,14 @@ namespace CK.SCP.Controller
ErrorList.Add(string.Format("普通采购订单不涉及组件物料号,请到委外采购订单菜单导入"));
}
var _part = db.TA_PART.SingleOrDefault(p => p.PartCode == p_excel.);
if ((!string.IsNullOrEmpty(p_excel.))&& (_part.PartGroup == "WT" || _part.PartGroup == "YC"))
{
int checkCount = db.TA_CHECKPARTANDVEND.Count(q => q.PartCode == p_excel. && q.VendID == p_excel.);
if (checkCount == 0)
{
ErrorList.Add(string.Format("物料号码{0}与供应商{1}在现货原料与供应商对照关系表内没有对应的基础信息!", p_excel., p_excel.));
}
}
if (_part.PartCode.ToString() != p_excel..ToString())
{
ErrorList.Add(string.Format("物料号码{0}填写不正确请注意大小写!", p_excel.));
@ -5092,9 +5100,9 @@ namespace CK.SCP.Controller
{
if (_maxpo.SurplusQty > _PlanQTY)
{
_maxpo.SurplusQty = _maxpo.SurplusQty - _PlanQTY;
//_maxpo.SurplusQty = _maxpo.SurplusQty - _PlanQTY;
db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo);
//db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo);
TB_MAXPO_CONSUME CONSUME = new TB_MAXPO_CONSUME();
CONSUME.PoBillNum = _maxpo.PoBillNum;
CONSUME.BillNum = _ls.PoBillNum;
@ -5107,8 +5115,8 @@ namespace CK.SCP.Controller
}
else if (_maxpo.SurplusQty == _PlanQTY)
{
_maxpo.SurplusQty = 0;
db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo);
//_maxpo.SurplusQty = 0;
//db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo);
TB_MAXPO_CONSUME CONSUME = new TB_MAXPO_CONSUME();
CONSUME.PoBillNum = _maxpo.PoBillNum;
CONSUME.BillNum = _ls.PoBillNum;
@ -5130,8 +5138,8 @@ namespace CK.SCP.Controller
CONSUME.ShipTime = DateTime.Now;
consum.Add(CONSUME);
_PlanQTY = _PlanQTY - _maxpo.SurplusQty;
_maxpo.SurplusQty = 0;
db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo);
//_maxpo.SurplusQty = 0;
//db.TB_MAXPO_DETAIL.AddOrUpdate(_maxpo);
}
@ -9468,10 +9476,10 @@ namespace CK.SCP.Controller
{
_ret.MessageList.Add("零件号" + _entity.PartCode + "单次削减量不能大于剩余订货量(千克)");
}
if (((_entity.OrderQtydNow + itm.ReductionQty) * 1000) < _entity.OrderQtykg - _entity.AsnQty)
{
_ret.MessageList.Add("零件号" + _entity.PartCode + "剩余可消耗订货量不足");
}
//if (((_entity.OrderQtydNow + itm.ReductionQty) * 1000) < _entity.OrderQtykg - _entity.AsnQty)
//{
// _ret.MessageList.Add("零件号" + _entity.PartCode + "剩余可消耗订货量不足");
//}
if ((_entity.OrderQtydNow + itm.ReductionQty) < 0)
{
_ret.MessageList.Add("削减失败,零件号" + _entity.PartCode + "本次填写的削减量过大,将会使得订货量小于0!");
@ -9507,7 +9515,7 @@ namespace CK.SCP.Controller
}
_entity.OrderQtykg = (_entity.OrderQtydNow + itm.ReductionQty).Value * 1000;
_entity.AsnQty = (itm.ReductionQty * 1000 + _entity.AsnQty).Value;
//_entity.AsnQty = (itm.ReductionQty * 1000 + _entity.AsnQty).Value;
_entity.SurplusQty = (itm.ReductionQty * 1000 + _entity.SurplusQty).Value;
// 修改数据
TS_UNI_API maxuni = new TS_UNI_API();

3
Models/CK.SCP.Models.csproj

@ -351,10 +351,12 @@
<Compile Include="ScpEntity\ExcelExportEnttity\SCP_PART_ToleranceProportion.cs" />
<Compile Include="ScpEntity\ExcelExportEnttity\SCP_PART_EXPORT.cs" />
<Compile Include="ScpEntity\ExcelExportEnttity\SCP_PRICE_EXPORT.cs" />
<Compile Include="ScpEntity\ExcelExportEnttity\SCP_CHECKPARTANDVENDER_EXPORT.cs" />
<Compile Include="ScpEntity\ExcelExportEnttity\SCP_VENDER_EXPORT.cs" />
<Compile Include="ScpEntity\ExcelExportEnttity\SCP_VENDER_PART_EXPORT.cs" />
<Compile Include="ScpEntity\ExcelImportEntity\SCP_ASN_EXCEL.cs" />
<Compile Include="ScpEntity\PURSubcontractor.cs" />
<Compile Include="ScpEntity\TA_CHECKPARTANDVEND.cs" />
<Compile Include="ScpEntity\TA_Appliance.cs" />
<Compile Include="ScpEntity\TA_ASK_SUBPART.cs" />
<Compile Include="ScpEntity\TA_BOXTYPE.cs" />
@ -362,6 +364,7 @@
<Compile Include="ScpEntity\TA_MoldSharing.cs" />
<Compile Include="ScpEntity\TA_MOLDSHARING_INVOICE.cs" />
<Compile Include="ScpEntity\TA_Part_User.cs" />
<Compile Include="ScpEntity\V_TA_CheckPartsAndVend.cs" />
<Compile Include="ScpEntity\V_TA_ToleranceProportion.cs" />
<Compile Include="ScpEntity\TA_ToleranceProportion.cs" />
<Compile Include="ScpEntity\V_MPO_PRINT.cs" />

2
Models/ScpEntities.cs

@ -44,6 +44,8 @@ namespace CK.SCP.Models
public virtual DbSet<TB_PALLETS_BTL> TB_PALLETS_BTL { get; set; }
public virtual DbSet<TA_Receiving_Information> TA_Receiving_Information { get; set; }
public virtual DbSet<V_TA_APPLIANCE> V_TA_APPLIANCE { get; set; }
public virtual DbSet<V_TA_CheckPartsAndVend> V_TA_CheckPartsAndVend { get; set; }
public virtual DbSet<TA_CHECKPARTANDVEND> TA_CHECKPARTANDVEND { get; set; }
public virtual DbSet<TA_SubPart> TA_SubPart { get; set; }
public virtual DbSet<TB_MAXPO> TB_MAXPO { get; set; }
public virtual DbSet<TB_MAXPO_DETAIL> TB_MAXPO_DETAIL { get; set; }

15
Models/ScpEntity/ExcelExportEnttity/SCP_CHECKPARTANDVENDER_EXPORT.cs

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CK.SCP.Models.ScpEntity.ExcelExportEnttity
{
public class SCP_CHECKPARTANDVENDER_EXPORT
{
public string { get; set; }
public string { get; set; }
public string { get; set; }
}
}

18
Models/ScpEntity/TA_CHECKPARTANDVEND.cs

@ -0,0 +1,18 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace CK.SCP.Models.ScpEntity
{
public partial class TA_CHECKPARTANDVEND
{
[Key]
public long UID { get; set; }
public string PartCode { get; set; }
public string Model { get; set; }
public string VendID { get; set; }
}
}

21
Models/ScpEntity/V_TA_CheckPartsAndVend.cs

@ -0,0 +1,21 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace CK.SCP.Models.ScpEntity
{
public partial class V_TA_CheckPartsAndVend
{
[Key]
public long UID { get; set; }
public string PartCode { get; set; }
public string Model { get; set; }
public string PartDesc1 { get; set; }
public string PartDesc2 { get; set; }
public string PartDesc { get; set; }
public string VendID { get; set; }
public string VendName { get; set; }
}
}

16
SCP/SCP.csproj

@ -263,6 +263,8 @@
<Content Include="Scripts\ECharts\echarts-all.js" />
<Content Include="Scripts\ECharts\echarts.js" />
<Content Include="VersionUpdateInfo.txt" />
<Content Include="Views\BasicData\SCP_CheckPartsAndVend_EDIT.aspx" />
<Content Include="Views\BasicData\SCP_CheckPartsAndVend.aspx" />
<Content Include="Views\BasicData\Appliance.aspx" />
<Content Include="Views\BasicData\Appliance_DETAIL.aspx" />
<Content Include="Views\BasicData\BoxType.aspx" />
@ -5013,6 +5015,20 @@
<Compile Include="Handlers\MakeVerifyCode.ashx.cs">
<DependentUpon>MakeVerifyCode.ashx</DependentUpon>
</Compile>
<Compile Include="Views\BasicData\SCP_CheckPartsAndVend_EDIT.aspx.cs">
<DependentUpon>SCP_CheckPartsAndVend_EDIT.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Views\BasicData\SCP_CheckPartsAndVend_EDIT.aspx.designer.cs">
<DependentUpon>SCP_CheckPartsAndVend_EDIT.aspx</DependentUpon>
</Compile>
<Compile Include="Views\BasicData\SCP_CheckPartsAndVend.aspx.cs">
<DependentUpon>SCP_CheckPartsAndVend.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Views\BasicData\SCP_CheckPartsAndVend.aspx.designer.cs">
<DependentUpon>SCP_CheckPartsAndVend.aspx</DependentUpon>
</Compile>
<Compile Include="Views\BasicData\Appliance.aspx.cs">
<DependentUpon>Appliance.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>

82
SCP/Views/BasicData/SCP_CheckPartsAndVend.aspx

@ -0,0 +1,82 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SCP_CheckPartsAndVend.aspx.cs" Inherits="SCP.Views.BasicData.SCP_CheckPartsAndVend" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script language="javascript" src="../js/jquery-1.4.1.min.js"></script>
<link href="/css/exaspnet.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="Panel1" />
<f:Panel ID="Panel1" runat="server" Title="" AutoScroll="false" Layout="VBox">
<Items>
<f:Toolbar ID="Toolbar1" runat="server">
<Items>
<f:TextBox ID="txtPartCode" runat="server" Label="零件号码" Text="">
</f:TextBox>
<f:TextBox ID="TextBox1" runat="server" Label="供应商代码" Text="">
</f:TextBox>
<f:Button ID="btnSearch" runat="server" Text="快速查找" OnClick="btnSearch_Click" Icon="SystemSearch">
</f:Button>
<f:Button ID="Button3" runat="server" EnablePostBack="false" Text="刷新" Icon="Reload" OnClientClick="location.reload();">
</f:Button>
<f:Button ID="Insert" runat="server" Text="新增" Icon="Add" OnClick="Button2_Click" EnablePostBack="True">
</f:Button>
<f:Button ID="Delete" runat="server" Text="删除" Icon="Delete" OnClick="Buttondelete_Click" OnClientClick="if(!confirm('是否要将数据删除'))return false;">
</f:Button>
<f:Button ID="Update" runat="server" Text="修改" Icon="BasketEdit" OnClick="Button4_Click" EnablePostBack="True">
</f:Button>
<f:ToolbarSeparator runat="server" />
<f:FileUpload runat="server" ID="FileUp" EmptyText="请选择要货单据" Required="true" Width="200" ButtonIcon="Add" ShowRedStar="true"></f:FileUpload>
<f:Button ID="btnInput" runat="server" Text="导入" Icon="PageExcel" OnClick="btnInput_Click">
</f:Button>
<f:Button ID="btnOutput" runat="server" Text="导出" OnClick="btnOutput_OnClick" Icon="PageExcel">
</f:Button>
<f:LinkButton ID="linkbutton" runat="server" Text="模板下载" OnClick="LinkButton_Click" ></f:LinkButton>
</Items>
</f:Toolbar>
<f:Grid ID="Grid1" runat="server" BoxFlex="1"
ShowHeader="False" DataKeyNames=" UID,PartCode,PartDesc,Model,VendID,VendName"
AllowPaging="True" PageSize="50" OnPageIndexChange="Grid1_OnPageIndexChange"
ShowBorder="False"
AllowSorting="true" IsDatabasePaging="true" SortField="PartCode" EnableCheckBoxSelect="true">
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
</f:ToolbarText>
<f:DropDownList ID="ddlGridPageSize" Width="80px" AutoPostBack="true" OnSelectedIndexChanged="ddlGridPageSize_SelectedIndexChanged"
runat="server">
<f:ListItem Text="100" Value="100" />
<f:ListItem Text="200" Value="200" />
<f:ListItem Text="500" Value="500" />
<f:ListItem Text="1000" Value="1000" />
<f:ListItem Text="5000" Value="5000" />
<f:ListItem Text="10000" Value="10000" />
</f:DropDownList>
</PageItems>
<Columns>
<f:BoundField SortField="UID" DataField="UID" ColumnID="UID" Width="100px" Hidden="true" />
<f:BoundField SortField="PartCode" DataField="PartCode" HeaderText="零件号(原料)" ColumnID="PartCode" Width="200px" />
<f:BoundField SortField="PartDesc" DataField="PartDesc" HeaderText="零件描述" ColumnID="PartDesc" Width="200px" />
<f:BoundField SortField="Model" DataField="Model" HeaderText="车型" ColumnID="Model" Width="100px" />
<f:BoundField SortField="VendID" DataField="VendID" HeaderText="供应商代码" ColumnID="VendID" Width="100px" />
<f:BoundField SortField="VendName" DataField="VendName" HeaderText="供应商" ColumnID="VendName" Width="200px" ID="VendName" />
</Columns>
</f:Grid>
</Items>
</f:Panel>
</form>
<f:Window runat="server" ID="Window1" Hidden="True" AutoScroll="false" Width="800px" Height="450px" CloseAction="HidePostBack"
WindowPosition="Center" IsModal="true" Title="零件明细" Target="Parent" EnableIFrame="true" OnClose="Window1_Close"
IFrameUrl="about:blank" />
</body>
</html>

177
SCP/Views/BasicData/SCP_CheckPartsAndVend.aspx.cs

@ -0,0 +1,177 @@
using CK.SCP.Controller;
using CK.SCP.Models;
using CK.SCP.Models.ScpEntity;
using CK.SCP.Models.ScpEntity.ExcelExportEnttity;
using CK.SCP.Utils;
using FineUI;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace SCP.Views.BasicData
{
public partial class SCP_CheckPartsAndVend : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}
public void BindData()
{
SearchInvoice((ret) =>
{
Grid1.RecordCount = ret.Count();
var list = SortAndPage(ret, Grid1);
Grid1.DataSource = list;
Grid1.DataBind();
});
}
public void SearchInvoice(Action<IQueryable<V_TA_CheckPartsAndVend>> p_action)
{
V_TA_CheckPartsAndVend _entity = new V_TA_CheckPartsAndVend();
if (txtPartCode.Text != null)
{
_entity.PartCode = txtPartCode.Text;
}
if (TextBox1.Text != null)
{
_entity.VendID = TextBox1.Text;
}
SCP_INVOICE_CONTROLLER.Get_V_TA_CheckPartsAndVend(_entity, (ret) =>
{
if (ret.State == ReturnStatus.Succeed)
{
p_action(ret.Result);
}
});
}
protected void ddlGridPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlGridPageSize.SelectedValue);
BindData();
}
//查询
protected void btnSearch_OnClick(object sender, EventArgs e)
{
BindData();
}
protected void Grid1_OnPageIndexChange(object sender, GridPageEventArgs e)
{
BindData();
}
protected void btnOutput_OnClick(object sender, EventArgs e)
{
SearchInvoice((ret) =>
{
Dictionary<string, string> cellheader = new Dictionary<string, string>(){
{ "PartCode", "零件号" },
{ "PartDesc", "零件描述" },
{ "Model", "车型" },
{ "VendID", "供应商代码" },
{ "VendName", "供应商" },
};
string url = EntityListToExcel2003(cellheader, ret.ToList(), "零件供应商对应关系");
});
}
protected void btnSearch_Click(object sender, EventArgs e)
{
BindData();
}
protected void Button2_Click(object sender, EventArgs e)
{
string url = String.Format("../BasicData/SCP_CheckPartsAndVend_EDIT.aspx?");
PageContext.RegisterStartupScript(Window1.GetShowReference(url));
}
protected void Buttondelete_Click(object sender, EventArgs e)
{
string partcode = GetSelectedDataKey(Grid1, 1);
string vendid = GetSelectedDataKey(Grid1, 4);
var ret = SCP_INVOICE_CONTROLLER.Del_VENDER_PART( partcode,vendid);
if (ret.State == ReturnStatus.Succeed)
{
BindData();
}
}
protected void Button4_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Count() == 0)
{
PageContext.RegisterStartupScript(Alert.GetShowInTopReference("没有选择数据!"));
return;
}
object[] rowDataKeys = Grid1.DataKeys[Grid1.SelectedRowIndex];
if (rowDataKeys.Count() > 0)
{
string PartCode = rowDataKeys[1] as string;
string VendID = rowDataKeys[4] as string;
string Model = rowDataKeys[3] as string;
string url = String.Format("../BasicData/SCP_CheckPartsAndVend_EDIT.aspx?PartCode={0}&&VendID={1}&&Model={2}", PartCode, VendID, Model);
PageContext.RegisterStartupScript(Window1.GetShowReference(url));
}
}
/// <summary>
/// 上传文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnInput_Click(object sender, EventArgs e)
{
string _fileName = FileUp.FileName;
if (string.IsNullOrEmpty(_fileName))
{
Alert.Show("选择文件为空!");
return;
}
string _lx = _fileName.Split('.')[1];
Stream _stream = FileUp.PostedFile.InputStream;
DataTable _dt = new DataTable();
if (_lx == "xls")
{
_dt = ExcelHelper.GetDataTable(_stream);
}
else
{
_dt = ExcelHelper.GetDataTableOfXlsx(_stream);
}
var list = ConvertHelper.ToList<SCP_CHECKPARTANDVENDER_EXPORT>(ExcelHelper.RemoveEmpty(_dt)).ToList();
var ret = SCP_INVOICE_CONTROLLER.EXCEL_VENDER_PART(list, CurrentUser.FactoryList[0], CurrentUser.Name);
if (ret.State == ReturnStatus.Succeed && ret.Result == true)
{
Alert.Show("导入成功");
BindData();
}
else
{
Alert.Show(string.Join("<br>", ret.MessageList));
}
}
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindData();
}
protected void LinkButton_Click(object sender, EventArgs e)
{
Alert.Show($"<a href=\'/uploadfiles/{".xlsx"}\'>{".xlsx"}</a>", "请点击文件名下载", MessageBoxIcon.Information);
}
}
}

215
SCP/Views/BasicData/SCP_CheckPartsAndVend.aspx.designer.cs

@ -0,0 +1,215 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace SCP.Views.BasicData
{
public partial class SCP_CheckPartsAndVend
{
/// <summary>
/// Head1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlHead Head1;
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Panel Panel1;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Toolbar Toolbar1;
/// <summary>
/// txtPartCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.TextBox txtPartCode;
/// <summary>
/// TextBox1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.TextBox TextBox1;
/// <summary>
/// btnSearch 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnSearch;
/// <summary>
/// Button3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Button3;
/// <summary>
/// Insert 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Insert;
/// <summary>
/// Delete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Delete;
/// <summary>
/// Update 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Update;
/// <summary>
/// FileUp 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.FileUpload FileUp;
/// <summary>
/// btnInput 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnInput;
/// <summary>
/// btnOutput 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnOutput;
/// <summary>
/// linkbutton 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.LinkButton linkbutton;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Grid Grid1;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.ToolbarSeparator ToolbarSeparator1;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.ToolbarText ToolbarText1;
/// <summary>
/// ddlGridPageSize 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.DropDownList ddlGridPageSize;
/// <summary>
/// VendName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.BoundField VendName;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Window Window1;
}
}

38
SCP/Views/BasicData/SCP_CheckPartsAndVend_EDIT.aspx

@ -0,0 +1,38 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SCP_CheckPartsAndVend_EDIT.aspx.cs" Inherits="SCP.Views.BasicData.SCP_CheckPartsAndVend_EDIT" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server" >
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server"/>
<f:Panel ID="Panel1" CssClass="blockpanel" runat="server" ShowBorder="true" ShowHeader="true" Layout="Region">
<Toolbars>
<f:Toolbar ID="Toolbar2" runat="server">
<Items>
<f:Button ID="Btn_Save" runat="server" EnablePostBack="True" Text="保存" Icon="SystemSave" OnClick="Btn_Save_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Items>
<f:Form runat="server" Width="550px" BodyPadding="25 25 30 25">
<Items>
<f:TextBox runat = "server" Label = "零件号(原料)" EmptyText = "" ID = "TXT_PART" />
<f:TextBox runat = "server" Label = "车型" EmptyText = "" ID = "TXT_Model" />
<f:TextBox runat = "server" Label = "供应商ID" EmptyText = "" ID = "TXT_VENDID" />
</Items>
</f:Form>
</Items>
</f:Panel>
</form>
</body>
</html>

74
SCP/Views/BasicData/SCP_CheckPartsAndVend_EDIT.aspx.cs

@ -0,0 +1,74 @@
using System;
using System.Linq;
using System.Web.UI;
using CK.SCP.Models.ScpEntity;
using CK.SCP.Controller;
using FineUI;
using ChangKeTec.Wms.Models.Wms;
namespace SCP.Views.BasicData
{
public partial class SCP_CheckPartsAndVend_EDIT : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Bind();
}
}
private void Bind()
{
if (!string.IsNullOrEmpty(Request["PartCode"]))
{
TXT_PART.Text = Request["PartCode"];
TXT_PART.Readonly = true;
TXT_Model.Text = Request["Model"];
TXT_VENDID.Text = Request["VendID"];
TXT_VENDID.Readonly = true;
}
}
protected void Btn_Save_Click(object sender, EventArgs e)
{
TA_CHECKPARTANDVEND _entity = new TA_CHECKPARTANDVEND();
if (string.IsNullOrWhiteSpace(TXT_PART.Text))
{
Alert.Show("零件号不能为空");
return;
}
else
{
_entity.PartCode = TXT_PART.Text.Trim();
}
if (string.IsNullOrWhiteSpace(TXT_VENDID.Text))
{
Alert.Show("供应商ID不能为空");
return;
}
else
{
_entity.VendID = TXT_VENDID.Text.Trim();
}
_entity.Model = TXT_Model.Text;
var ret1 = SCP_INVOICE_CONTROLLER.Save_TA_CHECKPARTANDVEND(_entity);
if (ret1.State == ReturnStatus.Succeed)
{
Alert.Show("保存成功");
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
else
{
if (ret1.Message.Count() > 0)
{
Alert.Show(string.Join("<br>", ret1.Message));
return;
}
}
}
}
}

89
SCP/Views/BasicData/SCP_CheckPartsAndVend_EDIT.aspx.designer.cs

@ -0,0 +1,89 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace SCP.Views.BasicData
{
public partial class SCP_CheckPartsAndVend_EDIT
{
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Panel Panel1;
/// <summary>
/// Toolbar2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Toolbar Toolbar2;
/// <summary>
/// Btn_Save 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Btn_Save;
/// <summary>
/// TXT_PART 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.TextBox TXT_PART;
/// <summary>
/// TXT_Model 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.TextBox TXT_Model;
/// <summary>
/// TXT_VENDID 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.TextBox TXT_VENDID;
}
}

2
SCP/Views/PlanData/SCP_ASK.aspx

@ -26,7 +26,7 @@
<f:Button ID="btnDelete" runat="server" Text="删除看板" Icon="Delete" OnClick="btnDelete_Click" Hidden="true">
</f:Button>
<f:Button ID="Button9" runat="server" Text="看板删除(新建状态)" Icon="Delete" OnClick="btnInput_Click1" >
<f:Button ID="Button9" runat="server" Text="看板删除(新建状态)" Icon="Delete" OnClick="btnInput_Click1" Hidden="true" >
</f:Button>
<f:Button ID="btnCopy" runat="server" Text="复制看板" Icon="PageCopy" OnClick="btnCopy_Click" OnClientClick="if(!confirm('是否要复制订单,只能复制合同看板不能复制离散订单?'))return false;" Hidden="true">
</f:Button>

2
SCP/Views/PlanData/SCP_ASK.aspx.cs

@ -61,7 +61,7 @@ namespace SCP.PlanData
if (CurrentUser.Name == "admin" || CurrentUser.RoleList.Contains("分厂管理员"))
{
btnDelete.Hidden = false;
Button9.Hidden = false;
}
BindAsk();

16
SCP/Views/富维冲压件/SCP_MAXPO_INCOMPLETE.aspx

@ -37,7 +37,6 @@
<f:DatePicker runat="server" Label="大订单创建日期" ID="TextBillTime1"></f:DatePicker>
<f:DatePicker runat="server" Label="至" ID="TextBillTime2"></f:DatePicker>
<f:TextBox runat="server" Label="创建者" ID="TextBox1">
</f:TextBox>
<f:TextBox runat="server" Label="大订单号" ID="TextBillNo">
</f:TextBox>
@ -83,6 +82,12 @@
<f:BoundField Width="130px" DataField="ContractMonth" DataFormatString="{0}" HeaderText="合同月" SortField="ContractMonth" />
<f:BoundField Width="130px" DataField="PartCode" DataFormatString="{0}" HeaderText="原料物料号" SortField="PartCode" />
<f:BoundField Width="130px" DataField="PartNumber" DataFormatString="{0}" HeaderText="零件号" SortField="PartNumber" />
<f:BoundField Width="100px" DataField="OrderQtykg" DataFormatString="{0}" HeaderText="订货量(KG)" SortField="OrderQtykg" />
<f:BoundField Width="100px" DataField="ReceQty" DataFormatString="{0}" HeaderText="剩余收货数" SortField="ReceQty" />
<f:BoundField Width="100px" DataField="RecQty" DataFormatString="{0}" HeaderText="收货数" SortField="RecQty" />
<f:BoundField Width="100px" DataField="ReturnQty" DataFormatString="{0}" HeaderText="退货数" SortField="ReturnQty" />
<f:BoundField Width="130px" DataField="VendId" DataFormatString="{0}" HeaderText="供应商编号" SortField="VendId" />
<f:BoundField Width="100px" DataField="VendName" DataFormatString="{0}" HeaderText="供应商名称" SortField="VendName" />
<f:BoundField Width="100px" DataField="CreateUser" DataFormatString="{0}" HeaderText="创建者" SortField="CreateUser" />
@ -96,14 +101,11 @@
<f:BoundField Width="100px" DataField="MinordQty" DataFormatString="{0}" HeaderText="起订量" SortField="MinordQty" />
<f:BoundField Width="100px" DataField="Singlecon" DataFormatString="{0}" HeaderText="单件消耗(千克)" SortField="Singlecon" />
<f:BoundField Width="100px" DataField="OrderQtyd" DataFormatString="{0}" HeaderText="订货量(吨)" SortField="OrderQtyd" />
<f:BoundField Width = "100px" DataField = "OrderQtykg" DataFormatString = "{0}" HeaderText = "订货量(KG)" SortField="OrderQtykg"/>
<f:BoundField Width="100px" DataField="OrderNumber" DataFormatString="{0}" HeaderText="订货件数" SortField="OrderNumber" />
<f:BoundField Width = "100px" DataField = "SurplusQty" DataFormatString = "{0}" HeaderText = "差异数" SortField="SurplusQty"/>
<%-- <f:BoundField Width = "100px" DataField = "SurplusQty" DataFormatString = "{0}" HeaderText = "差异数" SortField="SurplusQty"/>
<f:BoundField Width = "100px" DataField = "AsnQty" DataFormatString = "{0}" HeaderText = "剩余发货数" SortField="AsnQty"/>
<f:BoundField Width = "100px" DataField = "AnQty" DataFormatString = "{0}" HeaderText = "发货数" SortField="AnQty"/>
<f:BoundField Width = "100px" DataField = "ReceQty" DataFormatString = "{0}" HeaderText = "剩余收货数" SortField="ReceQty"/>
<f:BoundField Width = "100px" DataField = "RecQty" DataFormatString = "{0}" HeaderText = "收货数" SortField="RecQty"/>
<f:BoundField Width = "100px" DataField = "ReturnQty" DataFormatString = "{0}" HeaderText = "退货数" SortField="ReturnQty"/>
<f:BoundField Width = "100px" DataField = "AnQty" DataFormatString = "{0}" HeaderText = "发货数" SortField="AnQty"/> --%>
<f:BoundField Width="100px" DataField="forecastone" DataFormatString="{0}" HeaderText="预测1(日期/数量)" SortField="forecastone" />
<f:BoundField Width="100px" DataField="forecasttwo" DataFormatString="{0}" HeaderText="预测2(日期/数量)" SortField="forecasttwo" />
<f:BoundField Width="100px" DataField="forecastthree" DataFormatString="{0}" HeaderText="预测3(日期/数量)" SortField="forecastthree" />

4
SCP/Views/富维冲压件/SCP_MAXPO_INCOMPLETE.aspx.cs

@ -132,8 +132,8 @@ namespace SCP.Views.富维冲压件
Dictionary<string, string> cellheader = new Dictionary<string, string>
{
{ "PoBillNum", "大订单号" },
{ "PartCode", "零件号" },
{ "PartNumber", "原料物料号" },
{ "PartNumber", "零件号" },
{ "PartCode", "原料物料号" },
{ "VendId", "供应商编号" },
{ "VendName", "供应商名称" },
{ "CreateUser", "创建者" },

7
SCP/Views/富维冲压件/SCP_MAXPO_INCOMPLETE_DETAIL.aspx

@ -27,7 +27,8 @@
</Toolbars>
</f:Form>
<f:Label runat="server" Label="单据号指的是期货订单号(CYD开头),发货单号(N开头),收货单号(M开头或者C开头),退货单号(R开头)。时间指的是期货订单创建时间,发货单确认发货时间,收货单收货时间。" LabelWidth="1000" ColumnWidth="800" Width="1000" ID="LABLE" />
<f:Label runat="server" Label="收货单号(M开头或者C开头),退货单号(R开头)。时间指的是期货订单创建时间,发货单确认发货时间,收货单收货时间。" LabelWidth="1000" ColumnWidth="800" Width="1000" ID="LABLE" />
<%--<f:Label runat="server" Label="单据号指的是期货订单号(CYD开头),发货单号(N开头),收货单号(M开头或者C开头),退货单号(R开头)。时间指的是期货订单创建时间,发货单确认发货时间,收货单收货时间。" LabelWidth="1000" ColumnWidth="800" Width="1000" ID="Label1" />--%>
<f:Grid ID="Grid_V_TB_PO_SUBDETAIL" ShowBorder="true" ShowHeader="true" PageSize="100" BoxFlex="1" CssClass="maingrid"
runat="server" DataKeyNames="UID,PoBillNum"
IsDatabasePaging="true" AllowPaging="true" SortField="PoBillNum" SortDirection="ASC" OnPageIndexChange="Grid_V_TB_INCOMPLETE_ASK_PageIndexChange"
@ -49,10 +50,10 @@
<f:BoundField Width = "130px" DataField = "PartCode" DataFormatString = "{0}" HeaderText = "物料号" SortField="PartCode"/>
<f:BoundField Width = "130px" DataField = "PartDesc1" DataFormatString = "{0}" HeaderText = "物料名称" SortField="PartDesc1"/>
<f:BoundField Width = "130px" DataField = "PartDesc2" DataFormatString = "{0}" HeaderText = "物料规格" SortField="PartDesc2"/>
<f:BoundField Width = "100px" DataField = "VendId" DataFormatString = "{0}" HeaderText = "供应商编号" SortField="VendId"/>
<f:BoundField Width = "180px" DataField = "VendName" DataFormatString = "{0}" HeaderText = "供应商描述" SortField="VendName"/>
<f:BoundField Width = "130px" DataField = "ShipTime" DataFormatString = "{0}" HeaderText = "时间" SortField="ShipTime"/>
<f:BoundField Width = "130px" DataField = "PoQty" DataFormatString = "{0}" HeaderText = "消耗数" SortField="PoQty"/>
<f:BoundField Width = "100px" DataField = "VendId" DataFormatString = "{0}" HeaderText = "供应商编号" SortField="VendId"/>
<f:BoundField Width = "180px" DataField = "VendName" DataFormatString = "{0}" HeaderText = "供应商描述" SortField="VendName"/>
</Columns>
</f:Grid>
</Items>

2
SCP/Views/富维冲压件/SCP_PO_MAX_DETAIL.aspx

@ -26,7 +26,7 @@
</Toolbars>
<Items>
<f:Grid ID="Grid_V_TB_PO_SUBDETAIL" Title="大订单明细" BoxFlex="1" ShowBorder="True" ShowHeader="True" AllowCellEditing="True" ClicksToEdit="1" EnableCheckBoxSelect="true"
runat="server" PageSize="1000" SortField="UID" IsDatabasePaging="True" AllowPaging="True" SortDirection="Desc" AutoScroll="True"
runat="server" PageSize="1000" SortField="PoLine" IsDatabasePaging="True" AllowPaging="True" SortDirection="ASC" AutoScroll="True"
DataKeyNames="UID,PoBillNum,PartCode,Qty,SubQty,ReductionQty,ReductionQtyOne,ReductionQtyTwo,ReductionQtyThree,ReductionQtyFour,ReductionQtyFive" >
<Columns>
<f:BoundField Width="100px" DataField="PartCode" DataFormatString="{0}" HeaderText="原料物料号" SortField="PartCode" />

6
SCP/Views/富维冲压件/SCP_PO_MAX_DETAIL.aspx.cs

@ -169,7 +169,11 @@ namespace SCP.Views.富维冲压件
Alert.Show(string.Join("<br>", ret.MessageList));
}
}
/// <summary>
/// 保存削减量
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Btn_SaveReductionQty_Click(object sender, EventArgs e)
{
List<TB_MAXPO_DETAIL> list = new List<TB_MAXPO_DETAIL>();

3
UniApiGroup/Controller/OdbcApiQadController.cs

@ -822,7 +822,8 @@ namespace CK.SCP.GrupUniApi.Controller
//var _liii = _lii.ToList();
//var _entity = _liii.First();
// 根据 零件号作废
var askdetaill = wdb.TB_ASK_DETAIL.Where(p => p.PoBillNum == _lii.purDocNO && p.PartCode == _lii.mtlNO && p.PoLine == int.Parse(_lii.PURDOCITEMNO)).ToList();
int dpoline = Convert.ToInt32(_lii.PURDOCITEMNO);
var askdetaill = wdb.TB_ASK_DETAIL.Where(p => p.PoBillNum == _lii.purDocNO && p.PartCode == _lii.mtlNO && p.PoLine == dpoline).ToList();
askdetaill.ForEach(p =>
{
p.State = -1;

3
UniApiGroup/Controller/OdbcApiWmsController.cs

@ -362,6 +362,7 @@ namespace CK.SCP.GrupUniApi.Controller
if (maxpodetail != null)
{
maxpodetail.ReceQty = maxpodetail.ReceQty + qty;
maxpodetail.SurplusQty = maxpodetail.SurplusQty - qty;
scpMaxPoDetailList.Add(maxpodetail);
TB_MAXPO_CONSUME cONSUME = new TB_MAXPO_CONSUME();
cONSUME.PoBillNum = pobillnum;
@ -396,6 +397,7 @@ namespace CK.SCP.GrupUniApi.Controller
if (maxpodetail != null)
{
maxpodetail.ReturnQty = maxpodetail.ReturnQty - qty;
maxpodetail.SurplusQty = maxpodetail.SurplusQty - qty;
scpMaxPoDetailList.Add(maxpodetail);
TB_MAXPO_CONSUME cONSUME = new TB_MAXPO_CONSUME();
cONSUME.PoBillNum = pobillnum;
@ -853,6 +855,7 @@ namespace CK.SCP.GrupUniApi.Controller
if (maxpodetail != null)
{
maxpodetail.ReturnQty = maxpodetail.ReturnQty -qty;
maxpodetail.SurplusQty = maxpodetail.SurplusQty + qty;
scpMaxPoDetailList.Add(maxpodetail);
TB_MAXPO_CONSUME cONSUME = new TB_MAXPO_CONSUME();
cONSUME.PoBillNum = pobillnum;

Loading…
Cancel
Save