Beispiel #1
0
        private static Rate GenerateEmptyRateAndCreateHeaderText(RateRouting routing, RateHeaderRow HeaderRow)
        {
            Rate emptyRate = new Rate();

            emptyRate.CarrierCode = "-1";
            int ratedef_id         = 1;
            RateDefinitionColum wb = new RateDefinitionColum();
            int HeaderStartIndex   = 0;
            int HeaderRowCount     = 0;

            if (HeaderRow.RateType == RateType.CustomerSellingRate)
            {
                HeaderStartIndex = AppConstants.CustomerSellingRateHeaderColumnStartIndex;
                HeaderRowCount   = AppConstants.CustomerSellingRateDataColumnCount;
            }
            else if (HeaderRow.RateType == RateType.AirLineBuyingRate)
            {
                HeaderStartIndex = AppConstants.AirLineBuyingRateHeaderColumnStartIndex;
                HeaderRowCount   = AppConstants.AirLineBuyingRateDataColumnCount;
            }
            else if (HeaderRow.RateType == RateType.AgentBuyingRate)
            {
                HeaderStartIndex = AppConstants.AgentBuyingRateHeaderColumnStartIndex;
                HeaderRowCount   = AppConstants.AgentBuyingRateDataColumnCount;
            }
            else if (HeaderRow.RateType == RateType.IATARate)
            {
                HeaderStartIndex = AppConstants.IATARateHeaderColumnStartIndex;
                HeaderRowCount   = AppConstants.CustomerSellingRateDataColumnCount;
            }
            bool ValueExist = false;

            for (int i = HeaderStartIndex; i < HeaderRowCount - 1; i++)
            {
                if (HeaderRow.RateHeaderColumns[i].Value != null && HeaderRow.RateHeaderColumns[i].Value != "")
                {
                    ValueExist = true;
                    emptyRate.RateDefinitionColums.Add(new RateDefinitionColum()
                    {
                        Value = HeaderRow.RateHeaderColumns[i].Value, Rate = "", ID = ratedef_id++
                    });
                }
            }
            if (!ValueExist)
            {
                throw new Exception("At least one Rate Break shoud exist!");
            }
            RateManagementBL bl = new RateManagementBL();

            bl.GetNextRateID();
            emptyRate.RateID  = bl.GetNextRateID();
            emptyRate.RouteID = routing.ID;
            return(emptyRate);
        }
        public List <RateRouting> TranferRateRoutingsFromRaw(List <FlattenRateItem> rawList)
        {
            List <RateRouting> RoutingList = new List <RateRouting>();

            PrepRouteList(RoutingList, rawList);
            int rateid = 1;

            foreach (var RoutingItem in RoutingList)
            {
                var rawItems        = (from c in rawList where c.kg_lb == RoutingItem.Unit && c.dest_port == RoutingItem.Dest && c.origin_port == RoutingItem.Origin select c).ToList();
                var rawItemsbyGroup = (from c in rawItems group c by c.carrier into grps select grps).SelectMany(g => g);

                RoutingItem.Rates = new List <Rate>();
                int  CurrentCarrier = 0;
                Rate CurrentRate    = null;

                foreach (var r in rawItemsbyGroup)
                {
                    if (CurrentCarrier != r.carrier)
                    {
                        Rate rate = new Rate()
                        {
                            RouteID = RoutingItem.ID, RateID = rateid, CarrierCode = r.carrier.ToString(), Share = r.share.ToString(), RateDefinitionColums = new List <RateDefinitionColum>()
                        };
                        CurrentRate = rate;
                        RoutingItem.Rates.Add(rate);
                    }

                    RateDefinitionColum RateBreak = new RateDefinitionColum();
                    RateBreak.Caption = r.weight_break;
                    RateBreak.Value   = r.weight_break;
                    RateBreak.Rate    = r.rate.ToString();
                    RateBreak.ID      = r.id;
                    CurrentRate.RateDefinitionColums.Add(RateBreak);
                    CurrentRate.RawItemID = r.id;
                    CurrentCarrier        = r.carrier;
                    rateid++;
                }
            }
            RoutingList = (from c in RoutingList where c.Rates.Count > 0 select c).ToList();
            int routeid = 1;

            foreach (var r in RoutingList)
            {
                r.ID = routeid++;
            }

            return(RoutingList);
        }