private void butMerge_Click(object sender, EventArgs e) { if (gridMain.SelectedIndices.Length < 2) { MessageBox.Show(Lan.g(this, "Please select at least two items first.")); return; } InsPlan[] listSelected = new InsPlan[gridMain.SelectedIndices.Length]; for (int i = 0; i < listSelected.Length; i++) { listSelected[i] = InsPlans.GetPlan(PIn.Long(table.Rows[gridMain.SelectedIndices[i]]["PlanNum"].ToString()), null); listSelected[i].NumberSubscribers = PIn.Int(table.Rows[gridMain.SelectedIndices[i]]["subscribers"].ToString()); } FormInsPlansMerge FormI = new FormInsPlansMerge(); FormI.ListAll = listSelected; FormI.ShowDialog(); if (FormI.DialogResult != DialogResult.OK) { return; } //Do the merge. InsPlan planToMergeTo = FormI.PlanToMergeTo.Copy(); //List<Benefit> benList=Benefits.RefreshForPlan(planToMergeTo,0); Cursor = Cursors.WaitCursor; for (int i = 0; i < listSelected.Length; i++) //loop through each selected plan //skip the planToMergeTo, because it's already correct { if (planToMergeTo.PlanNum == listSelected[i].PlanNum) { continue; } //==Michael - We are changing plans here, but not carriers, so this is not needed: //SecurityLogs.MakeLogEntry(Permissions.InsPlanChangeCarrierName InsPlans.ChangeReferences(listSelected[i].PlanNum, planToMergeTo.PlanNum); Benefits.DeleteForPlan(listSelected[i].PlanNum); InsPlans.Delete(listSelected[i].PlanNum); //for(int j=0;j<planNums.Count;j++) { //InsPlans.ComputeEstimatesForPlan(planNums[j]); //Eliminated in 5.0 for speed. //} } FillGrid(); //highlight the merged plan for (int i = 0; i < table.Rows.Count; i++) { for (int j = 0; j < listSelected.Length; j++) { if (table.Rows[i]["PlanNum"].ToString() == listSelected[j].PlanNum.ToString()) { gridMain.SetSelected(i, true); } } } Cursor = Cursors.Default; }
private void butMerge_Click(object sender, EventArgs e) { if (!Security.IsAuthorized(Permissions.InsPlanMerge)) { return; } if (gridMain.SelectedIndices.Length < 2) { MessageBox.Show(Lan.g(this, "Please select at least two items first.")); return; } InsPlan[] listSelected = new InsPlan[gridMain.SelectedIndices.Length]; for (int i = 0; i < listSelected.Length; i++) { listSelected[i] = InsPlans.GetPlan(PIn.Long(table.Rows[gridMain.SelectedIndices[i]]["PlanNum"].ToString()), null); listSelected[i].NumberSubscribers = PIn.Int(table.Rows[gridMain.SelectedIndices[i]]["subscribers"].ToString()); } FormInsPlansMerge FormI = new FormInsPlansMerge(); FormI.ListAll = listSelected; FormI.ShowDialog(); if (FormI.DialogResult != DialogResult.OK) { return; } //Do the merge. InsPlan planToMergeTo = FormI.PlanToMergeTo.Copy(); //List<Benefit> benList=Benefits.RefreshForPlan(planToMergeTo,0); Cursor = Cursors.WaitCursor; bool didMerge = false; List <long> listMergedPlanNums = new List <long>(); for (int i = 0; i < listSelected.Length; i++) //loop through each selected plan //skip the planToMergeTo, because it's already correct { if (planToMergeTo.PlanNum == listSelected[i].PlanNum) { continue; } //==Michael - We are changing plans here, but not carriers, so this is not needed: //SecurityLogs.MakeLogEntry(Permissions.InsPlanChangeCarrierName InsPlans.ChangeReferences(listSelected[i].PlanNum, planToMergeTo.PlanNum); Benefits.DeleteForPlan(listSelected[i].PlanNum); try { InsPlans.Delete(listSelected[i], canDeleteInsSub: false); } catch (ApplicationException ex) { MessageBox.Show(ex.Message); SecurityLogs.MakeLogEntry(Permissions.InsPlanEdit, 0, Lan.g(this, "InsPlan Combine delete validation failed. Plan was not deleted."), listSelected[i].PlanNum, listSelected[i].SecDateTEdit); //new plan, no date needed. //Since we already deleted/changed all of the other dependencies, //we should continue in making the Securitylog entry and cleaning up. } didMerge = true; listMergedPlanNums.Add(listSelected[i].PlanNum); //for(int j=0;j<planNums.Count;j++) { //InsPlans.ComputeEstimatesForPlan(planNums[j]); //Eliminated in 5.0 for speed. //} } if (didMerge) { string logText = Lan.g(this, "Merged the following PlanNum(s): ") + string.Join(", ", listMergedPlanNums) + " " + Lan.g(this, "into") + " " + planToMergeTo.PlanNum; SecurityLogs.MakeLogEntry(Permissions.InsPlanMerge, 0, logText); } FillGrid(); //highlight the merged plan for (int i = 0; i < table.Rows.Count; i++) { for (int j = 0; j < listSelected.Length; j++) { if (table.Rows[i]["PlanNum"].ToString() == listSelected[j].PlanNum.ToString()) { gridMain.SetSelected(i, true); } } } Cursor = Cursors.Default; }