private void 发票信息编辑窗体_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result = MessageBox.Show("是否要保存?", "提示信息", MessageBoxButtons.YesNoCancel); if (customDataGridView1.Rows.Count != 0) { if (result == DialogResult.Yes) { customDataGridView1.EndEdit(); foreach (DataGridViewRow dgvr in customDataGridView1.Rows) { DateTime dateTemp; if (!DateTime.TryParse(dgvr.Cells["发票日期"].Value == null ? "" : dgvr.Cells["发票日期"].Value.ToString(), out dateTemp)) { continue; } Bus_PurchasingMG_AccountBill_Invoice lnqTemp = new Bus_PurchasingMG_AccountBill_Invoice(); lnqTemp.BillNo = m_billNo; lnqTemp.InvoiceTime = dateTemp; lnqTemp.InvoiceNo = dgvr.Cells["发票号"].Value.ToString(); _List_Invoice.Add(lnqTemp); } } else if (result == DialogResult.Cancel) { e.Cancel = true; } else if (result == DialogResult.No) { _List_Invoice = null; } } else { _List_Invoice = null; } }
/// <summary> /// 保存信息 /// </summary> /// <param name="billInfo">单据信息</param> /// <param name="invoiceInfo">发票信息列表</param> /// <param name="detailInfo">明细信息列表</param> public void SaveInfo(Bus_PurchasingMG_AccountBill billInfo, List <Bus_PurchasingMG_AccountBill_Invoice> invoiceInfo, List <View_Bus_PurchasingMG_AccountBill_Detail> detailInfo) { try { using (DepotManagementDataContext ctx = CommentParameter.DepotDataContext) { ctx.Connection.Open(); using (ctx.Transaction = ctx.Connection.BeginTransaction()) { var varData = from a in ctx.Bus_PurchasingMG_AccountBill where a.BillNo == billInfo.BillNo select a; if (varData.Count() == 1) { Bus_PurchasingMG_AccountBill lnqBill = varData.Single(); lnqBill.Provider = billInfo.Provider; lnqBill.Remark = billInfo.Remark; lnqBill.VoucherNo = billInfo.VoucherNo; lnqBill.FinanceTime = billInfo.FinanceTime; } else if (varData.Count() == 0) { ctx.Bus_PurchasingMG_AccountBill.InsertOnSubmit(billInfo); } else { throw new Exception("单据数据不唯一"); } var varInvoice = from a in ctx.Bus_PurchasingMG_AccountBill_Invoice where a.BillNo == billInfo.BillNo select a; ctx.Bus_PurchasingMG_AccountBill_Invoice.DeleteAllOnSubmit(varInvoice); ctx.SubmitChanges(); if (invoiceInfo != null && invoiceInfo.Count > 0) { foreach (Bus_PurchasingMG_AccountBill_Invoice item in invoiceInfo) { Bus_PurchasingMG_AccountBill_Invoice lnqTemp = new Bus_PurchasingMG_AccountBill_Invoice(); lnqTemp.F_Id = Guid.NewGuid().ToString(); lnqTemp.BillNo = billInfo.BillNo; lnqTemp.InvoiceTime = item.InvoiceTime; lnqTemp.InvoiceNo = item.InvoiceNo; ctx.Bus_PurchasingMG_AccountBill_Invoice.InsertOnSubmit(lnqTemp); } } var varDetail = from a in ctx.Bus_PurchasingMG_AccountBill_Detail where a.BillNo == billInfo.BillNo select a; ctx.Bus_PurchasingMG_AccountBill_Detail.DeleteAllOnSubmit(varDetail); ctx.SubmitChanges(); foreach (View_Bus_PurchasingMG_AccountBill_Detail item in detailInfo) { Bus_PurchasingMG_AccountBill_Detail lnqTemp = new Bus_PurchasingMG_AccountBill_Detail(); lnqTemp.F_Id = Guid.NewGuid().ToString(); lnqTemp.BillNo = billInfo.BillNo; lnqTemp.AccountCount = item.实付数量; lnqTemp.AccountPrice = item.发票金额; lnqTemp.GoodsID = item.GoodsID; lnqTemp.Remark = item.备注; lnqTemp.YearMonth = item.挂账年月; lnqTemp.YGCount = item.应付数量; lnqTemp.YGUnitPrice = item.协议单价; lnqTemp.TaxRate = item.税率; ctx.Bus_PurchasingMG_AccountBill_Detail.InsertOnSubmit(lnqTemp); } ctx.SubmitChanges(); ctx.Transaction.Commit(); } } } catch (Exception) { throw; } }