private void RandomizeData() { for (var i = 0; i < 20; i++) { Employee employee = new Employee( //RandomHelper.RandomString(10, true), RandomHelper.RandomString(10, true), (GENDER_TYPE)RandomHelper.RandomInt(1,3), RandomHelper.RandomString(10, true), RandomHelper.RandomString(10, true), RandomHelper.RandomInt(19000,50000), RandomHelper.RandomInt(0, 100) ); employee.setDeleteDelegate(DeleteData); employee.setUpdateDelegate(UpdateData); EmployeeCollection.Add(employee); } for (var i = 0; i < 10; i++) { Customer customer = new Customer( //RandomHelper.RandomString(10, true), RandomHelper.RandomString(10, true), (GENDER_TYPE)RandomHelper.RandomInt(1, 3), RandomHelper.RandomString(10, true), RandomHelper.RandomString(10, true), RandomHelper.RandomInt(1000, 10000) ); customer.setDeleteDelegate(DeleteData); customer.setUpdateDelegate(UpdateData); CustomerCollection.Add(customer); } }
public void setData(Employee data,List<DailyConsumption> list) { DateTime date = MainWindowViewModel.ins().ChooseDate; List<DailyConsumption> monthlyList = new List<DailyConsumption>(); Dictionary<string, ServiceResult> serviceResultDic = new Dictionary<string, ServiceResult>(); List<ServiceResult> serviceResultList = new List<ServiceResult>(); int totalBonus = 0; string employeeId = data.DBID.ToString(); ServiceResult specifyService = new ServiceResult(); specifyService.ServiceId = "specify"; specifyService.ServiceName = "指定設計"; serviceResultDic.Add(specifyService.ServiceId, specifyService); ServiceResult notspecifyService = new ServiceResult(); notspecifyService.ServiceId = "notspecify"; notspecifyService.ServiceName = "非指定設計"; serviceResultDic.Add(notspecifyService.ServiceId, notspecifyService); ObservableCollection<Service> serviceCollection = MainWindowViewModel.ins().ServiceCollection; foreach (Service service in serviceCollection) { ServiceResult sr = new ServiceResult(); sr.ServiceId = service.DBID.ToString(); sr.ServiceName = service.Name; serviceResultDic.Add(sr.ServiceId, sr); } foreach (DailyConsumption dailyConsumption in list) { int bonus = 0; string[] supportList = dailyConsumption.supporterId.Split(','); List<string> tempList = new List<string>(supportList); if (!tempList.Contains(employeeId) && !employeeId.Equals(dailyConsumption.employeeId)) { continue; } if (dailyConsumption.month.Equals(date.Month)) { int leftCost = dailyConsumption.Cost; string[] goodsList = dailyConsumption.consumerGoodsId.Split(','); foreach (string tempStr in goodsList) { string goodsId = tempStr; string providerId = ""; int goodsPrice = 0; int goodsBonus = 0; string[] strs = tempStr.Split('-'); if (strs.Length >= 4) { goodsId = strs[0]; providerId = strs[1]; Int32.TryParse(strs[2], out goodsPrice); Int32.TryParse(strs[3], out goodsBonus); } if (providerId.Equals(employeeId)) { bonus += goodsBonus; } leftCost -= goodsPrice; } string[] serviceList = dailyConsumption.serviceId.Split(','); foreach (string tempStr in serviceList) { string serviceId = tempStr; string providerId = ""; int servicePrice = 0; int servicBonus = 0; string[] strs = tempStr.Split('-'); if (strs.Length >= 4) { serviceId = strs[0]; providerId = strs[1]; Int32.TryParse(strs[2], out servicePrice); Int32.TryParse(strs[3], out servicBonus); } if (providerId.Equals(employeeId)) { bonus += servicBonus; if(serviceResultDic.ContainsKey(serviceId)){ serviceResultDic[serviceId].MonthlyNumber += 1; serviceResultDic[serviceId].YearlyNumber += 1; } } leftCost -= servicBonus; } if (employeeId.Equals(dailyConsumption.employeeId)) { if (dailyConsumption.IsSpecify && serviceResultDic.ContainsKey("specify")) { serviceResultDic["specify"].MonthlyNumber += 1; serviceResultDic["specify"].YearlyNumber += 1; } else if (!dailyConsumption.IsSpecify && serviceResultDic.ContainsKey("notspecify")) { serviceResultDic["notspecify"].MonthlyNumber += 1; serviceResultDic["notspecify"].YearlyNumber += 1; } if(leftCost > 0) bonus += leftCost * data.Commission / 100; } totalBonus += bonus; dailyConsumption.EmployeeBonus = bonus; monthlyList.Add(dailyConsumption); } else { string[] serviceList = dailyConsumption.serviceId.Split(','); foreach (string tempStr in serviceList) { string serviceId = tempStr; string providerId = ""; string[] strs = tempStr.Split('-'); if (strs.Length >= 4) { serviceId = strs[0]; providerId = strs[1]; } if (providerId.Equals(employeeId)) { if (serviceResultDic.ContainsKey(serviceId)) { serviceResultDic[serviceId].YearlyNumber += 1; } } } if (employeeId.Equals(dailyConsumption.employeeId)) { if (dailyConsumption.IsSpecify && serviceResultDic.ContainsKey("specify")) { serviceResultDic["specify"].YearlyNumber += 1; } else if (!dailyConsumption.IsSpecify && serviceResultDic.ContainsKey("notspecify")) { serviceResultDic["notspecify"].YearlyNumber += 1; } } } } foreach (KeyValuePair<string, ServiceResult> pair in serviceResultDic) { serviceResultList.Add(pair.Value); } ICollectionView monthlyView = CollectionViewSource.GetDefaultView(monthlyList); ICollectionView resultsView = CollectionViewSource.GetDefaultView(serviceResultList); this.ResultsGrid.ItemsSource = monthlyView; this.ServicesGrid.ItemsSource = resultsView; this.EmployeeName.Text = data.Name; this.CaculateText.Text = data.BasicSalary + " + " + totalBonus + " = "; this.TotalSalaryText.Text = (data.BasicSalary + totalBonus).ToString(); }
private void OnAddEmployeeData() { Employee employee = new Employee(); employee.setUpdateDelegate(UpdateData); employee.setDeleteDelegate(DeleteData); employee.PopEditWindowCommand.Execute(null); }