private void LoadBuildingAudit(SupplierBuilding updatedBuildingItem) { var bank = cbBanks.SelectedItem as Astrodon.Data.BankData.Bank; if (updatedBuildingItem.BankId != bank.id) { _DataContext.SupplierBuildingAuditSet.Add(new SupplierBuildingAudit() { SupplierBuilding = updatedBuildingItem, UserId = Controller.user.id, AuditTimeStamp = DateTime.Now, FieldName = "Bank", OldValue = updatedBuildingItem.Bank != null ? updatedBuildingItem.Bank.Name : string.Empty, NewValue = bank.Name }); } if (updatedBuildingItem.BranchName != txtBranch.Text) { _DataContext.SupplierBuildingAuditSet.Add(new SupplierBuildingAudit() { SupplierBuilding = updatedBuildingItem, UserId = Controller.user.id, AuditTimeStamp = DateTime.Now, FieldName = "BranchName", OldValue = updatedBuildingItem.BranchName, NewValue = txtBranch.Text }); } if (updatedBuildingItem.BranceCode != txtBranchCode.Text) { _DataContext.SupplierBuildingAuditSet.Add(new SupplierBuildingAudit() { SupplierBuilding = updatedBuildingItem, UserId = Controller.user.id, AuditTimeStamp = DateTime.Now, FieldName = "BranceCode", OldValue = updatedBuildingItem.BranceCode, NewValue = txtBranchCode.Text }); } if (updatedBuildingItem.AccountNumber != txtAccountNumber.Text) { _DataContext.SupplierBuildingAuditSet.Add(new SupplierBuildingAudit() { SupplierBuilding = updatedBuildingItem, UserId = Controller.user.id, AuditTimeStamp = DateTime.Now, FieldName = "AccountNumber", OldValue = updatedBuildingItem.AccountNumber, NewValue = txtAccountNumber.Text }); } }
private void LoadBuildingAudit(SupplierBuilding updatedBuildingItem, DataContext context) { var bank = context.BankSet.Single(a => a.id == updatedBuildingItem.BankId); context.SupplierBuildingAuditSet.Add(new SupplierBuildingAudit() { SupplierBuilding = updatedBuildingItem, UserId = Controller.user.id, AuditTimeStamp = DateTime.Now, FieldName = "Bank", OldValue = null, NewValue = bank.Name }); context.SupplierBuildingAuditSet.Add(new SupplierBuildingAudit() { SupplierBuilding = updatedBuildingItem, UserId = Controller.user.id, AuditTimeStamp = DateTime.Now, FieldName = "BranchName", OldValue = null, NewValue = updatedBuildingItem.BranchName }); context.SupplierBuildingAuditSet.Add(new SupplierBuildingAudit() { SupplierBuilding = updatedBuildingItem, UserId = Controller.user.id, AuditTimeStamp = DateTime.Now, FieldName = "BranceCode", OldValue = null, NewValue = updatedBuildingItem.BranceCode }); context.SupplierBuildingAuditSet.Add(new SupplierBuildingAudit() { SupplierBuilding = updatedBuildingItem, UserId = Controller.user.id, AuditTimeStamp = DateTime.Now, FieldName = "AccountNumber", OldValue = null, NewValue = updatedBuildingItem.AccountNumber, }); }
private void btnSave_Click(object sender, EventArgs e) { if (_SupplierBuildingList == null) { return; } if (_Supplier == null) { return; } if (trnDatePicker.Value.Date <= _minDate) { Controller.HandleError("Please select a tranasction date", "Validation Error"); return; } var requisitionsToSave = _SupplierBuildingList.Where(a => a.Amount > 0).ToList(); var x = requisitionsToSave.Where(a => a.IsValid == false).Count(); if (x > 0) { Controller.HandleError("There are " + x.ToString() + " invalid requisitions.\n Please check that all items\n" + "To ignore a building clear the Amount column"); return; } if (_AttachmentRequired) { int c = requisitionsToSave.Where(a => a.FileLoaded == false).Count(); if (c > 0) { Controller.HandleError("There are " + c.ToString() + " missing invoices.\n Please check that all invoices are loaded"); return; } } this.Cursor = Cursors.WaitCursor; try { using (var context = SqlDataHandler.GetDataContext()) { //validate duplicates foreach (var requisition in requisitionsToSave) { var q = (from r in context.tblRequisitions where r.SupplierId == _Supplier.id && r.InvoiceNumber == requisition.InvoiceNumber && r.amount == requisition.Amount select r); if (q.Count() > 0) { Controller.HandleError("Duplicate requisition detected.\n" + requisition.BuildingName + "\n" + requisition.InvoiceNumber + " invoice has already been processed", "Validation Error"); this.Cursor = Cursors.Arrow; return; } } //Now save all the new requisitions foreach (var requisition in requisitionsToSave) { var item = new tblRequisition(); context.tblRequisitions.Add(item); if (!requisition.BankAlreadyLinked) { requisition.SupplierBank = _BankList.Where(a => a.id == requisition.BankId).Single().Name; } item.trnDate = trnDatePicker.Value.Date; item.account = requisition.OwnTrustAccount; item.reference = requisition.BuildingAbreviatio + (requisition.OwnTrustAccount == "TRUST" ? " (" + requisition.BuildingTrustAccount + ")" : ""); item.ledger = requisition.AccountNumberToDisplay; item.amount = requisition.Amount.Value; item.payreference = requisition.SupplierReference; item.userID = Controller.user.id; item.building = requisition.BuildingId; item.SupplierId = _Supplier.id; item.InvoiceNumber = requisition.InvoiceNumber; item.InvoiceDate = requisition.InvoiceDate; item.BankName = requisition.SupplierBank; item.BranchCode = requisition.BranchCode; item.BranchName = requisition.BranchName; item.AccountNumber = requisition.SupplierBankAccount; item.processed = false; if (!String.IsNullOrWhiteSpace(requisition.AttachmentFileName)) { context.RequisitionDocumentSet.Add(new RequisitionDocument() { Requisition = item, FileData = File.ReadAllBytes(requisition.AttachmentFileName), FileName = requisition.AttachmentFileName, IsInvoice = true }); } if (!requisition.BankAlreadyLinked) { //link the bank to the supplier var supBank = new SupplierBuilding() { BuildingId = requisition.BuildingId, AccountNumber = requisition.SupplierBankAccount, BankId = requisition.BankId.Value, BranceCode = requisition.BranchCode, BranchName = requisition.BranchName, SupplierId = _Supplier.id, Building = requisition.Building }; context.SupplierBuildingSet.Add(supBank); LoadBuildingAudit(supBank, context); } } context.SaveChanges(); Controller.ShowMessage("Saved " + requisitionsToSave.Count().ToString() + " requisitions"); ClearSupplier(); } } finally { this.Cursor = Cursors.Default; } }