Exemplo n.º 1
0
        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;
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        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));
        }