Пример #1
0
        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
                });
            }
        }
Пример #2
0
        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,
            });
        }
Пример #3
0
        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;
            }
        }