private PatPlan InsertOrUpdatePatPlan(PatPlan patPlan, InsSub insSub, InsPlan insPlan, Hx834_Member member, Carrier carrier, List <PatPlan> listOtherPatPlans) { if (patPlan == null) { patPlan = new PatPlan(); patPlan.Ordinal = 0; for (int p = 0; p < listOtherPatPlans.Count; p++) { if (listOtherPatPlans[p].Ordinal > patPlan.Ordinal) { patPlan.Ordinal = listOtherPatPlans[p].Ordinal; } } patPlan.Ordinal++; //Greatest ordinal for patient. patPlan.PatNum = member.Pat.PatNum; patPlan.InsSubNum = insSub.InsSubNum; patPlan.Relationship = member.PlanRelat; if (member.PlanRelat != Relat.Self) { //This is not needed yet. If we do this in the future, then we need to mimic the Move tool in the Family module. //member.Pat.Guarantor=insSubMatch.Subscriber; //Patient memberPatOld=member.Pat.Copy(); //Patients.Update(member.Pat,memberPatOld); } PatPlans.Insert(patPlan); SecurityLogs.MakeLogEntry(Permissions.InsPlanAddPat, patPlan.PatNum, "Insurance plan added to patient for carrier '" + carrier.CarrierName + "' and groupnum " + "'" + insPlan.GroupNum + "' and subscriber ID '" + insSub.SubscriberID + "' " + "from Import Ins Plans 834.", insPlan.PlanNum, LogSources.InsPlanImport834, insPlan.SecDateTEdit); } else { PatPlan patPlanOld = patPlan.Copy(); patPlan.Relationship = member.PlanRelat; if (OpenDentBusiness.Crud.PatPlanCrud.UpdateComparison(patPlan, patPlanOld)) { SecurityLogs.MakeLogEntry(Permissions.InsPlanEdit, patPlan.PatNum, "Insurance plan relationship changed from " + member.PlanRelat + " to " + patPlan.Relationship + " for carrier '" + carrier.CarrierName + "' and groupnum " + "'" + insPlan.GroupNum + "' from Import Ins Plans 834.", insPlan.PlanNum, LogSources.InsPlanImport834, insPlan.SecDateTEdit); PatPlans.Update(patPlan); } } return(patPlan); }