Example #1
0
            /// <summary>
            /// Creates the charge lines from a charge info collection and calculates the shipping charge amount from charge lines.
            /// </summary>
            /// <param name="chargeInfoCollection">The charge info collection.</param>
            /// <param name="shippingChargeCode">The shipping charge code.</param>
            /// <param name="beginDateTime">The begin date time of order.</param>
            /// <param name="shippingChargeAmount">The amount of shipping charges.</param>
            /// <returns>The shipping charge amount.</returns>
            private static List <ChargeLine> CreateChargeLines(IEnumerable <ChargeInfo> chargeInfoCollection, string shippingChargeCode, DateTimeOffset beginDateTime, out decimal shippingChargeAmount)
            {
                List <ChargeLine> chargeLines = new List <ChargeLine>();

                shippingChargeAmount = decimal.Zero;

                foreach (ChargeInfo charge in chargeInfoCollection)
                {
                    ChargeLine chargeLine = SalesOrderHelper.CreateChargeLine(charge);

                    if (!chargeLine.BeginDateTime.IsValidAxDateTime())
                    {
                        chargeLine.BeginDateTime = beginDateTime.UtcDateTime;
                    }

                    if (!chargeLine.EndDateTime.IsValidAxDateTime())
                    {
                        chargeLine.EndDateTime = DateTimeOffsetExtensions.AxMaxDateValue.UtcDateTime;
                    }

                    chargeLines.Add(chargeLine);

                    if (chargeLine.ChargeCode.Equals(shippingChargeCode, StringComparison.OrdinalIgnoreCase))
                    {
                        shippingChargeAmount += chargeLine.CalculatedAmount;
                    }
                }

                return(chargeLines);
            }
Example #2
0
        public static void Delete(ChargeLine instance)
        {
            var db = new DefaultConnection();

            db.OrderLines.Remove(new LineViewModel(instance));
            db.SaveChanges();
        }
Example #3
0
        private static ChargeLine addChargeLine(LineViewModel l)
        {
            var o = new ChargeLine();

            l.Update(o);
            return(o);
        }
        public override void Execute()
        {
            var components = ChargeLine.Split("|");
            var otherCost  = new OtherCost();

            otherCost.InvoiceNumber = components[1];
            Record = otherCost;
        }
Example #5
0
 public void Update(ChargeLine line)
 {
     line.ExpectedDeliveryDate = ExpectedDeliveryDate;
     line.UniqueId             = UniqueId;
     line.OrderId     = OrderId;
     line.OrderLineId = OrderLineId;
     line.Comment     = Comment;
     line.Amount      = Amount;
 }
Example #6
0
 public LineEditModel(ChargeLine line)
 {
     ExpectedDeliveryDate = line.ExpectedDeliveryDate;
     UniqueId             = line.UniqueId;
     OrderLineId          = line.OrderLineId;
     OrderId = line.OrderId;
     Comment = line.Comment;
     Amount  = line.Amount;
 }
Example #7
0
        public void AddChargeLineTest()
        {
            var fakeChargeLineOne = new ChargeLine();
            var fakeChargeLineTwo = new ChargeLine();

            M.AddChargeLine(fakeChargeLineOne);
            Assert.AreEqual(1, ChargeLines.Instance.Count);
            M.AddChargeLine(fakeChargeLineTwo);
            Assert.AreEqual(2, ChargeLines.Instance.Count);
        }
Example #8
0
 public LineViewModel(ChargeLine line)
 {
     ExpectedDeliveryDate = line.ExpectedDeliveryDate;
     LineType             = line.GetType().Name;
     UniqueId             = line.UniqueId;
     OrderId     = line.OrderId;
     OrderLineId = line.OrderLineId;
     Comment     = line.Comment;
     Amount      = line.Amount;
 }
Example #9
0
        public void RemoveChargeLineTest()
        {
            var fakeChargeLineOne = ChargeLine.Random();
            var fakeChargeLineTwo = ChargeLine.Random();

            Obj.AddChargeLine(fakeChargeLineOne);
            Obj.AddChargeLine(fakeChargeLineTwo);
            Assert.AreEqual(2, OrderLines.Instance.Count);
            Obj.RemoveChargeLine(fakeChargeLineOne);
            Assert.AreEqual(1, OrderLines.Instance.Count);
        }
Example #10
0
        public ActionResult CreateChargeLine(
            [Bind(Include = "UniqueId, OrderId, OrderLineId, ExpectedDeliveryDate, Amount, Comment")]
            LineEditModel k)
        {
            if (!ModelState.IsValid)
            {
                return(View("EditChargeLine", k));
            }
            var line = new ChargeLine();

            k.Update(line);
            OrderLines.Instance.Add(line);
            return(RedirectToAction("OrderDetails", "Order", new { id = k.OrderId }));
        }
Example #11
0
        public void RemoveChargeLineTest()
        {
            var fakeChargeLineOne = new ChargeLine();

            fakeChargeLineOne.id = new OrderLineIdentifier();
            var fakeChargeLineTwo = new ChargeLine();

            fakeChargeLineTwo.id = new OrderLineIdentifier();
            M.AddChargeLine(fakeChargeLineOne);
            M.AddChargeLine(fakeChargeLineTwo);
            Assert.AreEqual(2, ChargeLines.Instance.Count);
            M.RemoveChargeLine(fakeChargeLineOne.id);
            Assert.AreEqual(1, ChargeLines.Instance.Count);
        }
            private SingleEntityDataServiceResponse <ChargeLine> GetChargeDetails(GetChargeLinesDataRequest request)
            {
                ThrowIf.Null(request, "request");
                ThrowIf.Null(request.QueryResultSettings, "request.QueryResultSettings");
                ThrowIf.Null(request.ChargeCode, "request.ChargeCode");

                ChargeL2CacheDataStoreAccessor level2CacheDataAccessor = this.GetChargeL2CacheDataStoreAccessor(request.RequestContext);

                bool       found;
                bool       updateL2Cache;
                string     dataAreaId = request.RequestContext.GetChannelConfiguration().InventLocationDataAreaId;
                ChargeLine result     = DataManager.GetDataFromCache(() => level2CacheDataAccessor.GetChargeDetails(dataAreaId, request.ChargeCode, request.ChargeModule, request.QueryResultSettings), out found, out updateL2Cache);

                if (!found)
                {
                    var query = new SqlPagedQuery(request.QueryResultSettings)
                    {
                        From  = ChargesView,
                        Where = "MARKUPCODE = @MarkupCode AND MODULETYPE = @ModuleType And DATAAREAID = @DataAreaId"
                    };

                    query.Parameters["@MarkupCode"] = request.ChargeCode;
                    query.Parameters["@ModuleType"] = request.ChargeModule;
                    query.Parameters["@DataAreaId"] = dataAreaId;

                    using (DatabaseContext databaseContext = new DatabaseContext(request.RequestContext))
                    {
                        result = databaseContext.ReadEntity <ChargeLine>(query).FirstOrDefault();
                    }

                    if (result == null)
                    {
                        result = new ChargeLine();
                    }

                    updateL2Cache &= result != null;
                }

                if (updateL2Cache)
                {
                    level2CacheDataAccessor.PutChargeDetails(dataAreaId, request.ChargeCode, request.ChargeModule, request.QueryResultSettings, result);
                }

                return(new SingleEntityDataServiceResponse <ChargeLine>(result));
            }
Example #13
0
            /// <summary>
            /// Create a charge line from the charge info object.
            /// </summary>
            /// <param name="charge">The charge info object.</param>
            /// <returns>The created charge line.</returns>
            private static ChargeLine CreateChargeLine(ChargeInfo charge)
            {
                var lineCharge = new ChargeLine
                {
                    NetAmount                    = charge.Amount,
                    CalculatedAmount             = charge.Amount,
                    NetAmountPerUnit             = charge.Amount,
                    Quantity                     = 1,
                    ChargeCode                   = charge.Code ?? string.Empty,
                    SalesTaxGroupId              = charge.SalesTaxGroup ?? string.Empty,
                    ItemTaxGroupId               = charge.TaxGroup ?? string.Empty,
                    ModuleType                   = ChargeModule.Sales,
                    ChargeType                   = ChargeType.ManualCharge,
                    GrossAmount                  = charge.Amount,
                    NetAmountWithAllInclusiveTax = charge.Amount
                };

                return(lineCharge);
            }
Example #14
0
 public ChargeLineDetailsViewModel(ChargeLine chargeline)
 {
     UniqueId = chargeline.UniqueId;
     Amount   = chargeline.Amount;
 }
Example #15
0
 private static void CalculateTaxForCharge(ChargeLine charge)
 {
     ChargeLineTotaler.CalculateTax(charge);
 }