public static SubmissionTicketItem ReceiptTicketItemToSubmissionTicketItem(ReceiptTicketItem receiptTicketItem, int submissionTicketID) { //WMSEntities wmsEntities = new WMSEntities(); SubmissionTicketItem submissionTicketItem = new SubmissionTicketItem(); //ReceiptTicketItemView receiptTicketItemView = (from rti in wmsEntities.ReceiptTicketItemView where rti.ID == receiptTicketItem.ID select rti).Single(); //submissionTicketItem.ComponentID = receiptTicketItem.ComponentID; submissionTicketItem.SubmissionTicketID = submissionTicketID; submissionTicketItem.ID = 0; submissionTicketItem.State = "送检中"; submissionTicketItem.SubmissionAmount = receiptTicketItem.ReceiviptAmount; submissionTicketItem.ReceiptTicketItemID = receiptTicketItem.ID; return(submissionTicketItem); }
private void buttonSubmission_Click(object sender, EventArgs e) { WMSEntities wmsEntities = new WMSEntities(); var worksheet = this.reoGridControlUser.Worksheets[0]; List <ReceiptTicketItem> ids = new List <ReceiptTicketItem>(); bool result; for (int i = 0; i < this.countRow; i++) { result = (worksheet[i, this.checkColumn] as bool?) ?? false; if (result == true) { int id; if (int.TryParse(worksheet[i, 0].ToString(), out id) == false) { MessageBox.Show(worksheet[i, 0].ToString() + "加入失败"); } else { ReceiptTicketItem receiptTicketItem = (from rti in wmsEntities.ReceiptTicketItem where rti.ID == id select rti).FirstOrDefault(); if (receiptTicketItem.State == "已收货" || receiptTicketItem.State == "送检中") { MessageBox.Show(receiptTicketItem.ID + " " + receiptTicketItem.State); return; } else { ids.Add(receiptTicketItem); } } } } if (ids.Count == 0) { MessageBox.Show("请选择一项送检"); return; } else { foreach (ReceiptTicketItem i in ids) { //PutawayTicketItem putawayTicketItem = (from pti in wmsEntities.PutawayTicketItem where pti.ID == i && pti.State != "已收货" && pti.State != "送检中" select pti).FirstOrDefault(); if (i == null) { MessageBox.Show(i + "不能添加此条目送检"); } else { SubmissionTicketItem submissionTicketItem = ReceiptUtilities.ReceiptTicketItemToSubmissionTicketItem(i, this.submissionTicketID); wmsEntities.SubmissionTicketItem.Add(submissionTicketItem); i.State = "送检中"; } } new Thread(() => { try { wmsEntities.SaveChanges(); int count = wmsEntities.Database.SqlQuery <int>("SELECT COUNT(*) FROM ReceiptTicketItem WHERE State <> '送检中' AND ReceiptTicketID = @receiptTicketID", new SqlParameter("receiptTicketID", this.receiptTicketID)).FirstOrDefault(); if (count == 0) { wmsEntities.Database.ExecuteSqlCommand("UPDATE ReceiptTicket SET State = '送检中' WHERE ID = @receiptTicketID", new SqlParameter("receiptTicketID", this.receiptTicketID)); } wmsEntities.SaveChanges(); } catch { MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error); return; } this.Invoke(new Action(() => { this.Search(); CallBack(); })); MessageBox.Show("添加成功"); }).Start(); } }
private void OK_Click(object sender, EventArgs e) { var worksheet = this.reoGridControlUser.Worksheets[0]; worksheet.FocusPos = new CellPosition(0, 0); WMSEntities wmsEntities = new WMSEntities(); ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == this.receiptTicketID select rt).FirstOrDefault(); if (receiptTicket == null) { MessageBox.Show("该收货单已被删除,送检失败"); return; } else { if (receiptTicket.State != "待收货") { MessageBox.Show("该收货单状态为" + receiptTicket.State + ",无法送检!"); } } SortedDictionary <int, decimal> idsAndSubmissionAmount = SelectReceiptTicketItem(); if (idsAndSubmissionAmount == null) { return; } Dictionary <ReceiptTicketItem, decimal> receiptTicketItemsAndSubmissionAmount = new Dictionary <ReceiptTicketItem, decimal>(); foreach (KeyValuePair <int, decimal> kv in idsAndSubmissionAmount) { ReceiptTicketItem receiptTicketItem = (from rti in wmsEntities.ReceiptTicketItem where rti.ID == kv.Key select rti).FirstOrDefault(); if (receiptTicketItem != null) { if (receiptTicketItem.ReceiviptAmount < kv.Value) { MessageBox.Show("送检数量不应大于收货数量", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (kv.Value < 0) { MessageBox.Show("送检数量不应为负数", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } receiptTicketItemsAndSubmissionAmount.Add(receiptTicketItem, kv.Value); } } if (this.formMode == FormMode.ADD) { SubmissionTicket submissionTicket = new SubmissionTicket(); string errorInfo; if (Utilities.CopyTextBoxTextsToProperties(this, submissionTicket, ReceiptMetaData.submissionTicketKeyName, out errorInfo) == false) { MessageBox.Show(errorInfo); return; } else { Utilities.CopyComboBoxsToProperties(this, submissionTicket, ReceiptMetaData.submissionTicketKeyName); submissionTicket.PersonID = this.PersonIDGetter(); submissionTicket.ReceivePersonID = this.ReceivePersonIDGetter(); submissionTicket.SubmissionPersonID = this.SubmissionPersonIDGetter(); submissionTicket.DeliverSubmissionPersonID = this.DeliverSubmissionPersonIDGetter(); //ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == this.receiptTicketID select rt).FirstOrDefault(); submissionTicket.SubmissionDate = receiptTicket.ReceiptDate; submissionTicket.CreateTime = DateTime.Now; submissionTicket.ReceiptTicketID = this.receiptTicketID; submissionTicket.CreateUserID = this.userID; submissionTicket.LastUpdateTime = DateTime.Now; submissionTicket.LastUpdateUserID = this.userID; submissionTicket.ProjectID = receiptTicket.ProjectID; submissionTicket.WarehouseID = receiptTicket.WarehouseID; submissionTicket.State = "待检"; //////////////////////////// Begin if (string.IsNullOrWhiteSpace(submissionTicket.No)) { if (submissionTicket.CreateTime.HasValue == false) { MessageBox.Show("单号生成失败(未知创建日期)!请手动填写单号", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DateTime createDay = new DateTime(submissionTicket.CreateTime.Value.Year, submissionTicket.CreateTime.Value.Month, submissionTicket.CreateTime.Value.Day); DateTime nextDay = createDay.AddDays(1); int maxRankOfToday = Utilities.GetMaxTicketRankOfDay((from s in wmsEntities.SubmissionTicket where s.CreateTime >= createDay && s.CreateTime < nextDay select s.No).ToArray()); if (maxRankOfToday == -1) { MessageBox.Show("单号生成失败!请手动填写单号", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } submissionTicket.No = Utilities.GenerateTicketNo("J", submissionTicket.CreateTime.Value, maxRankOfToday + 1); } /////////////////////////////////////////////////////////////// End wmsEntities.SubmissionTicket.Add(submissionTicket); try { wmsEntities.SaveChanges(); //submissionTicket.No = Utilities.GenerateTicketNo() wmsEntities.SaveChanges(); foreach (KeyValuePair <ReceiptTicketItem, decimal> vp in receiptTicketItemsAndSubmissionAmount) { SubmissionTicketItem submissionTicketItem = new SubmissionTicketItem(); StockInfo stockInfo = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == vp.Key.ID select si).FirstOrDefault(); if (stockInfo == null) { MessageBox.Show("找不到对应的库存信息", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { if (stockInfo.ReceiptAreaAmount != null) { submissionTicketItem.ArriveAmount = stockInfo.ReceiptAreaAmount; } stockInfo.SubmissionAmount = vp.Value; stockInfo.ReceiptAreaAmount -= vp.Value; submissionTicketItem.ArriveAmount = vp.Key.ReceiviptAmount; submissionTicketItem.ReceiptTicketItemID = vp.Key.ID; submissionTicketItem.State = "待检"; vp.Key.State = "送检中"; submissionTicketItem.SubmissionAmount = vp.Value; submissionTicketItem.SubmissionTicketID = submissionTicket.ID; wmsEntities.SubmissionTicketItem.Add(submissionTicketItem); } } receiptTicket.HasSubmission = 1; receiptTicket.State = "送检中"; wmsEntities.SaveChanges(); /* * int count = wmsEntities.Database.SqlQuery<int>( * "SELECT COUNT(*) FROM ReceiptTicketItem " + * "WHERE ReceiptTicketID = @receiptTicketID AND State <> '送检中'", * new SqlParameter("receiptTicketID", receiptTicketID)).FirstOrDefault(); * if (count == 0) * { * wmsEntities.Database.ExecuteSqlCommand( * "UPDATE ReceiptTicket SET State='送检中' " + * "WHERE ID = @receiptTicketID", * new SqlParameter("receiptTicketID", receiptTicketID)); * } * else * { * wmsEntities.Database.ExecuteSqlCommand( * "UPDATE ReceiptTicket SET State='部分送检中' " + * "WHERE ID = @receiptTicketID", * new SqlParameter("receiptTicketID", receiptTicketID)); * } */ this.Search(); CallBack(); this.Hide(); MessageBox.Show("收货单条目送检成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch { MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error); return; } } } else { } }