///<summary>Calling methods will typically pass in all non-HQ clearinghouses (overrides). ///This method will "sync" any clearinghouses that are associated to the same HQ Clearinghouse and Clinic with the values from clearinghouseNew. ///This method is only used in FormClearinghouseEdit.cs to defend against DB's with duplicate override rows. ///Loops through the list of overrides and updates each clearinghouse override associated to clearinghouseNew.ClinicNum. ///This was put into a centralized method for unit testing purposes. For more details see jobnum 11387.</summary> ///<param name="listClearinghouseOverrides">A list of all non-HQ clearinghouses which this method will manipulate (Clearinghouse overrides).</param> ///<param name="clearinghouseNew">The new Clearinghouse override object. ClinicNum will be used from this clearinghouse.</param> public static void SyncOverridesForClinic(ref List <Clearinghouse> listClearinghouseOverrides, Clearinghouse clearinghouseNew) { //No need to check RemotingRole; no call to db and uses an out parameter. if (clearinghouseNew.ClinicNum == 0) { return; //Nothing to do when the ClinicNum associated to clearinghouseNew is 0. } //Get all clearinghouse overrides that are associated to the same HQ clearinghouse and clinic. for (int i = 0; i < listClearinghouseOverrides.Count; i++) { if (listClearinghouseOverrides[i].HqClearinghouseNum != clearinghouseNew.HqClearinghouseNum || listClearinghouseOverrides[i].ClinicNum != clearinghouseNew.ClinicNum) { continue; } //Take all of the values from clearinghouseNew and put them into the current clearinghouseOverride (sync them). //Make sure to preserve the ClearinghouseNum of the override before syncing the values. long clearinghouseNumOverride = listClearinghouseOverrides[i].ClearinghouseNum; listClearinghouseOverrides[i] = clearinghouseNew.Copy(); listClearinghouseOverrides[i].ClearinghouseNum = clearinghouseNumOverride; } }
///<summary>Replaces all clinic-level fields in ClearinghouseHq with non-blank fields in clearinghouseClin. ///Non clinic-level fields are commented out and not replaced.</summary> public static Clearinghouse OverrideFields(Clearinghouse clearinghouseHq, Clearinghouse clearinghouseClin) { //No need to check RemotingRole; no call to db. if (clearinghouseHq == null) { return(null); } Clearinghouse clearinghouseRetVal = clearinghouseHq.Copy(); if (clearinghouseClin == null) //if a null clearingHouseClin was passed in, just return clearinghouseHq. { return(clearinghouseRetVal); } //HqClearinghouseNum must be set for refreshing the cache when deleting. clearinghouseRetVal.HqClearinghouseNum = clearinghouseClin.HqClearinghouseNum; //ClearinghouseNum must be set so that updates do not create new entries every time. clearinghouseRetVal.ClearinghouseNum = clearinghouseClin.ClearinghouseNum; //ClinicNum must be set so that the correct clinic is assigned when inserting new clinic level clearinghouses. clearinghouseRetVal.ClinicNum = clearinghouseClin.ClinicNum; clearinghouseRetVal.IsEraDownloadAllowed = clearinghouseClin.IsEraDownloadAllowed; clearinghouseRetVal.IsClaimExportAllowed = clearinghouseClin.IsClaimExportAllowed; //fields that should not be replaced are commented out. //if(!String.IsNullOrEmpty(clearinghouseClin.Description)) { // clearinghouseRetVal.Description=clearinghouseClin.Description; //} if (!String.IsNullOrEmpty(clearinghouseClin.ExportPath)) { clearinghouseRetVal.ExportPath = clearinghouseClin.ExportPath; } //if(!String.IsNullOrEmpty(clearinghouseClin.Payors)) { // clearinghouseRetVal.Payors=clearinghouseClin.Payors; //} //if(clearinghouseClin.Eformat!=0 && clearinghouseClin.Eformat!=null) { // clearinghouseRetVal.Eformat=clearinghouseClin.Eformat; //} //if(!String.IsNullOrEmpty(clearinghouseClin.ISA05)) { // clearinghouseRetVal.ISA05=clearinghouseClin.ISA05; //} if (!String.IsNullOrEmpty(clearinghouseClin.SenderTIN)) { clearinghouseRetVal.SenderTIN = clearinghouseClin.SenderTIN; } //if(!String.IsNullOrEmpty(clearinghouseClin.ISA07)) { // clearinghouseRetVal.ISA07=clearinghouseClin.ISA07; //} //if(!String.IsNullOrEmpty(clearinghouseClin.ISA08)) { // clearinghouseRetVal.ISA08=clearinghouseClin.ISA08; //} //if(!String.IsNullOrEmpty(clearinghouseClin.ISA15)) { // clearinghouseRetVal.ISA15=clearinghouseClin.ISA15; //} if (!String.IsNullOrEmpty(clearinghouseClin.Password)) { clearinghouseRetVal.Password = clearinghouseClin.Password; } if (!String.IsNullOrEmpty(clearinghouseClin.ResponsePath)) { clearinghouseRetVal.ResponsePath = clearinghouseClin.ResponsePath; } //if(clearinghouseClin.CommBridge!=0 && clearinghouseClin.CommBridge!=null) { // clearinghouseRetVal.CommBridge=clearinghouseClin.CommBridge; //} if (!String.IsNullOrEmpty(clearinghouseClin.ClientProgram)) { clearinghouseRetVal.ClientProgram = clearinghouseClin.ClientProgram; } //clearinghouseRetVal.LastBatchNumber=;//Not editable is UI and should not be updated here. See GetNextBatchNumber() above. //if(clearinghouseClin.ModemPort!=0 && clearinghouseClin.ModemPort!=null) { // clearinghouseRetVal.ModemPort=clearinghouseClin.ModemPort; //} if (!String.IsNullOrEmpty(clearinghouseClin.LoginID)) { clearinghouseRetVal.LoginID = clearinghouseClin.LoginID; } if (!String.IsNullOrEmpty(clearinghouseClin.SenderName)) { clearinghouseRetVal.SenderName = clearinghouseClin.SenderName; } if (!String.IsNullOrEmpty(clearinghouseClin.SenderTelephone)) { clearinghouseRetVal.SenderTelephone = clearinghouseClin.SenderTelephone; } //if(!String.IsNullOrEmpty(clearinghouseClin.GS03)) { // clearinghouseRetVal.GS03=clearinghouseClin.GS03; //} //if(!String.IsNullOrEmpty(clearinghouseClin.ISA02)) { // clearinghouseRetVal.ISA02=clearinghouseClin.ISA02; //} //if(!String.IsNullOrEmpty(clearinghouseClin.ISA04)) { // clearinghouseRetVal.ISA04=clearinghouseClin.ISA04; //} //if(!String.IsNullOrEmpty(clearinghouseClin.ISA16)) { // clearinghouseRetVal.ISA16=clearinghouseClin.ISA16; //} //if(!String.IsNullOrEmpty(clearinghouseClin.SeparatorData)) { // clearinghouseRetVal.SeparatorData=clearinghouseClin.SeparatorData; //} //if(!String.IsNullOrEmpty(clearinghouseClin.SeparatorSegment)) { // clearinghouseRetVal.SeparatorSegment=clearinghouseClin.SeparatorSegment; //} return(clearinghouseRetVal); }