You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

158 lines
4.0 KiB
C#

9 months ago
using Newtonsoft.Json;
using NPoco;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace POSV.Entity.Report
{
/// <summary>
/// 营业分析
/// </summary>
[Serializable]
public class BusinessSummary
{
public BusinessSummary()
{
}
/// <summary>
/// 单号
/// </summary>
[JsonProperty(PropertyName = "name")]
[Column("name")]
public string Name { get; set; }
/// <summary>
/// 人数
/// </summary>
[JsonProperty(PropertyName = "people")]
[Column("people")]
public int People { get; set; }
/// <summary>
/// 单数
/// </summary>
[JsonProperty(PropertyName = "count")]
[Column("count")]
public int Count { get; set; }
/// <summary>
/// 销售金额
/// </summary>
[JsonProperty(PropertyName = "amount")]
[Column("amount")]
public decimal Amount { get; set; }
/// <summary>
/// 优惠金额
/// </summary>
[JsonProperty(PropertyName = "discountAmount")]
[Column("discountAmount")]
public decimal DiscountAmount { get; set; }
/// <summary>
/// 应收金额
/// </summary>
[JsonProperty(PropertyName = "receivableAmount")]
[Column("receivableAmount")]
public decimal ReceivableAmount { get; set; } //
/// <summary>
/// 赠送金额
/// </summary>
[JsonProperty(PropertyName = "zsAmount")]
[Column("zsAmount")]
public decimal ZsAmount { get; set; } //
private decimal _ticketPrice = 0;
/// <summary>
/// 单均
/// </summary>
[Ignore]
public decimal TicketPrice {
get
{
this._ticketPrice = ToRound(this.ReceivableAmount / (this.Count == 0 ?1 : this.Count),2);
return _ticketPrice;
}
set
{
this._ticketPrice = value;
}
} //
private decimal _peoplePrice = 0;
/// <summary>
/// 人均
/// </summary>
[Ignore]
public decimal PeoplePrice
{
get
{
this._peoplePrice = ToRound(this.ReceivableAmount / (this.People==0?1:this.People),2);
return _peoplePrice;
}
set
{
this._peoplePrice = value;
}
} //
private decimal _otherAmount = 0;
/// <summary>
/// 其他优惠
/// </summary>
[Ignore]
public decimal OtherAmount
{
get
{
this._otherAmount = ToRound(this.DiscountAmount-this.ZsAmount,2);
return _otherAmount;
}
set
{
this._otherAmount = value;
}
} //
/// <summary>
/// decimal保留指定位数小数
/// </summary>
/// <param name="num">原始数量</param>
/// <param name="scale">保留小数位数</param>
/// <returns>截取指定小数位数后的数量字符串</returns>
public decimal ToRound(decimal num, int scale)
{
string strDecimal = Math.Round(num, scale, MidpointRounding.AwayFromZero).ToString();
int index = strDecimal.IndexOf(".");
if (index == -1 || strDecimal.Length < index + scale + 1)
{
strDecimal = string.Format("{0:F" + scale + "}", num);
}
else
{
int length = index;
if (scale != 0)
{
length = index + scale + 1;
}
strDecimal = strDecimal.Substring(0, length);
}
decimal result;
decimal.TryParse(strDecimal, out result);
return result;
}
}
}