当前位置: 首页>>代码示例>>C#>>正文


C# Ticket.GetPreTaxServicesTotal方法代码示例

本文整理汇总了C#中Samba.Domain.Models.Tickets.Ticket.GetPreTaxServicesTotal方法的典型用法代码示例。如果您正苦于以下问题:C# Ticket.GetPreTaxServicesTotal方法的具体用法?C# Ticket.GetPreTaxServicesTotal怎么用?C# Ticket.GetPreTaxServicesTotal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Samba.Domain.Models.Tickets.Ticket的用法示例。


在下文中一共展示了Ticket.GetPreTaxServicesTotal方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CalculateOrderTotal

 public static decimal CalculateOrderTotal(Ticket ticket, Order order)
 {
     var discount = ticket.GetPreTaxServicesTotal();
     if (discount != 0)
     {
         var tsum = ticket.GetPlainSum();
         var rate = tsum > 0 ? (discount * 100) / tsum : 100;
         var tiTotal = order.GetTotal();
         var itemDiscount = (tiTotal * rate) / 100;
         return tiTotal + itemDiscount;
     }
     return order.GetTotal();
 }
开发者ID:betology,项目名称:SambaPOS-3,代码行数:13,代码来源:MenuGroupBuilder.cs

示例2: RecalculateTicket

 public void RecalculateTicket(Ticket ticket)
 {
     var total = ticket.TotalAmount;
     ticket.Calculations.Where(x => x.CalculationType == 5).ToList().ForEach(
         x => x.Amount = _expressionService.EvalCommand(FunctionNames.Calculation, "_" + x.Name, new { Ticket = ticket }, 0m));
     ticket.Recalculate();
     if (total != ticket.TotalAmount)
     {
         _applicationState.NotifyEvent(RuleEventNames.TicketTotalChanged,
             new
             {
                 Ticket = ticket,
                 PreviousTotal = total,
                 TicketTotal = ticket.GetSum(),
                 DiscountTotal = ticket.GetPreTaxServicesTotal(),
                 PaymentTotal = ticket.GetPaymentAmount(),
                 RemainingAmount = ticket.GetRemainingAmount()
             });
     }
 }
开发者ID:hperassi,项目名称:SambaPOS-3,代码行数:20,代码来源:TicketService.cs

示例3: RecalculateTicket

 public void RecalculateTicket(Ticket ticket)
 {
     var total = ticket.TotalAmount;
     ticket.Recalculate();
     if (total != ticket.TotalAmount)
     {
         _automationService.NotifyEvent(RuleEventNames.TicketTotalChanged,
             new
             {
                 Ticket = ticket,
                 PreviousTotal = total,
                 TicketTotal = ticket.GetSum(),
                 DiscountTotal = ticket.GetPreTaxServicesTotal(),
                 PaymentTotal = ticket.GetPaymentAmount(),
                 RemainingAmount = ticket.GetRemainingAmount()
             });
     }
 }
开发者ID:neapolis,项目名称:SambaPOS-3,代码行数:18,代码来源:TicketService.cs

示例4: GroupLinesByValue

 private IEnumerable<Order> GroupLinesByValue(Ticket ticket, Func<MenuItem, string> selector, string defaultValue, bool calcDiscounts = false)
 {
     var discounts = calcDiscounts ? ticket.GetPreTaxServicesTotal() : 0;
     var di = discounts > 0 ? discounts / ticket.GetPlainSum() : 0;
     var cache = new Dictionary<string, decimal>();
     foreach (var order in ticket.Orders.OrderBy(x => x.Id).ToList())
     {
         var item = order;
         var value = _cacheService.GetMenuItemData(item.MenuItemId, selector);
         if (string.IsNullOrEmpty(value)) value = defaultValue;
         if (!cache.ContainsKey(value))
             cache.Add(value, 0);
         var total = (item.GetTotal());
         cache[value] += Decimal.Round(total - (total * di), 2);
     }
     return cache.Select(x => new Order
     {
         MenuItemName = x.Key,
         Price = x.Value,
         Quantity = 1,
         PortionCount = 1
     });
 }
开发者ID:neapolis,项目名称:SambaPOS-3,代码行数:23,代码来源:PrinterService.cs

示例5: ReplaceDocumentVars

        private static string ReplaceDocumentVars(string document, Ticket ticket, int orderNo, string userName)
        {
            string result = document;
            if (string.IsNullOrEmpty(document)) return "";

            result = FormatData(result, TagNames.TicketDate, () => ticket.Date.ToShortDateString());
            result = FormatData(result, TagNames.TicketTime, () => ticket.Date.ToShortTimeString());
            result = FormatData(result, TagNames.Date, () => DateTime.Now.ToShortDateString());
            result = FormatData(result, TagNames.Time, () => DateTime.Now.ToShortTimeString());
            result = FormatData(result, TagNames.TicketId, () => ticket.Id.ToString());
            result = FormatData(result, TagNames.TicketNo, () => ticket.TicketNumber);
            result = FormatData(result, TagNames.OrderNo, orderNo.ToString);
            result = FormatData(result, TagNames.TicketTag, ticket.GetTagData);
            result = FormatDataIf(true, result, TagNames.Department, () => GetDepartmentName(ticket.DepartmentId));

            const string ticketTagPattern = TagNames.TicketTag2 + "[^}]+}";

            while (Regex.IsMatch(result, ticketTagPattern))
            {
                var value = Regex.Match(result, ticketTagPattern).Groups[0].Value;
                var tags = "";
                try
                {
                    var tag = value.Trim('{', '}').Split(':')[1];
                    tags = tag.Split(',').Aggregate(tags, (current, t) => current +
                        (!string.IsNullOrEmpty(ticket.GetTagValue(t.Trim()))
                        ? (t + ": " + ticket.GetTagValue(t.Trim()) + "\r")
                        : ""));
                    result = FormatData(result.Trim('\r'), value, () => tags);
                }
                catch (Exception)
                {
                    result = FormatData(result, value, () => "");
                }
            }

            const string ticketTag2Pattern = TagNames.TicketTag3 + "[^}]+}";

            while (Regex.IsMatch(result, ticketTag2Pattern))
            {
                var value = Regex.Match(result, ticketTag2Pattern).Groups[0].Value;
                var tag = value.Trim('{', '}').Split(':')[1];
                var tagValue = ticket.GetTagValue(tag);
                try
                {
                    result = FormatData(result, value, () => tagValue);
                }
                catch (Exception)
                {
                    result = FormatData(result, value, () => "");
                }
            }

            var title = userName;

            result = FormatData(result, TagNames.LocationUser, () => title);
            result = FormatData(result, TagNames.UserName, () => userName);
            result = FormatData(result, TagNames.Note, () => ticket.Note);
            result = FormatData(result, TagNames.AccName, () => ticket.AccountName);

            if (ticket.AccountId > 0 && (result.Contains(TagNames.AccAddress) || result.Contains(TagNames.AccPhone)))
            {
                var account = Dao.SingleWithCache<Resource>(x => x.Id == ticket.AccountId);
                result = FormatData(result, TagNames.AccPhone, () => account.SearchString);
            }

            result = RemoveTag(result, TagNames.AccAddress);
            result = RemoveTag(result, TagNames.AccPhone);

            var payment = ticket.GetPaymentAmount();
            var remaining = ticket.GetRemainingAmount();
            var plainTotal = ticket.GetPlainSum();
            var preTaxServices = ticket.GetPreTaxServicesTotal();
            var taxAmount = ticket.CalculateTax(plainTotal, preTaxServices);  //GetTaxTotal(ticket.Orders, plainTotal, ticket.GetDiscountTotal());
            var servicesTotal = ticket.GetPostTaxServicesTotal();
            //ticket.CalculateTax(plainTotal, preTaxServices);

            result = FormatDataIf(taxAmount > 0 || preTaxServices > 0 || servicesTotal > 0, result, TagNames.PlainTotal, () => plainTotal.ToString("#,#0.00"));
            result = FormatDataIf(preTaxServices > 0, result, TagNames.DiscountTotal, () => preTaxServices.ToString("#,#0.00"));
            result = FormatDataIf(taxAmount > 0, result, TagNames.TaxTotal, () => taxAmount.ToString("#,#0.00"));
            result = FormatDataIf(taxAmount > 0, result, TagNames.TaxDetails, () => GetTaxDetails(ticket.Orders, plainTotal, preTaxServices));
            result = FormatDataIf(servicesTotal > 0, result, TagNames.CalculationDetails, () => GetServiceDetails(ticket));

            result = FormatDataIf(payment > 0, result, TagNames.IfPaid,
                () => string.Format(Resources.RemainingAmountIfPaidValue_f, payment.ToString("#,#0.00"), remaining.ToString("#,#0.00")));

            result = FormatDataIf(preTaxServices > 0, result, TagNames.IfDiscount,
                () => string.Format(Resources.DiscountTotalAndTicketTotalValue_f, (plainTotal).ToString("#,#0.00"), preTaxServices.ToString("#,#0.00")));

            result = FormatDataIf(preTaxServices < 0, result, TagNames.IfFlatten, () => string.Format(Resources.IfNegativeDiscountValue_f, preTaxServices.ToString("#,#0.00")));

            result = FormatData(result, TagNames.TicketTotal, () => ticket.GetSum().ToString("#,#0.00"));
            result = FormatData(result, TagNames.PaymentTotal, () => ticket.GetPaymentAmount().ToString("#,#0.00"));
            result = FormatData(result, TagNames.Balance, () => ticket.GetRemainingAmount().ToString("#,#0.00"));

            result = FormatData(result, TagNames.TotalText, () => HumanFriendlyInteger.CurrencyToWritten(ticket.GetSum()));
            result = FormatData(result, TagNames.Totaltext, () => HumanFriendlyInteger.CurrencyToWritten(ticket.GetSum(), true));

            result = _settingReplacer.ReplaceSettingValue("{SETTING:([^}]+)}", result);

//.........这里部分代码省略.........
开发者ID:betology,项目名称:SambaPOS-3,代码行数:101,代码来源:TicketFormatter.cs


注:本文中的Samba.Domain.Models.Tickets.Ticket.GetPreTaxServicesTotal方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。