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; }
private void btnSearch_Click(object sender, EventArgs e) { try { _accountant = GetCurrentAccountantEmployee(); _from = GetFromDate(); _to = GetToDate(); if (ValidateQuery(_accountant, _from, _to)) { doctorSalaryReportCollection = DataLayer.GetDoctorSalaryReport(_accountant, _from, _to); grvItems.DataSource = doctorSalaryReportCollection.Items; if (doctorSalaryReportCollection.Items.Length > 0) { lblDiscount.Text = string.Format("{0:0,0} ریال", doctorSalaryReportCollection.DiscountSum); lblFinalCost.Text = string.Format("{0:0,0} ریال", doctorSalaryReportCollection.FinalCostSum); lblTotalSalary.Text = string.Format("{0:0,0} ریال", doctorSalaryReportCollection.TotalSalary); } else { Methods.ShowStandardMsgBox(FormMessageType.Error, "خطا", "موردی یافت نشد."); lblDiscount.Text = "0"; lblFinalCost.Text = "0"; lblTotalSalary.Text = "0"; } } } catch (Exception exp) { Logger.Log(exp, "DoctorSalaryReport - Query"); Methods.ShowStandardMsgBox(FormMessageType.Error, "خطا", "در حین گرفتن گزارش خطایی رخ داد."); } }