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#
158 lines
4.0 KiB
C#
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;
|
|
}
|
|
}
|
|
|
|
}
|