private void ApplyBtn_Click(object sender, EventArgs e) { foreach (FactStaff fcSt in KadrController.Instance.Model.FactStaffs) { if (fcSt.MonthHourCount > 0) { FactStaffMonthHour hour = new FactStaffMonthHour(); hour.MonthNumber = cbMonth.SelectedIndex + 1; hour.YearNumber = Convert.ToInt32(cbYear.SelectedItem); hour.HourCount = Convert.ToDecimal(fcSt.MonthHourCount); hour.FactStaff = fcSt; fcSt.MonthHourCount = null; KadrController.Instance.Model.FactStaffMonthHours.InsertOnSubmit(hour); KadrController.Instance.SubmitChanges(); //назначаем надбавку, если почасовик работает по договору if (fcSt.IsContractHourStaff) { Bonus bonus = new Bonus(); BonusHistory bonusHistory = new BonusHistory(); try { bonus.DateEnd = Convert.ToDateTime("01." + (cbMonth.SelectedIndex + 2).ToString() + '.' + cbYear.SelectedItem.ToString()).AddDays(-1); bonusHistory.DateBegin = Convert.ToDateTime("01." + (cbMonth.SelectedIndex + 1).ToString() + '.' + cbYear.SelectedItem.ToString()); } catch { bonus.DateEnd = null; } bonus.BonusType = BonusType.HourBonus; bonus.Comment = tbComment.Text; bonusHistory.BonusCount = hour.BonusSum.Value; bonusHistory.Prikaz = cbPrikazBegin.SelectedItem as Prikaz; if (cbFinancingSource.Text == "") bonusHistory.FinancingSource = fcSt.FinancingSource; else bonusHistory.FinancingSource = cbFinancingSource.SelectedItem as FinancingSource; bonusHistory.Bonus = bonus; BonusFactStaff bonusFcSt = new BonusFactStaff(); bonusFcSt.FactStaff = fcSt.MainFactStaff; bonusFcSt.Bonus = bonus; KadrController.Instance.Model.Bonus.InsertOnSubmit(bonus); KadrController.Instance.Model.BonusHistories.InsertOnSubmit(bonusHistory); KadrController.Instance.Model.BonusFactStaffs.InsertOnSubmit(bonusFcSt); KadrController.Instance.SubmitChanges(); } } } }
private void ApplyBtn_Click(object sender, EventArgs e) { foreach (FactStaff fcSt in KadrController.Instance.Model.FactStaffs) { if (fcSt.BonusCount > 0) { Bonus bonus = new Bonus(); try { bonus.DateEnd = Convert.ToDateTime(mtbDateEnd.Text); } catch { bonus.DateEnd = null; } if (cbPrikazIntermEnd.Text != "") bonus.IntermediateEndPrikaz = cbPrikazIntermEnd.SelectedItem as Prikaz; if (cbPrikazEnd.Text != "") bonus.EndPrikaz = cbPrikazEnd.SelectedItem as Prikaz; bonus.BonusType = cbBonusType.SelectedItem as BonusType; bonus.Comment = tbComment.Text; BonusHistory bonusHistory = new BonusHistory(); bonusHistory.BonusCount = fcSt.BonusCount.Value; if (fcSt.BonusFinancingSourceName != null) bonusHistory.FinancingSource = FinancingSource.GetFinancingSourceByName(fcSt.BonusFinancingSourceName); else { if (cbFinancingSource.Text == "") bonusHistory.FinancingSource = fcSt.FinancingSource; else bonusHistory.FinancingSource = cbFinancingSource.SelectedItem as FinancingSource; } if (fcSt.BonusDateBegin != null) bonusHistory.DateBegin = fcSt.BonusDateBegin.Value; else bonusHistory.DateBegin = dtDateBegin.Value; bonusHistory.Prikaz = cbPrikazBegin.SelectedItem as Prikaz; bonusHistory.Bonus = bonus; BonusFactStaff bonusFcSt = new BonusFactStaff(); bonusFcSt.FactStaff = fcSt; bonusFcSt.Bonus = bonus; fcSt.BonusCount = null; KadrController.Instance.SubmitChanges(); } } }
/// <summary> /// Добавление надбавки /// </summary> /// <param name="bonusObject">объект, которому добавляем</param> /// <param name="bonusBindingSource">BindingSource</param> public void AddBonus(object bonusObject, BindingSource bonusBindingSource) { using (Kadr.UI.Common.PropertyGridDialogAdding<Bonus> dlg = new Kadr.UI.Common.PropertyGridDialogAdding<Bonus>()) { dlg.ObjectList = KadrController.Instance.Model.Bonus; dlg.BindingSource = bonusBindingSource; dlg.UseInternalCommandManager = true; dlg.PrikazButtonVisible = true; dlg.InitializeNewObject = (x) => { //создаем историю надбавки BonusHistory bonusHistory = new BonusHistory(); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusHistory, Bonus>(bonusHistory, "Bonus", x, null), this); if ((dlg.SelectedObjects != null) && (dlg.SelectedObjects.Length == 1)) { Bonus prev = dlg.SelectedObjects[0] as Bonus; dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusHistory, Prikaz>(bonusHistory, "Prikaz", prev.PrikazBegin, null), this); } else { dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusHistory, Prikaz>(bonusHistory, "Prikaz", NullPrikaz.Instance, null), this); } dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<Bonus, BonusType>(x, "BonusType", NullBonusType.Instance, null), this); if (bonusObject is FactStaff) dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusHistory, System.DateTime>(bonusHistory, "DateBegin", DateTime.Today.AddDays(1 - DateTime.Today.Day), null), this); else dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusHistory, System.DateTime>(bonusHistory, "DateBegin", DateTime.Today, null), this); //заполнение источника финансирования if (bonusObject is FactStaff) { dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusHistory, FinancingSource>(bonusHistory, "FinancingSource", (bonusObject as FactStaff).PlanStaff.FinancingSource, null), this); } if (bonusObject is PlanStaff) { dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusHistory, FinancingSource>(bonusHistory, "FinancingSource", (bonusObject as PlanStaff).FinancingSource, null), this); } if ((bonusObject is Post) || (bonusObject is Employee)) { dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusHistory, FinancingSource>(bonusHistory, "FinancingSource", FinancingSource.DefaultFinancingSource, null), this); } /*if (bonusObject is Post) { BonusPost bonusPost = new BonusPost(); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusPost, Bonus>(bonusPost, "Bonus", prev, null), this); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusPost, Post>(bonusPost, "Post", bonusObject as Post, null), this); } if (bonusObject is Employee) { BonusEmployee bonusEmployee = new BonusEmployee(); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusEmployee, Bonus>(bonusEmployee, "Bonus", prev, null), this); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusEmployee, Employee>(bonusEmployee, "Employee", bonusObject as Employee, null), this); }*/ }; dlg.CreateRelatedObject = (x) => { if ((dlg.SelectedObjects != null) && (dlg.SelectedObjects.Length == 1)) { Bonus prev = dlg.SelectedObjects[0] as Bonus; if (bonusObject is FactStaff) { BonusFactStaff bonusFactStaff = new BonusFactStaff(); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusFactStaff, Bonus>(bonusFactStaff, "Bonus", prev, null), this); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusFactStaff, FactStaff>(bonusFactStaff, "FactStaff", bonusObject as FactStaff, null), this); } if (bonusObject is PlanStaff) { BonusPlanStaff bonusPlanStaff = new BonusPlanStaff(); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusPlanStaff, Bonus>(bonusPlanStaff, "Bonus", prev, null), this); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusPlanStaff, PlanStaff>(bonusPlanStaff, "PlanStaff", bonusObject as PlanStaff, null), this); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusPlanStaff, bool>(bonusPlanStaff, "ForVacancy", true, null), this); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusPlanStaff, bool>(bonusPlanStaff, "ForEmployee", false, null), this); } if (bonusObject is Post) { BonusPost bonusPost = new BonusPost(); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusPost, Bonus>(bonusPost, "Bonus", prev, null), this); dlg.CommandManager.Execute(new UIX.Commands.GenericPropertyCommand<BonusPost, Post>(bonusPost, "Post", bonusObject as Post, null), this); } } }; dlg.UpdateObjectList = () => { dlg.ObjectList = KadrController.Instance.Model.Bonus; }; dlg.ShowDialog(); } }