irc-netcore-api/IRaCIS.Core.Application/Service/Financial/DTO/PaymentModel.cs

179 lines
5.7 KiB
C#

using System;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure.Extention;
namespace IRaCIS.Application.Contracts
{
public class PaymentDTO
{
public PageOutput<PaymentModel> CostList { get; set; }=new PageOutput<PaymentModel>();
public decimal ExchangeRate { get; set; }
}
public class PaymentModel
{
public Guid Id { get; set; }
public string RankName { get; set; } = String.Empty;
public Guid DoctorId { get; set; }
public string YearMonth { get; set; } = String.Empty;
public DateTime YearMonthDate { get; set; }
public DateTime? CalculateTime { get; set; }
public string CalculateUser { get; set; } = String.Empty;
//额外信息
public string Code { get; set; } = String.Empty;
public string FirstName { get; set; } = String.Empty;
public string LastName { get; set; } = String.Empty;
public string ChineseName { get; set; } = String.Empty;
public string Phone { get; set; } = String.Empty;
public string DoctorNameInBank { get; set; } = String.Empty;
public string IDCard { get; set; } = String.Empty;
public string BankCardNumber { get; set; } = String.Empty;
public string BankName { get; set; } = String.Empty;
public bool IsLock { get; set; } = false;
public decimal ExchangeRate { get; set; }
public decimal PaymentCNY { get; set; }
public decimal AdjustPaymentCNY { get; set; }
public decimal TotalPaymentCNY { get; set; }
public decimal PaymentUSD { get; set; }
public decimal AdjustPaymentUSD { get; set; }
public decimal TotalPaymentUSD { get; set; }
}
public class PaymentCommand
{
public Guid Id { get; set; }
public Guid DoctorId { get; set; }
public string YearMonth => new DateTime(Year, Month, 1).ToString("yyyy-MM");
public int Year { get; set; }
public int Month { get; set; }
public decimal PaymentUSD { get; set; }
public DateTime CalculateTime { get; set; }
public decimal PaymentCNY { get; set; }
public decimal ExchangeRate { get; set; }
public string CalculateUser { get; set; } = String.Empty;
}
public class MonthlyPaymentQueryDTO : PageInput
{
public DateTime StatisticsDate { get; set; }
public string KeyWord { get; set; } = String.Empty;
public int? Nation { get; set; }
}
public class MonthlyPaymentDetailQuery
{
public Guid PaymentId { get; set; }
public Guid ReviewerId { get; set; }
public DateTime YearMonth { get; set; }
}
//public class LaborPaymentQuery
//{
// public Guid PaymentId { get; set; }
// public Guid ReviewerId { get; set; }
// public DateTime YearMonth { get; set; }
//}
public class TrialAnalysisDTO
{
public Guid TrialId { get; set; }
public string Indication { get; set; } = String.Empty;
public string TrialCode { get; set; } = String.Empty;
public string Cro { get; set; } = string.Empty;
public int Expedited { get; set; }
public string Type { get; set; } = String.Empty;
public decimal PaymentUSD { get; set; }
public decimal RevenusUSD { get; set; }
public decimal GrossProfit => RevenusUSD - PaymentUSD;
public decimal GrossProfitMargin
{
get {
if (RevenusUSD == 0)
return 0;
else
{
return GrossProfit / RevenusUSD;
}
}
}
}
public class LaborPayment
{
public string ChineseName { get; set; } = String.Empty;
public string FirstName { get; set; } = String.Empty;
public string LastName { get; set; } = String.Empty;
public string ResidentId { get; set; } = String.Empty;
public string Phone { get; set; } = String.Empty;
public string AccountNumber { get; set; } = String.Empty;
public string Bank { get; set; } = String.Empty;
public string YearMonth { get; set; } = String.Empty;
public decimal PaymentCNY { get; set; }
public decimal TaxCNY { get; set; }
public decimal ActuallyPaidCNY { get; set; }
public decimal BankTransferCNY { get; set; }
}
public class ReviewerAnalysisDTO
{
public List<string> MissingTrialCodes = new List<string>();
public string ChineseName { get; set; } = String.Empty;
public string FirstName { get; set; } = String.Empty;
public string LastName { get; set; } = String.Empty;
public Guid ReviewerId { get; set; }
public string ReviewerCode { get; set; } = String.Empty;
public decimal PaymentUSD { get; set; }
public decimal RevenusUSD { get; set; }
public decimal GrossProfit => RevenusUSD - PaymentUSD;
public decimal GrossProfitMargin
{
get {
if (RevenusUSD == 0)
return 0;
else
{
return GrossProfit / RevenusUSD;
}
}
}
}
public class AnalysisQueryDTO
{
public string Reviewer { get; set; } = String.Empty;
public DateTime BeginDate { get; set; }
public DateTime EndDate { get; set; }
public int? Nation { get; set; }
}
public class TrialAnalysisQueryDTO
{
public Guid? CroId { get; set; }
public string TrialCode { get; set; } = String.Empty;
public DateTime BeginDate { get; set; }
public DateTime EndDate { get; set; }
public AttendedReviewerType? AttendedReviewerType { get; set; }
}
}