public ActionResult _SaveSelected(List <string> list) { string msg = string.Empty; try { foreach (var item in list) { string[] values = item.Split(','); int scaleId = Convert.ToInt32(values[0]); decimal amt = Convert.ToDecimal(values[1]); decimal netWt = Convert.ToDecimal(values[2]); if (scaleId > 0 && amt > 0 && netWt > 0) { //Get all unsettled scale tickets string dbContextConnectionString = ConfigurationHelper.GetsmARTDBContextConnectionString(); ScaleLibrary scaleLibrary = new smART.Library.ScaleLibrary(); scaleLibrary.Initialize(dbContextConnectionString); Scale scale = scaleLibrary.GetUnSettledRecAndBrokAndTradScaleById(scaleId, new string[] { "Dispatch_Request_No", "Party_ID", "Purchase_Order", "Container_No.Booking.Sales_Order_No.Party" }); // Start transaction. using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted })) { //Save settlement Settlement settlement = SaveSettlement(scale, amt, netWt); //Save Settlement details. bool saveDetails = SaveSettlementDetails(ChildEntityList, settlement); // If settlement details not saved or there are no items in details. if (saveDetails == false) { throw new Exception("Settlement details items not found."); } msg += msg.Length > 0 ? "," + scaleId.ToString() : scaleId.ToString(); scope.Complete(); } } } if (string.IsNullOrEmpty(msg)) { return(Json(msg)); } ModelState.Clear(); ClearChildEntities(ChildEntityList); return(Json(string.Format("Ticket Number: {0} is settled sucessfully.", msg))); } catch (Exception ex) { ModelState.AddModelError("Error", ex.Message); return(Json(string.Format("An error occured during settlement."))); } }
public ActionResult Display(GridCommand command) { int totalRows = 0; foreach (FilterDescriptor filterDesc in command.FilterDescriptors) { if (filterDesc.Member == "Scale.ID") { filterDesc.Member = "ID"; } else if (filterDesc.Member == "Scale.Party_ID.ListText") { filterDesc.Member = "Party_ID.Party_Name"; } else if (filterDesc.Member == "Scale.Created_Date") { filterDesc.Member = "Created_Date"; } } //Get all unsettled scale tickets string dbContextConnectionString = ConfigurationHelper.GetsmARTDBContextConnectionString(); ScaleLibrary scaleLibrary = new smART.Library.ScaleLibrary(); scaleLibrary.Initialize(dbContextConnectionString); IEnumerable <Scale> scaleList = scaleLibrary.GetUnSettledRecAndBrokAndTradScaleByPagging( out totalRows, command.Page, command.PageSize, "ID", "Asc", new string[] { "Dispatch_Request_No", "Party_ID", "Purchase_Order", "Container_No.Booking.Sales_Order_No.Party" }, (command.FilterDescriptors.Count == 0 ? null : command.FilterDescriptors) ); IList <Settlement> resultList = new List <Settlement>(); // Create settlement collection by scale tickets int iValue = 1; foreach (var item in scaleList) { Settlement settlement = new Settlement(); settlement.ID = iValue; settlement.Scale = item; if (settlement.Scale.Purchase_Order == null) { settlement.Scale.Purchase_Order = new PurchaseOrder(); settlement.Scale.Purchase_Order = item.Purchase_Order; } settlement.Amount = 0; settlement.Actual_Net_Weight = item.Net_Weight; settlement.Ready_For_Payment = false; resultList.Add(settlement); iValue++; } return(View(new GridModel { Data = resultList, Total = totalRows })); }