Пример #1
0
        public static DoctorSalaryReportCollection GetDoctorSalaryReport(AccountantEntity accountEntity, DateTime from, DateTime to)
        {
            EntityModelContainer context = GetContext();
            DoctorSalaryReportCollection result = new DoctorSalaryReportCollection();

            Employee employee = context.Employees.Where(p => p.AccountantEntityId == accountEntity.Id).First();

            double monthlySalary = employee.MonthlySalary;
            double incomingPercentage = employee.IncomePercentage;

            var query = context.VisitServices.Where(p => p.Visit.EmployeeId == employee.Id && p.Visit.FromTime >= from && p.Visit.ToTime <= to);

            int loopCounter = 1;
            foreach (var item in query)
            {
                result.Add(new DoctorSalaryReportItem()
                {
                    RowNumber = loopCounter++,
                    VisitDate = item.Visit.FromTime,
                    PatientName = item.Visit.Patient.ToString(),
                    ServiceTooth = item.ToothDescription,
                    FinalCost =  item.FinalCost,
                    Discount = item.Discount
                });
            }

            result.TotalSalary = ((double)incomingPercentage * result.FinalCostSum);
            result.TotalSalary += monthlySalary;

            //result.TotalSalary = ((double)incomingPercentage * result.FinalCostSum);
            //result.TotalSalary += (monthlySalary * 12) * ((double)(to - from).TotalDays / 365);

            return result;
        }