private void ProcedurePrint_Click(object sender, RoutedEventArgs e) { if (lcv.CurrentItem == null) { return; } SalaryProcedureInfoWrap salaryProcedureInfoWrap = new SalaryProcedureInfoWrap(); SalaryInfo info = Do_GetSalaryProcedureInfo(lcv.CurrentItem as SalaryInfo, ref salaryProcedureInfoWrap); if (info != null) { string msg = ""; if (PrintDeal.CreateInstance().PrintSalarySheet(info, salaryProcedureInfoWrap, ref msg)) { MessageBox.Show("打印完成。"); } else { if (!string.IsNullOrEmpty(msg)) { MessageBox.Show(msg); } } } }
private void FlushCurrentViewAllCommission() { foreach (SalaryInfo info in lcv) { SalaryProcedureInfoWrap salaryProcedureInfoWrap = new SalaryProcedureInfoWrap(); Do_GetSalaryProcedureInfo(info, ref salaryProcedureInfoWrap); } }
private SalaryProcedureInfoWrap GetSalaryProcedureInfo(SalaryInfo salaryInfo, ref bool isUpdateTotalPrice) { SalaryProcedureInfoWrap salaryProcedureInfoWrap = new SalaryProcedureInfoWrap() { EmployeeName = salaryInfo.EmployeeName, DepartmentName = salaryInfo.DepartmentName, CurrentDate = new DateTime(salaryInfo.Year, salaryInfo.Month, 1) }; ObservableCollection <ProcedureInfo> CurProcedureInfoList = null; foreach (SheetInfo sheetInfo in dataManager.AllSheetList) { //结单了 if (sheetInfo.SettleDate == null) { continue; } //本月内 DateTime dateValue = sheetInfo.SettleDate.Value; if (dateValue.Year == salaryInfo.Year && dateValue.Month == salaryInfo.Month) { CurProcedureInfoList = SheetDeal.GetAllProcedureInfo(sheetInfo.ID); if (CurProcedureInfoList == null) { continue; } CurProcedureInfoList.ToList().ForEach(procedureInfo => { //该人参与该流程 if (procedureInfo.EmployeeID == salaryInfo.EmployeeID) { salaryProcedureInfoWrap.TotalPrice += procedureInfo.Price; salaryProcedureInfoWrap.SalaryProcedureInfoList.Add(new SalaryProcedureInfo { SheetID = sheetInfo.ID, SettleDate = dateValue, BSType = sheetInfo.BSType, Customer = sheetInfo.Customer, ProcedureName = procedureInfo.ProcedureName, Price = procedureInfo.Price }); } }); } } if (salaryInfo.Commission != salaryProcedureInfoWrap.TotalPrice) { isUpdateTotalPrice = true; salaryInfo.Commission = salaryProcedureInfoWrap.TotalPrice; } return(salaryProcedureInfoWrap); }
private void FlushCommission_Click(object sender, RoutedEventArgs e) { if (lcv.CurrentItem == null) { return; } SalaryProcedureInfoWrap salaryProcedureInfoWrap = new SalaryProcedureInfoWrap(); SalaryInfo info = Do_GetSalaryProcedureInfo(lcv.CurrentItem as SalaryInfo, ref salaryProcedureInfoWrap); if (info != null) { MessageBox.Show("统计完成!"); } }
private void ViewBSBtn_Click(object sender, RoutedEventArgs e) { if (lcv.CurrentItem == null) { return; } SalaryProcedureInfoWrap salaryProcedureInfoWrap = new SalaryProcedureInfoWrap(); SalaryInfo info = Do_GetSalaryProcedureInfo(lcv.CurrentItem as SalaryInfo, ref salaryProcedureInfoWrap); if (info != null) { ProcedureInfoPanel.DataContext = salaryProcedureInfoWrap; ProcedureInfoPanel.Visibility = Visibility.Visible; } }
private SalaryInfo Do_GetSalaryProcedureInfo(SalaryInfo salaryInfo, ref SalaryProcedureInfoWrap salaryProcedureInfoWrap) { if (salaryInfo == null) { return(null); } bool isUpdateTotalPrice = false; salaryProcedureInfoWrap = GetSalaryProcedureInfo(salaryInfo, ref isUpdateTotalPrice); if (isUpdateTotalPrice) { SalaryDeal.UpdateSalaryInfo(salaryInfo); dataManager.AllSalaryList = AlgorithmClass.DeepClone <ObservableCollection <SalaryInfo> >(AllSalaryList); } return(salaryInfo); }
public bool PrintSalarySheet(SalaryInfo salaryInfo, SalaryProcedureInfoWrap salaryProcedureInfoWrap, ref string msg) { if (salaryInfo == null || salaryProcedureInfoWrap == null) { return(false); } try { if (!xlsAccess.LoadXlsTemplate(ResourceMap.AppFolderPathHashtable[AppFolderPath.Templates] as string + ResourceMap.TemplatesNameHashtable[TemplatesName.Salary] as string)) { return(false); } if (xlsAccess.GetSheet((ResourceMap.TemplatesNameHashtable[TemplatesName.Salary] as string).Split('.')[0])) { if (salaryProcedureInfoWrap.SalaryProcedureInfoList.Count > 1) { xlsAccess.CopyRow(11, 10, salaryProcedureInfoWrap.SalaryProcedureInfoList.Count - 1); } xlsAccess.SetCellValue(1, 1, salaryInfo.EmployeeName); xlsAccess.SetCellValue(1, 4, salaryInfo.Year + " 年 " + salaryInfo.Month + " 月"); xlsAccess.SetCellValue(2, 1, salaryInfo.EmployeeSex); xlsAccess.SetCellValue(2, 4, salaryInfo.DepartmentName); xlsAccess.SetCellValue(3, 1, salaryInfo.BasicSalary); xlsAccess.SetCellValue(3, 4, salaryInfo.MealSupplement); xlsAccess.SetCellValue(4, 1, salaryInfo.SSB); xlsAccess.SetCellValue(4, 4, salaryInfo.OtherBenefits); xlsAccess.SetCellValue(5, 1, salaryInfo.Bounty); xlsAccess.SetCellValue(5, 4, salaryInfo.OtherDeduction); xlsAccess.SetCellValue(6, 1, salaryInfo.Commission); xlsAccess.SetCellValue(6, 4, salaryInfo.NetPayroll); xlsAccess.SetCellValue(7, 1, salaryInfo.Remark == null ? string.Empty : salaryInfo.Remark); for (int index = 0; index < salaryProcedureInfoWrap.SalaryProcedureInfoList.Count; index++) { xlsAccess.SetCellValue(index + 10, 0, salaryProcedureInfoWrap.SalaryProcedureInfoList[index].SheetID); xlsAccess.SetCellValue(index + 10, 1, salaryProcedureInfoWrap.SalaryProcedureInfoList[index].SettleDate.ToString("yyyy-MM-dd")); xlsAccess.SetCellValue(index + 10, 2, salaryProcedureInfoWrap.SalaryProcedureInfoList[index].BSType == null ? "" : salaryProcedureInfoWrap.SalaryProcedureInfoList[index].BSType); xlsAccess.SetCellValue(index + 10, 3, salaryProcedureInfoWrap.SalaryProcedureInfoList[index].Customer == null ? "" : salaryProcedureInfoWrap.SalaryProcedureInfoList[index].Customer); xlsAccess.SetCellValue(index + 10, 4, salaryProcedureInfoWrap.SalaryProcedureInfoList[index].ProcedureName == null ? "" : salaryProcedureInfoWrap.SalaryProcedureInfoList[index].ProcedureName); xlsAccess.SetCellValue(index + 10, 5, salaryProcedureInfoWrap.SalaryProcedureInfoList[index].Price); } //xlsAccess.SetPrintArea("A1:F12"); /* * xlsAccess.SaveAs(ResourceMap.AppFolderPathHashtable[AppFolderPath.Outputs] as string + salaryInfo.EmployeeName + "_" + salaryInfo.DepartmentName + "_" + salaryInfo.Year + "年" + salaryInfo.Month + "月_工资单.xls"); */ return(SaveWithDialog()); } else { return(false); } } catch (Exception ex) { msg = ex.Message + ex.StackTrace.ToString(); return(false); } }