private void GetIATARate(RateTable model) { model.RateRoutes.Clear(); RateManagementBL bl = new RateManagementBL(); List <RateRouting> routes = bl.GetRateRoutings(int.Parse(GetCurrentELTUser().elt_account_number), model.CustomerAccount, Convert.ToInt32(RateType.IATARate)); AddMinCol(routes); CodeListBL BL = new CodeListBL(); var list = BL.GetCarrierList(); foreach (var route in routes) { var info = bl.GetRouting(route.ID); RateRoute r = new RateRoute(RateType.IATARate) { RouteID = route.ID, Mode = RateRouteMode.Edit }; r.RouteID = route.ID; r.HeaderRow.RateType = RateType.IATARate; int data_start_index = AppConstants.IATARateHeaderColumnStartIndex; r.HeaderRow.RateHeaderColumns[0].Text = info.Origin; r.HeaderRow.RateHeaderColumns[1].Text = info.Dest; r.HeaderRow.RateHeaderColumns[2].Text = info.UnitText; r.HeaderRow.RateHeaderColumns[2].Value = info.Unit; bl.RefreshWeightBreakText(info.Rates[0].RateDefinitionColums); info.Rates[0].RateDefinitionColums = info.Rates[0].RateDefinitionColums.OrderBy(m => decimal.Parse(m.Value)).ToList(); for (int i = 0; i < info.Rates[0].RateDefinitionColums.Count; i++) { r.HeaderRow.RateHeaderColumns[data_start_index].Value = info.Rates[0].RateDefinitionColums[i].Value; r.HeaderRow.RateHeaderColumns[data_start_index].Text = info.Rates[0].RateDefinitionColums[i].Caption; data_start_index++; } foreach (var rate in route.Rates) { rate.RateDefinitionColums = rate.RateDefinitionColums.OrderBy(m => decimal.Parse(m.Value)).ToList(); data_start_index = AppConstants.IATARateDataColumnStartIndex; var data_row = new RateRow(RateType.IATARate, AppConstants.IATARateDataColumnCount); data_row.RouteId = route.ID; data_row.Id = rate.RateID; data_row.Columns[0].WeightBreakValueTag = "CarrierCode"; data_row.Columns[0].Value = rate.CarrierCode; data_row.Columns[0].Text = (from c in list where c.Value == rate.CarrierCode select c.Text).Single(); data_row.Columns[0].IsDropDown = true; data_row.Columns[0].DropDownType = ColumnDropDownType.Carrier; for (int i = 1; i < 2; i++) { data_row.Columns[i].IsDropDown = true; data_row.Columns[i].IsHidden = true; } foreach (var col in rate.RateDefinitionColums) { data_row.Columns[data_start_index].WeightBreakValueTag = col.Value; data_row.Columns[data_start_index].Value = col.Rate; data_row.Columns[data_start_index].Text = col.Rate; data_start_index++; } data_row.Columns[data_row.Columns.Count - 1].Text = rate.Share; data_row.Columns[data_row.Columns.Count - 1].Value = rate.Share; data_row.Columns[data_row.Columns.Count - 1].WeightBreakValueTag = "Share"; r.Rows.Add(data_row); } model.RateRoutes.Add(r); } foreach (var r in model.RateRoutes) { foreach (var row in r.Rows) { foreach (var col in row.Columns) { if (col.Text == null || col.Text == "") { if (col.Value == null || col.Value == "") { col.IsEmptyCell = true; } } } } } }
public ActionResult RateTable(RateTable model) { RateManagementBL bl = new RateManagementBL(); if (!string.IsNullOrEmpty(Request["ActionParam"])) { if (Convert.ToString(Request["ActionParam"]) == "SaveAll") { List <RateRouting> rRList = null; PersistViewModel(model); rRList = bl.GetRateRoutingFromSession((int)model.RateType); bool isValid = true; //모든 타입에 저장시 보아야할 것은 중복된 carrier code 이다. foreach (var r in rRList) { foreach (var rate in r.Rates) { var count = from c in r.Rates where c.CarrierCode == rate.CarrierCode select c; if (count.Count() > 1) { MsgText = "Duplicate Carrier Code exists. Save failed!"; isValid = false; break; } } if (!isValid) { break; } } if (isValid) { MsgText = "Rate table saved successfully!"; try { bl.SaveRateInfo(rRList); } catch (Exception ex) { MsgText = ex.Message; } } } if (Convert.ToString(Request["ActionParam"]) == "CancelAddRoute") { model.ClientAction = "CancelAddRoute"; } if (Convert.ToString(Request["ActionParam"]) == "SaveRoute") { var HeaderRow = model.RateRoutes[0].HeaderRow; SetMissingDropDownTextForRateHeaderRow(HeaderRow); RateRouting routing = new RateRouting(); try { GetNewRouteInfoFromView(model, routing); bl.InsertRoute(routing); } catch (Exception ex) { model.ShouldOpenAddRoute = true; MsgText = ex.Message; } } if (Convert.ToString(Request["ActionParam"]) == "AddRoute") { PersistViewModel(model); int newRateId = bl.GetNewRoutingID(); RateRoute RateRoute = new RateRoute(model.RateType) { RouteID = newRateId, Mode = RateRouteMode.Add }; model.RateRoutes.Clear(); model.RateRoutes.Add(RateRoute); model.ClientAction = "AddRoute"; return(View(model)); } if (Convert.ToString(Request["ActionParam"]) == "AddCarrier") { PersistViewModel(model); int AddCarrierRouteID = model.AddCarrierRouteID; RateRoute target = (from c in model.RateRoutes where c.RouteID == AddCarrierRouteID select c).Single(); var routing = bl.GetRouting(target.RouteID); var emptyRate = GenerateEmptyRateAndCreateHeaderText(routing, target.HeaderRow); routing.Rates.Add(emptyRate); } if (Convert.ToString(Request["ActionParam"]) == "DeleteCarrier") { PersistViewModel(model); int DeleteCarrierRouteID = model.DeleteCarrierRouteID; int DeleteCarrierID = model.DeleteCarrierID; RateRoute target_route = (from c in model.RateRoutes where c.RouteID == DeleteCarrierRouteID select c).Single(); RateRow target_row = (from c in target_route.Rows where c.Id == DeleteCarrierID select c).Single(); var routing = bl.GetRouting(target_route.RouteID); if (routing.Rates.Count == 1) { bl.DeleteRoute(routing); } else { var rate = (from c in routing.Rates where c.RateID == DeleteCarrierID select c).Single(); bl.DeleteRate(DeleteCarrierID, DeleteCarrierRouteID); } } } SetVariablesToSession(model); if (model.IsInit == "Init") { model.IsInit = ""; bl.ClearRateRoutings(); } if (model.RateType == RateType.CustomerSellingRate) { GetCustomerSellingRate(model); } if (model.RateType == RateType.AgentBuyingRate) { GetAgentBuyingRate(model); } if (model.RateType == RateType.IATARate) { GetIATARate(model); } if (model.RateType == RateType.AirLineBuyingRate) { GetAirlineBuyingRate(model); } model.Message = MsgText; return(View(model)); }