Пример #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;
        }
        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, "خطا", "در حین گرفتن گزارش خطایی رخ داد.");
            }
        }