using System; using System.Collections.Generic; using IRaCIS.Common.Model; namespace IRaCIS.Application.ViewModels.Pay { public class PaymentDetailDTO { public Guid Id { get; set; } public Guid PaymentId { get; set; } public string YearMonth { get; set; } public Guid DoctorId { get; set; } public Guid TrialId { get; set; } public string TrialCode { get; set; } public string PaymentType { get; set; } public int Count { get; set; } public double BasePrice { get; set; } public double PersonalAdditional { get; set; } public double TrialAdditional { get; set; } public int ShowTypeOrder { get; set; } public int ShowCodeOrder { get; set; } public double ExchangeRate { get; set; } public double PaymentUSD { get; set; } public double PaymentCNY { get; set; } public double TotalUnitPrice => Math.Round(BasePrice + PersonalAdditional + TrialAdditional, 2, MidpointRounding.AwayFromZero); public AdjustmentDTO AdjustmentView { get; set; } } public class AdjustmentDTO { public double AdjustPaymentUSD { get; set; } public double AdjustPaymentCNY { get; set; } public DateTime? ErrorYearMonth { get; set; } public string AdjustType { get { if (AdjustPaymentUSD > 0) { return "+"; } else if (AdjustPaymentUSD < 0) { return "-"; } else { return string.Empty; } } } public string Note { get; set; } } public class PaymentDetailCommand : PaymentDetailDTO { } public class PayDetailDTO { public IEnumerable DetailList = new List(); public DoctorPayInfo DoctorInfo { get; set; } = new DoctorPayInfo(); } public class LockPaymentDTO { public List ReviewerIdList { get; set; } public DateTime Month { get; set; } } public class DoctorPayInfo { public Guid DoctorId { get; set; } public string DoctorChineseName { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Phone { get; set; } public string PayTitle { get; set; } public string Code { get; set; } } public class ReviewerPaymentUSD { public Guid RecordId { get; set; } public Guid DoctorId { get; set; } public double PaymentUSD { get; set; } } public class PaymentQueryDTO : PageInput { public string Reviewer { get; set; } public DateTime BeginMonth { get; set; } public DateTime EndMonth { get; set; } } public class MonthlyPaymentDTO { public Guid ReviewerId { get; set; } public string ReviewerCode { get; set; } public string ChineseName { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public double AdjustmentUSD { get; set; } public double AdjustmentCNY { get; set; } public double PaymentUSD { get; set; } public double PaymentCNY { get; set; } public double TotalUSD => AdjustmentUSD + PaymentUSD; public double TotalCNY => AdjustmentCNY + PaymentCNY; } public class VolumeStatisticsDTO { public Guid StatisticsId { get; set; } public string Month { get; set; } public double VolumeReward { get; set; } public double ExchangeRate { get; set; } public double AdjustmentUSD { get; set; } public double AdjustmentCNY { get; set; } public double PaymentUSD { get; set; } public double PaymentCNY { get; set; } public double TotalCNY => AdjustmentCNY + PaymentCNY; public double TotalUSD => AdjustmentUSD + PaymentUSD; public List TrialPaymentList = new List(); } public class TrialPaymentDTO { public Guid TrialId { get; set; } public string TrialCode { get; set; } public double TrialPayment { get; set; } } public class VolumeQueryDTO { public DateTime BeginMonth { get; set; } public DateTime EndMonth { get; set; } public Guid ReviewerId { get; set; } } public class RevenuesDTO { public List MissingTrialCodes = new List(); public Guid Id { get; set; } public string TrialCode { get; set; } public Guid TrialId { get; set; } public string Indication { get; set; } public Guid CroId { get; set; } public string Cro { get; set; } = string.Empty; public int Expedited { get; set; } public string ChineseName { get; set; } = string.Empty; public string FirstName { get; set; } = string.Empty; public string LastName { get; set; } = string.Empty; public string ReviewerCode { get; set; } = string.Empty; public double Training { get; set; } public double Downtime { get; set; } public double Timepoint { get; set; } public double TimepointIn24H { get; set; } public double TimepointIn48H { get; set; } public double Adjudication { get; set; } public double AdjudicationIn24H { get; set; } public double AdjudicationIn48H { get; set; } public double Global { get; set; } public double Total { get { return Training + Downtime + Timepoint + TimepointIn24H + TimepointIn48H + Adjudication + AdjudicationIn24H + AdjudicationIn48H + Global; } } public string YearMonth { get; set; } } }