private void RollbackRequsitionBatch(RequisitionBatch batch) { using (var context = SqlDataHandler.GetDataContext()) { context.RequisitionBatchRollback(batch.id); } }
private void CommitRequisitionBatch(RequisitionBatch batch) { using (var context = SqlDataHandler.GetDataContext()) { context.CommitRequisitionBatch(batch.id); SendPaymentNotifications(context, batch.id, Controller.user.email); } }
private byte[] CreateCSVForBuildingBatch(tblBuilding building, RequisitionBatch batch, out string fileName) { fileName = string.Empty; if (!building.IsUsingNedbank) { return(null); } return(CreateNedbankCSV(building, batch, out fileName)); }
private static byte[] CreateNedbankCSV(tblBuilding building, RequisitionBatch batch, out string fileName) { fileName = null; string fromAccountNumber = building.bankAccNumber; string fromAccountDescription = building.accName; string fromAccountSubAccountNumber = string.Empty; using (var context = SqlDataHandler.GetDataContext()) { var q = from r in context.tblRequisitions where r.RequisitionBatchId == batch.id && r.UseNedbankCSV == true select new NedbankCSVRecord { FromAccountNumber = fromAccountNumber, FromAccountDescription = fromAccountDescription, MyStatementDescription = r.payreference, BeneficiaryReferenceNumber = r.NedbankCSVBenificiaryReferenceNumber, BeneficiaryStatementDescription = r.payreference, Amount = r.amount }; var transactions = q.ToList(); //var csvFile = new NedbankCSVFile(transactions); using (MemoryStream fs = new MemoryStream()) { using (StreamWriter tw = new StreamWriter(fs)) { foreach (var t in transactions) { tw.WriteLine(t.ToString()); } } byte[] result = new byte[fs.Length]; fs.Flush(); fs.Read(result, 0, result.Length); fileName = "Nedbank - " + building.Code + "-" + batch.BatchNumber.ToString().PadLeft(6, '0') + ".csv"; return(result); } } }
private RequisitionBatch CreateRequisitionBatch(int buildingId, bool buildingHasCSVExport, bool warnIfNoRequisitions = true) { ShowDebug("Start batch for building"); using (var context = SqlDataHandler.GetDataContext()) { ShowDebug("Context created"); int batchNumber = 0; var requisitions = context.tblRequisitions .Where(a => a.building == buildingId && a.processed == false && a.RequisitionBatchId == null).ToList(); ShowDebug("Query executed"); if (requisitions.Count <= 0) { context.ClearStuckRequisitons(buildingId); requisitions = context.tblRequisitions.Where(a => a.building == buildingId && a.processed == false && a.RequisitionBatchId == null).ToList(); } if (requisitions.Count <= 0) { if (warnIfNoRequisitions) { Controller.ShowMessage("There are no outstanding requisitions to process."); } ShowDebug("Return NULL in batch"); return(null); } ShowDebug("Found Requisitions"); var previousBatch = context.RequisitionBatchSet.Where(a => a.BuildingId == buildingId).OrderByDescending(a => a.BatchNumber).FirstOrDefault(); if (previousBatch == null) { batchNumber = 1; } else { batchNumber = previousBatch.BatchNumber + 1; } ShowDebug("Batch Number: " + batchNumber.ToString()); //find all requisitions var batch = new RequisitionBatch() { BuildingId = buildingId, BatchNumber = batchNumber, UserId = Controller.user.id, Created = DateTime.Now, Entries = requisitions.Count() }; foreach (var requisition in requisitions) { if (buildingHasCSVExport && requisition.SupplierId != null) { var supplierBank = context.SupplierBuildingSet.Where(a => a.SupplierId == requisition.SupplierId && a.BuildingId == buildingId).FirstOrDefault(); if (supplierBank != null && !String.IsNullOrWhiteSpace(supplierBank.BeneficiaryReferenceNumber)) { requisition.NedbankCSVBenificiaryReferenceNumber = supplierBank.BeneficiaryReferenceNumber; requisition.UseNedbankCSV = true; } } requisition.RequisitionBatch = batch; } ShowDebug("Save batch for building"); context.RequisitionBatchSet.Add(batch); context.SaveChanges(); Application.DoEvents(); ShowDebug("Return batch for building"); return(batch); } }