protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_MD_SC_1653 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here var contractID = Guid.Empty; #region NEW CONTRACT if (Parameter.ContractID == Guid.Empty) { ORM_CMN_CTR_Contract contract = new ORM_CMN_CTR_Contract() { ContractName = Parameter.ContractName, CMN_CTR_ContractID = Guid.NewGuid(), Creation_Timestamp = DateTime.Now, Modification_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID, ValidFrom = Parameter.ValidFrom, ValidThrough = Parameter.ValidThrough }; contract.Save(Connection, Transaction); contractID = contract.CMN_CTR_ContractID; var insuranceToBrokerContract = new ORM_HEC_CRT_InsuranceToBrokerContract(); insuranceToBrokerContract.Creation_Timestamp = DateTime.Now; insuranceToBrokerContract.Ext_CMN_CTR_Contract_RefID = contractID; insuranceToBrokerContract.HEC_CRT_InsuranceToBrokerContractID = Guid.NewGuid(); insuranceToBrokerContract.Modification_Timestamp = DateTime.Now; insuranceToBrokerContract.Tenant_RefID = securityTicket.TenantID; insuranceToBrokerContract.Save(Connection, Transaction); } #endregion #region EDIT CONTRACT else { contractID = Parameter.ContractID; var contract = ORM_CMN_CTR_Contract.Query.Search(Connection, Transaction, new ORM_CMN_CTR_Contract.Query() { CMN_CTR_ContractID = Parameter.ContractID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (contract != null) { contract.ContractName = Parameter.ContractName; contract.ValidFrom = Parameter.ValidFrom; contract.ValidThrough = Parameter.ValidThrough; contract.Save(Connection, Transaction); } } #endregion #region UPDATE COVERED DRUGS if (Parameter.CoveredDrugIDs != null) { cls_Save_Contract_Covered_Drugs.Invoke(Connection, Transaction, new P_MD_SCCD_1811() { ContractID = contractID, DrugIDs = Parameter.CoveredDrugIDs }, securityTicket); } #endregion #region UPDATE COVERED DIAGNOSES if (Parameter.CoveredDiagnoseIDs != null) { cls_Save_Contract_Covered_Diagnoses.Invoke(Connection, Transaction, new P_MD_SCCD_1854() { ContractID = contractID, DiagnoseIDs = Parameter.CoveredDiagnoseIDs }, securityTicket); } #endregion #region UPDATE GPOSES if (Parameter.GposData != null) { Parameter.GposData.ContractID = contractID; cls_Save_Contract_GPOS_Data.Invoke(Connection, Transaction, Parameter.GposData, securityTicket); } #endregion UPDATE GPOSES #region UPDATE CONTRACT PARAMETERS if (Parameter.DueDates != null) { cls_Save_Contract_Due_Dates.Invoke(Connection, Transaction, new P_MD_SCDD_1729() { ContractID = contractID, DueDates = Parameter.DueDates }, securityTicket); } #endregion #region UPDATE HIPS if (Parameter.ParticipatingHIPs != null) { cls_Save_Contract_Participating_HIPs.Invoke(Connection, Transaction, new P_MD_SCPHIPs_1341() { ContractID = contractID, HipIDs = Parameter.ParticipatingHIPs }, securityTicket); } #endregion UPDATE HIPS #region UPDATE DOCTORS if (Parameter.ParticipatingDoctors != null && Parameter.ParticipatingDoctors.Length != 0) { cls_Save_Contract_Participating_Doctors.Invoke(Connection, Transaction, new P_MD_SCPD_1341() { ContractID = contractID, ParticipatingDoctors = Parameter.ParticipatingDoctors }, securityTicket); } #endregion #region UPDATE ELASTIC if (Parameter.DueDates != null) { var validUntilParam = Parameter.DueDates.Where(t => t.Name == "Duration of participation consent – Month").SingleOrDefault(); var aftercareParam = Parameter.DueDates.Where(t => t.Name == "Number of days between surgery and aftercare - Days").SingleOrDefault(); if (validUntilParam != null && aftercareParam != null) { var validUntil = !validUntilParam.IsActive ? double.MaxValue : validUntilParam.Value; var aftercareDays = !aftercareParam.IsActive ? double.MaxValue : aftercareParam.Value; var patientDetailsList = Retrieve_Patients.GetPatientDetailsListForContractID(Parameter.ContractID.ToString(), securityTicket); if (patientDetailsList.Any()) { Add_New_Patient.ImportPatientDetailsToElastic(patientDetailsList.Select(item => { var validUntilDate = validUntil == double.MaxValue ? DateTime.MaxValue : item.date.AddMonths(Convert.ToInt32(validUntil)); if (aftercareDays != double.MaxValue) { validUntilDate = validUntilDate.AddDays(-aftercareDays); } var validUntilStr = validUntilDate == DateTime.MaxValue ? "∞" : validUntilDate.ToString("dd.MM.yyyy"); item.diagnose_or_medication = Properties.Resources.participarionConsent + " " + Parameter.ContractName + ", " + Properties.Resources.goodUntil + " " + validUntilStr; return(item); }).ToList(), securityTicket.TenantID.ToString()); } } } #endregion returnValue.Result = contractID; return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_MD_CC_1039 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_Guid(); //Put your code here #region NEW CONTRACT var contractToCopy = ORM_CMN_CTR_Contract.Query.Search(Connection, Transaction, new ORM_CMN_CTR_Contract.Query() { CMN_CTR_ContractID = Parameter.ContractID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); var newContractName = "Copy of " + contractToCopy.ContractName; var existingContractName = cls_Get_Existing_ContractName_for_ContractName.Invoke(Connection, Transaction, new P_MD_GECNfCN_1119() { ContractName = newContractName + "%" }, securityTicket).Result; if (existingContractName != null) { var existingName = existingContractName.ContractName.Substring(newContractName.Length).Trim(); try { newContractName += Convert.ToInt32(existingContractName.ContractName.Substring(newContractName.Length).Trim()) + " " + 1; } catch (Exception ex) { newContractName += " " + 1; } } ORM_CMN_CTR_Contract contract = new ORM_CMN_CTR_Contract() { ContractName = newContractName, CMN_CTR_ContractID = Guid.NewGuid(), Creation_Timestamp = DateTime.Now, Modification_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID, ValidFrom = contractToCopy.ValidFrom, ValidThrough = contractToCopy.ValidThrough }; contract.Save(Connection, Transaction); var contractID = contract.CMN_CTR_ContractID; var insuranceToBrokerContract = new ORM_HEC_CRT_InsuranceToBrokerContract(); insuranceToBrokerContract.Creation_Timestamp = DateTime.Now; insuranceToBrokerContract.Ext_CMN_CTR_Contract_RefID = contractID; insuranceToBrokerContract.HEC_CRT_InsuranceToBrokerContractID = Guid.NewGuid(); insuranceToBrokerContract.Modification_Timestamp = DateTime.Now; insuranceToBrokerContract.Tenant_RefID = securityTicket.TenantID; insuranceToBrokerContract.Save(Connection, Transaction); #endregion #region UPDATE COVERED DRUGS var CoveredDrugs = cls_Get_All_Drugs_for_ContractID.Invoke(Connection, Transaction, new P_CAS_GADfCID_1220() { ContractID = Parameter.ContractID }, securityTicket).Result; if (CoveredDrugs.Length != 0) { cls_Save_Contract_Covered_Drugs.Invoke(Connection, Transaction, new P_MD_SCCD_1811() { ContractID = contractID, DrugIDs = CoveredDrugs.Select(cd => cd.drug_id).ToArray() }, securityTicket); } #endregion #region UPDATE COVERED DIAGNOSES var CoveredDiagnoses = cls_Get_All_Diagnoses_for_ContractID.Invoke(Connection, Transaction, new P_CAS_GADfCID_1306() { ContractID = Parameter.ContractID }, securityTicket).Result; if (CoveredDiagnoses.Length != 0) { cls_Save_Contract_Covered_Diagnoses.Invoke(Connection, Transaction, new P_MD_SCCD_1854() { ContractID = contractID, DiagnoseIDs = CoveredDiagnoses.Select(dia => dia.diagnose_id).ToArray() }, securityTicket); } #endregion #region UPDATE GPOSES var connectedDrugs = cls_Get_GPOS_DrugIDs_for_ContractID.Invoke(Connection, Transaction, new P_MD_GGPOSDIDsfCID_1629() { ContractID = Parameter.ContractID }, securityTicket).Result; var connectedDiagnoses = cls_Get_GPOS_DiagnoseIDs_for_ContractID.Invoke(Connection, Transaction, new P_MD_GGPOSDIDsfCID_1633() { ContractID = Parameter.ContractID }, securityTicket).Result; var GposData = cls_Get_GPOS_Details_for_ContractID.Invoke(Connection, Transaction, new P_MD_GGPOSDfCID_1616() { ContractID = Parameter.ContractID }, securityTicket).Result; cls_Save_Contract_GPOS_Data.Invoke(Connection, Transaction, new P_MD_SCGPOSD_1306() { ContractID = contractID, GposData = GposData.Select(gpos => { return(new P_MD_SCGPOSD_1306_Array() { DiagnoseIDs = connectedDiagnoses.Where(dia => dia.GposID == gpos.GposID).Select(dia => dia.DiagnoseID).ToArray(), DrugIDs = connectedDrugs.Where(drug => drug.GposID == gpos.GposID).Select(drug => drug.DrugID).ToArray(), FeeValue = gpos.FeeValue, FromInjection = gpos.FromInjection, GposID = Guid.Empty, GposName = gpos.GposName, GposNumber = gpos.GposNumber, GposType = gpos.GposType, ManagementFeeValue = gpos.ManagementFeeValue, WaiveServiceFeeWithOrder = gpos.WaiveWithOrder }); }).ToArray() }, securityTicket); #endregion UPDATE GPOSES #region UPDATE CONTRACT PARAMETERS var currentDueDates = cls_Get_Due_Dates_for_ContractID.Invoke(Connection, Transaction, new P_MD_GDDfCID_1544() { ContractID = Parameter.ContractID }, securityTicket).Result; if (currentDueDates.Length != 0) { cls_Save_Contract_Due_Dates.Invoke(Connection, Transaction, new P_MD_SCDD_1729() { ContractID = contractID, DueDates = currentDueDates.Select(dd => { return(new P_MD_SCDD_1729_Array() { Value = dd.Value, Name = dd.Name, IsActive = true }); }).ToArray() }, securityTicket); } #endregion #region UPDATE HIPS var currentHIPs = cls_Get_All_HIPs_for_ContractID.Invoke(Connection, Transaction, new P_MD_GAHIPsfCID_1905() { ContractID = Parameter.ContractID }, securityTicket).Result; if (currentHIPs.Length != 0) { cls_Save_Contract_Participating_HIPs.Invoke(Connection, Transaction, new P_MD_SCPHIPs_1341() { ContractID = contractID, HipIDs = currentHIPs.Select(hip => hip.HipBptID).ToArray() }, securityTicket); } #endregion UPDATE HIPS return(returnValue); #endregion UserCode }