protected static FR_Bool Execute(DbConnection Connection, DbTransaction Transaction, P_L5PO_UPOS_1546 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_Bool(); //Put your code here var status = ORM_ORD_PRC_ProcurementOrder_Status.Query.Search(Connection, Transaction, new ORM_ORD_PRC_ProcurementOrder_Status.Query() { Tenant_RefID = securityTicket.TenantID, GlobalPropertyMatchingID = Parameter.Status, IsDeleted = false }).SingleOrDefault(); if (status != null) { var procurementOrderHeader = new ORM_ORD_PRC_ProcurementOrder_Header(); procurementOrderHeader.Load(Connection, Parameter.ProcurementOrderHeaderID); //if procurement order header with given ID doesn't exist, don't make changes in database if (procurementOrderHeader != null) { ORM_ORD_PRC_ProcurementOrder_StatusHistory statusHistory = new ORM_ORD_PRC_ProcurementOrder_StatusHistory(); statusHistory.Tenant_RefID = securityTicket.TenantID; statusHistory.ORD_PRC_ProcurementOrder_StatusHistoryID = Guid.NewGuid(); statusHistory.ProcurementOrder_Header_RefID = Parameter.ProcurementOrderHeaderID; statusHistory.ProcurementOrder_Status_RefID = status.ORD_PRC_ProcurementOrder_StatusID; statusHistory.Save(Connection, Transaction); procurementOrderHeader.Current_ProcurementOrderStatus_RefID = status.ORD_PRC_ProcurementOrder_StatusID; procurementOrderHeader.Save(Connection, Transaction); } } return(returnValue); #endregion UserCode }
protected static FR_CAS_CDO_1250 Execute(DbConnection Connection, DbTransaction Transaction, P_CAS_CDO_1250 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_CAS_CDO_1250(); returnValue.Result = new CAS_CDO_1250(); //Put your code here var treatment_planned_action_id = cls_Get_Treatment_Planned_Action_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GTPAfCID_0946() { CaseID = Parameter.case_id }, securityTicket).Result; var drug_order_status_latestQ = new ORM_ORD_PRC_ProcurementOrder_Status.Query(); drug_order_status_latestQ.ORD_PRC_ProcurementOrder_StatusID = Parameter.ord_drug_order_header.Current_ProcurementOrderStatus_RefID; drug_order_status_latestQ.Tenant_RefID = securityTicket.TenantID; drug_order_status_latestQ.IsDeleted = false; var drug_order_status_latest = ORM_ORD_PRC_ProcurementOrder_Status.Query.Search(Connection, Transaction, drug_order_status_latestQ).SingleOrDefault(); if (drug_order_status_latest.Status_Code == 6) { var previous_status = cls_Get_Previous_Order_Status_for_HeaderID.Invoke(Connection, Transaction, new P_OR_GPOSfHID_1347() { HeaderID = Parameter.ord_drug_order_header.ORD_PRC_ProcurementOrder_HeaderID }, securityTicket).Result; returnValue.Result.previous_status = previous_status != null ? "MO" + previous_status.OrderStatus : ""; } else { returnValue.Result.previous_status = "MO" + drug_order_status_latest.Status_Code; } var cancellation_code = drug_order_status_latest.Status_Code == 0 ? 9 : 6; var cancellation_status = String.Format("MO{0}", cancellation_code); var new_status = new ORM_ORD_PRC_ProcurementOrder_Status(); new_status.Status_Code = cancellation_code; new_status.GlobalPropertyMatchingID = String.Format("mm.doc.connect.drug.order.status.{0}", cancellation_status.ToLower()); new_status.Tenant_RefID = securityTicket.TenantID; new_status.Modification_Timestamp = DateTime.Now; Parameter.ord_drug_order_header.Current_ProcurementOrderStatus_RefID = new_status.ORD_PRC_ProcurementOrder_StatusID; Parameter.ord_drug_order_header.Save(Connection, Transaction); new_status.Status_Name = new Dict(ORM_ORD_PRC_ProcurementOrder_Status.TableName); foreach (var lang in Parameter.all_languagesL) { new_status.Status_Name.AddEntry(lang.CMN_LanguageID, cancellation_status); } new_status.Save(Connection, Transaction); var new_status_history_entry = new ORM_ORD_PRC_ProcurementOrder_StatusHistory(); new_status_history_entry.IsStatus_Canceled = true; new_status_history_entry.Tenant_RefID = securityTicket.TenantID; new_status_history_entry.Modification_Timestamp = DateTime.Now; new_status_history_entry.ProcurementOrder_Header_RefID = Parameter.ord_drug_order_header.ORD_PRC_ProcurementOrder_HeaderID; new_status_history_entry.ProcurementOrder_Status_RefID = new_status.ORD_PRC_ProcurementOrder_StatusID; new_status_history_entry.TriggeredAt_Date = DateTime.Now; new_status_history_entry.TriggeredBy_BusinessParticipant_RefID = Parameter.created_by_bpt; new_status_history_entry.Save(Connection, Transaction); var ord_drug_order_position_history_entry = new ORM_ORD_PRC_ProcurementOrder_Position_History(); ord_drug_order_position_history_entry.Tenant_RefID = securityTicket.TenantID; ord_drug_order_position_history_entry.ProcurementOrder_Position_RefID = Parameter.procurement_order_position_id; ord_drug_order_position_history_entry.IsRemoved = true; ord_drug_order_position_history_entry.Modification_Timestamp = DateTime.Now; ord_drug_order_position_history_entry.Save(Connection, Transaction); var practice_invoice_universal_property = ORM_HEC_CAS_Case_UniversalProperty.Query.Search(Connection, Transaction, new ORM_HEC_CAS_Case_UniversalProperty.Query() { GlobalPropertyMatchingID = "mm.doc.connect.case.practice.invoice", Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); var practice_invoice_universal_property_value = ORM_HEC_CAS_Case_UniversalPropertyValue.Query.Search(Connection, Transaction, new ORM_HEC_CAS_Case_UniversalPropertyValue.Query() { HEC_CAS_Case_UniversalProperty_RefID = practice_invoice_universal_property.HEC_CAS_Case_UniversalPropertyID, HEC_CAS_Case_RefID = Parameter.case_id, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (practice_invoice_universal_property_value != null) { practice_invoice_universal_property_value.IsDeleted = true; practice_invoice_universal_property_value.Modification_Timestamp = DateTime.Now; practice_invoice_universal_property_value.Save(Connection, Transaction); } return(returnValue); #endregion UserCode }
protected static FR_String Execute(DbConnection Connection, DbTransaction Transaction, P_OR_SOtMM_1311 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_String(); //Put your code here var data = cls_Get_Account_Information_with_PracticeID.Invoke(Connection, Transaction, securityTicket).Result; var isNewPharmacy = Parameter.Order.default_pharmacy == Guid.Empty; var current_order_status = isNewPharmacy ? "MO10" : "MO1"; var current_order_status_code = isNewPharmacy ? 10 : 1; var all_languages = ORM_CMN_Language.Query.Search(Connection, Transaction, new ORM_CMN_Language.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); var practice_info = cls_Get_Practice_Details_for_Report.Invoke(Connection, Transaction, new P_DO_GPDFR_0840() { PracticeID = data.PracticeID }, securityTicket).Result; var trigger_acc = ORM_USR_Account.Query.Search(Connection, Transaction, new ORM_USR_Account.Query() { USR_AccountID = securityTicket.AccountID }).Single(); var culture = new CultureInfo("de", true); var delivery_date = DateTime.ParseExact(Parameter.Order.delivery_date, "dd.MM.yyyy", culture); var delivery_date_from = DateTime.ParseExact(Parameter.Order.delivery_date_from, "HH:mm", culture); delivery_date_from = delivery_date.AddHours(delivery_date_from.Hour).AddMinutes(delivery_date_from.Minute); var delivery_date_to = DateTime.ParseExact(Parameter.Order.delivery_date_to, "HH:mm", culture); delivery_date_to = delivery_date.AddHours(delivery_date_to.Hour).AddMinutes(delivery_date_to.Minute); var drug_names = new List <string>(); var cmn_products = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); var hec_products = ORM_HEC_Product.Query.Search(Connection, Transaction, new ORM_HEC_Product.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); var drugs = cls_Get_Drug_Details_on_Tenant.Invoke(Connection, Transaction, securityTicket).Result; #region save and get pharmacy if (isNewPharmacy) { Parameter.Order.default_pharmacy = cls_Save_Pharmacy.Invoke(Connection, Transaction, new P_PH_SP_1124 { Pharmacy = new Pharmacy.Model.Pharmacy(Guid.Empty, Parameter.Order.pharmacy_name, String.Empty, String.Empty, String.Empty, Parameter.Order.pharmacy_street, Parameter.Order.pharmacy_street_number, Parameter.Order.pharmacy_zip_code, Parameter.Order.pharmacy_town, true, String.Empty) }, securityTicket).Result; } var pharmacy = cls_Get_Pharmacy_for_PharmacyID.Invoke(Connection, Transaction, new P_PH_GPfPID_1535 { PharmacyID = Parameter.Order.default_pharmacy }, securityTicket).Result; #endregion var ordersForReport = new List <ReportOrderItem>(); foreach (var order_id in Parameter.Order.order_ids) { #region Status var header = ORM_ORD_PRC_ProcurementOrder_Header.Query.Search(Connection, Transaction, new ORM_ORD_PRC_ProcurementOrder_Header.Query() { ORD_PRC_ProcurementOrder_HeaderID = order_id, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); header.ProcurementOrder_Supplier_RefID = pharmacy != null ? pharmacy.CompanyBPID : Guid.Empty; var header_comment = new ORM_ORD_PRC_ProcurementOrder_Note(); header_comment.Comment = Parameter.Order.comment; header_comment.Title = "Order comment"; header_comment.Tenant_RefID = securityTicket.TenantID; header_comment.ORD_PRC_ProcurementOrder_Header_RefID = order_id; header_comment.Save(Connection, Transaction); ORM_ORD_PRC_ProcurementOrder_Position.Query order_positionQ = new ORM_ORD_PRC_ProcurementOrder_Position.Query(); order_positionQ.Tenant_RefID = securityTicket.TenantID; order_positionQ.IsDeleted = false; order_positionQ.ProcurementOrder_Header_RefID = order_id; var order_position = ORM_ORD_PRC_ProcurementOrder_Position.Query.Search(Connection, Transaction, order_positionQ).SingleOrDefault(); var position_comment = order_position != null ? order_position.Position_Comment ?? String.Empty : String.Empty; var drug_order_status = new ORM_ORD_PRC_ProcurementOrder_Status(); drug_order_status.GlobalPropertyMatchingID = String.Format("mm.doc.connect.drug.order.status.{0}", current_order_status.ToLower()); drug_order_status.Status_Code = current_order_status_code; drug_order_status.Tenant_RefID = securityTicket.TenantID; drug_order_status.Status_Name = new Dict(ORM_ORD_PRC_ProcurementOrder_Status.TableName); foreach (var lang in all_languages) { drug_order_status.Status_Name.AddEntry(lang.CMN_LanguageID, current_order_status); } drug_order_status.Save(Connection, Transaction); var drug_order_status_history = new ORM_ORD_PRC_ProcurementOrder_StatusHistory(); drug_order_status_history.ProcurementOrder_Header_RefID = header.ORD_PRC_ProcurementOrder_HeaderID; drug_order_status_history.ProcurementOrder_Status_RefID = drug_order_status.ORD_PRC_ProcurementOrder_StatusID; drug_order_status_history.Tenant_RefID = securityTicket.TenantID; drug_order_status_history.IsStatus_Created = true; drug_order_status_history.TriggeredAt_Date = DateTime.Now; drug_order_status_history.TriggeredBy_BusinessParticipant_RefID = trigger_acc.BusinessParticipant_RefID; drug_order_status_history.Save(Connection, Transaction); header.Current_ProcurementOrderStatus_RefID = drug_order_status.ORD_PRC_ProcurementOrder_StatusID; header.Save(Connection, Transaction); #endregion Status var ord_drug_order = ORM_ORD_PRC_ProcurementOrder_Position.Query.Search(Connection, Transaction, new ORM_ORD_PRC_ProcurementOrder_Position.Query() { ProcurementOrder_Header_RefID = order_id, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ord_drug_order.Position_RequestedDateOfDelivery = delivery_date.Date; ord_drug_order.RequestedDateOfDelivery_TimeFrame_From = delivery_date_from; ord_drug_order.RequestedDateOfDelivery_TimeFrame_To = delivery_date_to; ord_drug_order.Save(Connection, Transaction); var hec_drug_order = ORM_HEC_PRC_ProcurementOrder_Position.Query.Search(Connection, Transaction, new ORM_HEC_PRC_ProcurementOrder_Position.Query() { Ext_ORD_PRC_ProcurementOrder_Position_RefID = ord_drug_order.ORD_PRC_ProcurementOrder_PositionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); var drug_id = ORM_HEC_ACT_PlannedAction_PotentialProcedure_RequiredProduct.Query.Search(Connection, Transaction, new ORM_HEC_ACT_PlannedAction_PotentialProcedure_RequiredProduct.Query() { BoundTo_HealthcareProcurementOrderPosition_RefID = hec_drug_order.HEC_PRC_ProcurementOrder_PositionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single().HealthcareProduct_RefID; var drugName = drugs.First(t => t.DrugID == drug_id).DrugName; drug_names.Add(drugName); if (Parameter.Order.doctor_id != Guid.Empty) { var authorizing_doctor_details = cls_Get_Doctor_BasicInformation_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDBIfDID_1034() { DoctorID = Parameter.Order.doctor_id }, securityTicket).Result; hec_drug_order.Clearing_Doctor_RefID = Parameter.Order.doctor_id; hec_drug_order.ClearingDoctor_DisplayName = GenericUtils.GetDoctorName(authorizing_doctor_details); hec_drug_order.Save(Connection, Transaction); } var shipping_address = new ORM_CMN_UniversalContactDetail(); shipping_address.Modification_Timestamp = DateTime.Now; shipping_address.Tenant_RefID = securityTicket.TenantID; shipping_address.Street_Name = Parameter.Order.street; shipping_address.Street_Number = Parameter.Order.number; shipping_address.ZIP = Parameter.Order.zip; shipping_address.Town = Parameter.Order.city; shipping_address.CompanyName_Line1 = Parameter.Order.receiver; shipping_address.Save(Connection, Transaction); var ord_drug_order_header = new ORM_ORD_PRC_ProcurementOrder_Header(); ord_drug_order_header.Load(Connection, Transaction, ord_drug_order.ProcurementOrder_Header_RefID); ord_drug_order_header.ShippingAddressUCD_RefID = shipping_address.CMN_UniversalContactDetailID; ord_drug_order_header.Modification_Timestamp = DateTime.Now; ord_drug_order_header.ProcurementOrder_Supplier_RefID = pharmacy != null ? pharmacy.CompanyBPID : Guid.Empty; ord_drug_order_header.Save(Connection, Transaction); ordersForReport.Add(new ReportOrderItem { Name = drugName, PositionComment = position_comment, Patient = new ReportOrderPatientInformation { PatientID = hec_drug_order.OrderedFor_Patient_RefID, FeeWaived = hec_drug_order.IsOrderForPatient_PatientFeeWaived } }); } #region Send e-mail if urgent order var defaultshippingDateOffset = cls_Get_Practice_PropertyValue_for_PropertyName_and_PracticeID.Invoke(Connection, Transaction, new P_DO_GPPVfPNaPID_0916() { PracticeID = data.PracticeID, PropertyName = "Default Shipping Date Offset" }, securityTicket).Result.NumericValue; var company_settings = cls_Get_Company_Settings.Invoke(Connection, Transaction, securityTicket).Result; var ordernum = company_settings.ImmediateOrderInterval; if (delivery_date > DateTime.Now.AddDays(-defaultshippingDateOffset).AddMinutes(ordernum)) { try { Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE"); var mailToL = new List <String>(); var accountMails = cls_Get_All_Account_LoginEmails_Who_Receive_Notifications.Invoke(Connection, Transaction, securityTicket).Result.ToList(); foreach (var mail in accountMails) { mailToL.Add(mail.LoginEmail); } var mailToFromCompanySettings = company_settings.Email; mailToL.Add(mailToFromCompanySettings); var appName = WebConfigurationManager.AppSettings["mmAppUrl"]; var prefix = HttpContext.Current.Request.Url.AbsoluteUri.Contains("https") ? "https://" : "http://"; var imageUrl = HttpContext.Current.Request.Url.AbsoluteUri.Substring(0, HttpContext.Current.Request.Url.AbsoluteUri.IndexOf("api")) + "Content/images/logo.png"; var email_template = File.ReadAllText(HttpContext.Current.Server.MapPath("~/EmailTemplates/UrgentOrderEmailTemplate.html")); var subjectsJson = File.ReadAllText(HttpContext.Current.Server.MapPath("~/EmailTemplates/EmailSubjects.json")); dynamic subjects = JsonConvert.DeserializeObject(subjectsJson); var subjectMail = subjects["UrgentOrderSubject"].ToString(); email_template = EmailTemplater.SetTemplateData(email_template, new { orders = drug_names.Select(t => new { order_date_time_from = delivery_date_from.ToString("dd.MM.yyyy HH:mm"), order_date_time_to = delivery_date_to.ToString("HH:mm"), name = data.AccountInformation.name, drug_name = t }), mmapp_dashboard_url = prefix + HttpContext.Current.Request.Url.Authority + "/" + appName, medios_connect_logo_url = imageUrl }, "{{", "}}"); var mailFrom = WebConfigurationManager.AppSettings["mailFrom"]; var mailsDistinct = mailToL.Distinct().ToList(); foreach (var mailTo in mailsDistinct) { EmailNotificationSenderUtil.SendEmail(mailFrom, mailTo, subjectMail, email_template); } } catch (Exception ex) { LogUtils.Logger.LogDocAppInfo(new LogUtils.LogEntry(System.Reflection.MethodInfo.GetCurrentMethod(), ex, null, "Urgent order: Email sending failed."), "EmailExceptions"); } } #endregion SEND MAIL URGENT ORDER #region Update case order number var case_order_number = cls_Save_Case_Order_Number_for_OrderIDs.Invoke(Connection, Transaction, new P_CAS_SCONfOID_1442 { order_ids = Parameter.Order.order_ids.ToArray(), practice_bsnr = practice_info.BSNR }, securityTicket).Result; #endregion #region Create PDF report if (isNewPharmacy) { #region patient information var patients_info = cls_Get_Patient_Details_for_PatientIDs.Invoke(Connection, Transaction, new P_PA_GPDfPIDs_1354 { PatientIDs = ordersForReport.Select(x => x.Patient).Select(x => x.PatientID).Distinct().ToArray() }, securityTicket).Result; foreach (var order in ordersForReport) { var patient_info = patients_info.Single(x => x.PatientID == order.Patient.PatientID); order.Patient.FirstName = patient_info.FirstName; order.Patient.LastName = patient_info.LastName; order.Patient.BirthDate = patient_info.BirthDate; order.Patient.Hip = patient_info.HipName; order.Patient.InsuranceStatus = patient_info.InsuranceStatus; } #endregion #region Repack data for report var orderPdfReport = new OrderPdfReportGenerator(); var reportOrderInfo = new ReportOrderInformation { DeliveryDate = delivery_date, DeliveryTimeFrom = delivery_date_from, DeliveryTimeTo = delivery_date_to, CreationDate = DateTime.Now, OrderNumber = case_order_number, HeaderComment = Parameter.Order.comment ?? String.Empty, OrderedDrugs = ordersForReport, }; var reportPractice = new OrderParticipantInformation { City = practice_info.City, Email = practice_info.Contact_Email, Name = practice_info.Name, Number = practice_info.Street_Number, Phone = practice_info.Contact_Telephone, Street = practice_info.Street_Name, Zip = practice_info.ZIP }; var reportPharmacy = new OrderParticipantInformation { Name = pharmacy.PharmacyName, Street = pharmacy.Street_Name, Number = pharmacy.Street_Number, Zip = pharmacy.ZIP, City = pharmacy.Town, Email = pharmacy.Contact_Email, Phone = pharmacy.Contact_Telephone }; #endregion var bytes = orderPdfReport.Generate( new Model.OrderReportParameters { Orders = reportOrderInfo, Pharmacy = reportPharmacy, Practice = reportPractice }, HttpContext.Current.Server.MapPath("~/ReportContent/SubmitOrderPdfReportContent.xml") ); var _providerFactory = ProviderFactory.Instance; var documentProvider = _providerFactory.CreateDocumentServiceProvider(); var fileName = String.Format("{0}-{1}-{2}.pdf", "Submited Orders", pharmacy.PharmacyName, DateTime.Now.ToString("dd.MM.yyyy HH:mm")); var documentID = documentProvider.UploadDocument(bytes, fileName, securityTicket.SessionTicket, HttpContext.Current.Request.UserHostAddress); var reportURL = documentProvider.GenerateDownloadLink(documentID, securityTicket.SessionTicket, true, true); var parameterDoc = new P_OR_UOPDFR_1049(); parameterDoc.DocumentID = documentID; parameterDoc.Mime = UtilMethods.GetMimeType(fileName); parameterDoc.DocumentName = fileName; parameterDoc.CaseOrderNumber = case_order_number; parameterDoc.OrderIDs = Parameter.Order.order_ids.ToArray(); cls_Upload_Order_PDF_Report.Invoke(Connection, Transaction, parameterDoc, securityTicket); returnValue.Result = reportURL; } #endregion return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_OR_COS_0840 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); List <Case_Model> cases = new List <Case_Model>(); List <PatientDetailViewModel> patientDetailList = new List <PatientDetailViewModel>(); List <Order_Model> OrderModelL = new List <Order_Model>(); //Put your code here foreach (var ParameterInstance in Parameter.ParameterArray) { var procurmentHeader = ORM_ORD_PRC_ProcurementOrder_Header.Query.Search(Connection, Transaction, new ORM_ORD_PRC_ProcurementOrder_Header.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, ORD_PRC_ProcurementOrder_HeaderID = ParameterInstance.Order_ID }).Single(); var newOrderStatus = new ORM_ORD_PRC_ProcurementOrder_Status(); newOrderStatus.Tenant_RefID = securityTicket.TenantID; newOrderStatus.Status_Code = ParameterInstance.Status_To; newOrderStatus.Modification_Timestamp = DateTime.Now; newOrderStatus.Save(Connection, Transaction); var newOrderStatusHistory = new ORM_ORD_PRC_ProcurementOrder_StatusHistory(); newOrderStatusHistory.Tenant_RefID = securityTicket.TenantID; newOrderStatusHistory.ProcurementOrder_Status_RefID = newOrderStatus.ORD_PRC_ProcurementOrder_StatusID; newOrderStatusHistory.IsStatus_RejectedBySupplier = true; newOrderStatusHistory.ProcurementOrder_Header_RefID = procurmentHeader.ORD_PRC_ProcurementOrder_HeaderID; newOrderStatusHistory.Save(Connection, Transaction); procurmentHeader.Current_ProcurementOrderStatus_RefID = newOrderStatus.ORD_PRC_ProcurementOrder_StatusID; procurmentHeader.Save(Connection, Transaction); #region Update Case Elastic var caseForUpdate = cls_Get_Case_Details_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GCDfCID_1435() { CaseID = ParameterInstance.CaseID }, securityTicket).Result; var patient_details = cls_Get_Patient_Details_for_PatientID.Invoke(Connection, Transaction, new P_P_PA_GPDfPID_1124() { PatientID = caseForUpdate.patient_id }, securityTicket).Result; var diagnose_details = cls_Get_Diagnose_Details_for_DiagnoseID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1608() { DiagnoseID = caseForUpdate.diagnose_id }, securityTicket).Result; var drug_details = cls_Get_Drug_Details_for_DrugID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1614() { DrugID = caseForUpdate.drug_id }, securityTicket).Result; var treatment_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823() { DoctorID = caseForUpdate.op_doctor_id }, securityTicket).Result.SingleOrDefault(); var case_status = cls_Check_Case_Status.Invoke(Connection, Transaction, new P_CAS_CCS_1639() { CaseID = ParameterInstance.CaseID }, securityTicket).Result; if (case_status == null) { var case_model_elastic = Get_Cases.GetCaseforCaseID(caseForUpdate.case_id.ToString(), securityTicket); if (case_model_elastic != null) { case_model_elastic.status_drug_order = ParameterInstance.Status_To_Str; case_model_elastic.order_modification_timestamp = caseForUpdate.order_modification_timestamp; case_model_elastic.order_modification_timestamp_string = caseForUpdate.order_modification_timestamp.ToString("dd.MM.yyyy"); cases.Add(case_model_elastic); } } #endregion var orderM = Get_Orders.GetOrderforOrderID(procurmentHeader.ORD_PRC_ProcurementOrder_HeaderID.ToString(), securityTicket); if (orderM != null) { orderM.status_drug_order = ParameterInstance.Status_To_Str; orderM.order_modification_timestamp = DateTime.Now; orderM.order_modification_timestamp_string = DateTime.Now.ToString("dd.MM.yyyy"); OrderModelL.Add(orderM); var patientDetalTreatmentWithOrder = Retrieve_Patients.Get_PatientDetaiForIDandOrderID(orderM.id, securityTicket).Where(i => i.detail_type == "op").SingleOrDefault(); if (patientDetalTreatmentWithOrder == null) { PatientDetailViewModel patient_detail = new PatientDetailViewModel(); patient_detail.case_id = orderM.case_id; patient_detail.date = orderM.treatment_date; patient_detail.date_string = patient_detail.date.ToString("dd.MM."); patient_detail.detail_type = "order"; patient_detail.diagnose_or_medication = orderM.drug; patient_detail.practice_id = orderM.practice_id; patient_detail.id = orderM.id; patient_detail.order_id = orderM.id; patient_detail.case_id = orderM.case_id; patient_detail.order_status = orderM.status_drug_order; patient_detail.patient_id = patient_details.id.ToString(); patient_detail.drug_id = orderM.drug_id; patientDetailList.Add(patient_detail); } else { patientDetalTreatmentWithOrder.date = orderM.treatment_date; patientDetalTreatmentWithOrder.date_string = patientDetalTreatmentWithOrder.date.ToString("dd.MM."); patientDetalTreatmentWithOrder.case_id = orderM.case_id; patientDetalTreatmentWithOrder.order_id = orderM.id; patientDetalTreatmentWithOrder.practice_id = orderM.practice_id; patientDetalTreatmentWithOrder.drug = orderM.drug; patientDetalTreatmentWithOrder.drug_id = orderM.drug_id; patientDetalTreatmentWithOrder.order_status = orderM.status_drug_order; patientDetalTreatmentWithOrder.patient_id = patient_details.id.ToString(); patientDetailList.Add(patientDetalTreatmentWithOrder); } } } if (patientDetailList.Count != 0) { Add_New_Patient.ImportPatientDetailsToElastic(patientDetailList, securityTicket.TenantID.ToString()); } if (OrderModelL.Count != 0) { Add_New_Order.Import_Order_Data_to_ElasticDB(OrderModelL, securityTicket.TenantID.ToString()); } if (cases.Count != 0) { Add_New_Case.Import_Case_Data_to_ElasticDB(cases, securityTicket.TenantID.ToString()); } return(returnValue); #endregion UserCode }
protected static FR_OR_CAOS_1424 Execute(DbConnection Connection, DbTransaction Transaction, P_OR_CAOS_1424 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_OR_CAOS_1424(); returnValue.Result = new OR_CAOS_1424(); //Put your code here var statuses = new List <string>(); statuses.Add(Parameter.Status_From.ToString()); var ordersForChange = cls_Get_all_Orders_with_Status.Invoke(Connection, Transaction, new P_OR_GOwS_1428() { Status = statuses.ToArray() }, securityTicket).Result; #region Create Orders Report if (Parameter.Status_To_Str == "MO2") { returnValue.Result.ReportURL = cls_Create_Orders_Report.Invoke(Connection, Transaction, new P_OR_COR_1437 { GroupByPharmacy = true, Statuses = new int[] { 1, 6 } }, securityTicket).Result; //Check with Nemanja what this code shoud to do, it is same as code in cls_Change_Order_Status and it was in cls_Create_Orders_Report #region change status var statusDeleted = 6; var ordersForChangeDeleted = cls_Get_all_Orders_with_Status.Invoke(Connection, Transaction, new P_OR_GOwS_1428() { Status = new string[] { statusDeleted.ToString() } }, securityTicket).Result; foreach (var order in ordersForChangeDeleted) { var procurmentHeader = ORM_ORD_PRC_ProcurementOrder_Header.Query.Search(Connection, Transaction, new ORM_ORD_PRC_ProcurementOrder_Header.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, ORD_PRC_ProcurementOrder_HeaderID = order.OrderID }).Single(); var newOrderStatus = new ORM_ORD_PRC_ProcurementOrder_Status(); newOrderStatus.Tenant_RefID = securityTicket.TenantID; newOrderStatus.Status_Code = 7; newOrderStatus.Save(Connection, Transaction); var newOrderStatusHistory = new ORM_ORD_PRC_ProcurementOrder_StatusHistory(); newOrderStatusHistory.Tenant_RefID = securityTicket.TenantID; newOrderStatusHistory.ProcurementOrder_Status_RefID = newOrderStatus.ORD_PRC_ProcurementOrder_StatusID; newOrderStatusHistory.IsStatus_RejectedBySupplier = true; newOrderStatusHistory.ProcurementOrder_Header_RefID = procurmentHeader.ORD_PRC_ProcurementOrder_HeaderID; newOrderStatusHistory.Save(Connection, Transaction); procurmentHeader.Current_ProcurementOrderStatus_RefID = newOrderStatus.ORD_PRC_ProcurementOrder_StatusID; procurmentHeader.Save(Connection, Transaction); } #endregion } #endregion if (ordersForChange.Any()) { P_OR_COS_0840 param = new P_OR_COS_0840() { ParameterArray = ordersForChange.Select(order => { P_OR_COS_0840a parameter = new P_OR_COS_0840a(); parameter.CaseID = order.CaseID; parameter.Order_ID = order.OrderID; parameter.Status_To = Parameter.Status_To; parameter.Status_To_Str = Parameter.Status_To_Str; return(parameter); }).ToArray() }; var data = cls_Change_Order_Status.Invoke(Connection, Transaction, param, securityTicket); } returnValue.Result.Orders = ordersForChange; return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L6TR_SaOQTwPO_1620 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here P_L6TR_SQT_1308 param = new P_L6TR_SQT_1308(); param = Parameter.QuickTreatment; Guid TreatmentID = cls_Save_Quick_Treatment.Invoke(Connection, Transaction, param, securityTicket).Result; #region Save Order var status_query = new ORM_ORD_PRC_ProcurementOrder_Status.Query(); status_query.IsDeleted = false; status_query.Tenant_RefID = securityTicket.TenantID; status_query.GlobalPropertyMatchingID = STLD_ORD_CUO_CustomerOrder_Status.Ordered.ToString(); var notOrderedstatus = ORM_ORD_PRC_ProcurementOrder_Status.Query.Search(Connection, Transaction, status_query).First(); var prod_param = new P_L6PD_GPaPOSfT_1702(); prod_param.TreatmentID = TreatmentID; var products = cls_Get_Product_and_ProcurementOrderStatuses_for_TreatmentID.Invoke(Connection, Transaction, prod_param, securityTicket).Result; var notOrdered_Products = products.Where(i => i.BoundTo_ProcurementOrderPosition_RefID == Guid.Empty); if (notOrdered_Products.Count() == 0) { return(returnValue); } #region Save Header and Status var header_query = new ORM_ORD_PRC_ProcurementOrder_Header.Query(); header_query.IsDeleted = false; header_query.Tenant_RefID = securityTicket.TenantID; var headers = ORM_ORD_PRC_ProcurementOrder_Header.Query.Search(Connection, Transaction, header_query); var count = 0; if (headers != null) { count = headers.Count(); } String ordernumber = "000000000000" + (count + 1).ToString(); ordernumber = ordernumber.Substring(ordernumber.Length - 12); var header = new ORM_ORD_PRC_ProcurementOrder_Header(); header.ORD_PRC_ProcurementOrder_HeaderID = Guid.NewGuid(); header.Current_ProcurementOrderStatus_RefID = notOrderedstatus.ORD_PRC_ProcurementOrder_StatusID; header.ProcurementOrder_Number = ordernumber; header.ProcurementOrder_Date = DateTime.Now; header.Creation_Timestamp = DateTime.Now; header.Tenant_RefID = securityTicket.TenantID; header.Save(Connection, Transaction); var history = new ORM_ORD_PRC_ProcurementOrder_StatusHistory(); history.ORD_PRC_ProcurementOrder_StatusHistoryID = Guid.NewGuid(); history.ProcurementOrder_Header_RefID = header.ORD_PRC_ProcurementOrder_HeaderID; history.ProcurementOrder_Status_RefID = notOrderedstatus.ORD_PRC_ProcurementOrder_StatusID; history.StatusHistoryComment = ""; history.Creation_Timestamp = DateTime.Now; history.Tenant_RefID = securityTicket.TenantID; history.Save(Connection, Transaction); #endregion int cnt = 0; foreach (var product in notOrdered_Products) { cnt++; var position = new ORM_ORD_PRC_ProcurementOrder_Position(); position.ORD_PRC_ProcurementOrder_PositionID = Guid.NewGuid(); position.ProcurementOrder_Header_RefID = header.ORD_PRC_ProcurementOrder_HeaderID; position.Position_OrdinalNumber = cnt; position.Position_Quantity = product.Quantity; position.Position_ValuePerUnit = 1; position.Position_ValueTotal = decimal.Parse(product.Quantity.ToString()); position.CMN_PRO_Product_Variant_RefID = Guid.Empty; position.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; position.CMN_PRO_Product_Release_RefID = Guid.Empty; position.Position_RequestedDateOfDelivery = product.ExpectedDateOfDelivery; position.Creation_Timestamp = DateTime.Now; position.Tenant_RefID = securityTicket.TenantID; position.Save(Connection, Transaction); var item = new ORM_HEC_Patient_Treatment_RequiredProduct(); item.Load(Connection, Transaction, product.HEC_Patient_Treatment_RequiredProductID); item.BoundTo_CustomerOrderPosition_RefID = position.ORD_PRC_ProcurementOrder_PositionID; item.Save(Connection, Transaction); } #endregion return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5SR_SRH_1545 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); Guid HeaderID = Parameter.ReceiptHeaderID; var businessParticipant = CL1_CMN_BPT.ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, new CL1_CMN_BPT.ORM_CMN_BPT_BusinessParticipant.Query() { IfTenant_Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); bool isNew = HeaderID == Guid.Empty; var expectedDeliveryHeader = new CL1_ORD_PRC.ORM_ORD_PRC_ExpectedDelivery_Header(); var receiptHeader = new CL1_LOG_RCP.ORM_LOG_RCP_Receipt_Header(); var procurementHeader = new CL1_ORD_PRC.ORM_ORD_PRC_ProcurementOrder_Header(); var receiptToProcurement = new CL1_LOG_RCP.ORM_LOG_RCP_ReceiptHeader_2_ProcurementOrderHeader(); #region Receipt Header if (isNew) { var incrNumberParam = new P_L2NR_GaIINfUA_1454() { GlobalStaticMatchingID = EnumUtils.GetEnumDescription(ENumberRangeUsageAreaType.StockReceiptNumber) }; var receiptNumber = cls_Get_and_Increase_IncreasingNumber_for_UsageArea.Invoke(Connection, Transaction, incrNumberParam, securityTicket).Result.Current_IncreasingNumber; receiptHeader = new CL1_LOG_RCP.ORM_LOG_RCP_Receipt_Header(); receiptHeader.ReceiptNumber = receiptNumber; receiptHeader.LOG_RCP_Receipt_HeaderID = Guid.NewGuid(); receiptHeader.Creation_Timestamp = DateTime.Now; receiptHeader.Tenant_RefID = securityTicket.TenantID; receiptHeader.ReceiptHeaderITL = receiptHeader.LOG_RCP_Receipt_HeaderID.ToString(); receiptHeader.IsTakenIntoStock = false; } else { var query = new CL1_LOG_RCP.ORM_LOG_RCP_Receipt_Header.Query { LOG_RCP_Receipt_HeaderID = Parameter.ReceiptHeaderID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }; receiptHeader = CL1_LOG_RCP.ORM_LOG_RCP_Receipt_Header.Query.Search(Connection, Transaction, query).Single(); } HeaderID = receiptHeader.LOG_RCP_Receipt_HeaderID; receiptHeader.ProvidingSupplier_RefID = Parameter.SupplierID; receiptHeader.Save(Connection, Transaction); #endregion Receipt Header #region Expected Delivery Header if (isNew) { var incrNumberParam = new P_L2NR_GaIINfUA_1454() { GlobalStaticMatchingID = EnumUtils.GetEnumDescription(ENumberRangeUsageAreaType.ExpectedDeliveryNumber) }; var expectedDeliveryNumber = cls_Get_and_Increase_IncreasingNumber_for_UsageArea.Invoke(Connection, Transaction, incrNumberParam, securityTicket).Result.Current_IncreasingNumber; expectedDeliveryHeader = new CL1_ORD_PRC.ORM_ORD_PRC_ExpectedDelivery_Header { ORD_PRC_ExpectedDelivery_HeaderID = Guid.NewGuid(), Tenant_RefID = securityTicket.TenantID, Creation_Timestamp = DateTime.Now, ExpectedDeliveryNumber = expectedDeliveryNumber, IsDeliveryOpen = true, IsDeliveryClosed = false, }; expectedDeliveryHeader.ExpectedDeliveryHeaderITL = expectedDeliveryHeader.ORD_PRC_ExpectedDelivery_HeaderID.ToString(); // save receipt header with new expected delivery header receiptHeader.ExpectedDeliveryHeader_RefID = expectedDeliveryHeader.ORD_PRC_ExpectedDelivery_HeaderID; receiptHeader.Save(Connection, Transaction); } else { var query = new CL1_ORD_PRC.ORM_ORD_PRC_ExpectedDelivery_Header.Query { ORD_PRC_ExpectedDelivery_HeaderID = receiptHeader.ExpectedDeliveryHeader_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }; expectedDeliveryHeader = CL1_ORD_PRC.ORM_ORD_PRC_ExpectedDelivery_Header.Query.Search(Connection, Transaction, query).Single(); } if (Parameter.LatestDeliveryDate != null) { expectedDeliveryHeader.ExpectedDeliveryDate = Parameter.LatestDeliveryDate.Value; } expectedDeliveryHeader.Save(Connection, Transaction); #endregion Expected Delivery Header #region Procurement Order if (isNew) { procurementHeader = new CL1_ORD_PRC.ORM_ORD_PRC_ProcurementOrder_Header(); procurementHeader.ORD_PRC_ProcurementOrder_HeaderID = Guid.NewGuid(); procurementHeader.Creation_Timestamp = DateTime.Now; procurementHeader.Tenant_RefID = securityTicket.TenantID; procurementHeader.CreatedBy_BusinessParticipant_RefID = businessParticipant.CMN_BPT_BusinessParticipantID; procurementHeader.IsCreatedForExpectedDelivery = true; procurementHeader.ProcurementOrder_Currency_RefID = cls_Get_DefaultCurrency_for_Tenant.Invoke(Connection, Transaction, securityTicket).Result.CMN_CurrencyID; receiptToProcurement = new CL1_LOG_RCP.ORM_LOG_RCP_ReceiptHeader_2_ProcurementOrderHeader(); receiptToProcurement.AssignmentID = Guid.NewGuid(); receiptToProcurement.Creation_Timestamp = DateTime.Now; receiptToProcurement.Tenant_RefID = securityTicket.TenantID; receiptToProcurement.LOG_RCP_Receipt_Header_RefID = receiptHeader.LOG_RCP_Receipt_HeaderID; receiptToProcurement.ORD_PRO_ProcurementOrder_Header_RefID = procurementHeader.ORD_PRC_ProcurementOrder_HeaderID; receiptToProcurement.Save(Connection, Transaction); } else { var query = new CL1_LOG_RCP.ORM_LOG_RCP_ReceiptHeader_2_ProcurementOrderHeader.Query { LOG_RCP_Receipt_Header_RefID = HeaderID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }; receiptToProcurement = CL1_LOG_RCP.ORM_LOG_RCP_ReceiptHeader_2_ProcurementOrderHeader.Query.Search(Connection, Transaction, query).Single(); var query2 = new CL1_ORD_PRC.ORM_ORD_PRC_ProcurementOrder_Header.Query { ORD_PRC_ProcurementOrder_HeaderID = receiptToProcurement.ORD_PRO_ProcurementOrder_Header_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }; procurementHeader = CL1_ORD_PRC.ORM_ORD_PRC_ProcurementOrder_Header.Query.Search(Connection, Transaction, query2).Single(); } #region get status for procurement order var newProcurementOrderStatusID = CL1_ORD_PRC.ORM_ORD_PRC_ProcurementOrder_Status.Query.Search(Connection, Transaction, new CL1_ORD_PRC.ORM_ORD_PRC_ProcurementOrder_Status.Query() { GlobalPropertyMatchingID = DLCore_DBCommons.Utils.EnumUtils.GetEnumDescription(EProcurementStatus.Ordered), Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single().ORD_PRC_ProcurementOrder_StatusID; #endregion procurementHeader.Current_ProcurementOrderStatus_RefID = newProcurementOrderStatusID; procurementHeader.ProcurementOrder_Supplier_RefID = Parameter.SupplierID; procurementHeader.Save(Connection, Transaction); if (!string.IsNullOrEmpty(Parameter.ProcurementOrderStatus)) { var queryStatus = new CL1_ORD_PRC.ORM_ORD_PRC_ProcurementOrder_Status.Query() { GlobalPropertyMatchingID = Parameter.ProcurementOrderStatus, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }; var status = CL1_ORD_PRC.ORM_ORD_PRC_ProcurementOrder_Status.Query.Search(Connection, Transaction, queryStatus).Single(); var statusHistory = new ORM_ORD_PRC_ProcurementOrder_StatusHistory(); statusHistory.ORD_PRC_ProcurementOrder_StatusHistoryID = Guid.NewGuid(); statusHistory.ProcurementOrder_Header_RefID = procurementHeader.ORD_PRC_ProcurementOrder_HeaderID; statusHistory.ProcurementOrder_Status_RefID = status.ORD_PRC_ProcurementOrder_StatusID; statusHistory.IsDeleted = false; statusHistory.Tenant_RefID = securityTicket.TenantID; statusHistory.Creation_Timestamp = DateTime.Now; statusHistory.Save(Connection, Transaction); } #endregion Procurement Order returnValue.Result = HeaderID; return(returnValue); #endregion UserCode }
protected static FR_CAS_CDO_1202 Execute(DbConnection Connection, DbTransaction Transaction, P_CAS_CDO_1202 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_CAS_CDO_1202(); returnValue.Result = new CAS_CDO_1202(); //Put your code here var statusCodePrefix = "MO"; var statusCode = 0; var drugOrderStatus = String.Format("{0}{1}", statusCodePrefix, statusCode); var hec_drugQ = new ORM_HEC_Product.Query(); hec_drugQ.Tenant_RefID = securityTicket.TenantID; hec_drugQ.IsDeleted = false; hec_drugQ.HEC_ProductID = Parameter.drug_id; var hec_drug = ORM_HEC_Product.Query.Search(Connection, Transaction, hec_drugQ).SingleOrDefault(); if (hec_drug != null) { var ord_drug_order_header = new ORM_ORD_PRC_ProcurementOrder_Header(); ord_drug_order_header.CreatedBy_BusinessParticipant_RefID = Parameter.created_by_bpt; ord_drug_order_header.ProcurementOrder_Date = DateTime.Now; ord_drug_order_header.Tenant_RefID = securityTicket.TenantID; ord_drug_order_header.ProcurementOrder_Number = cls_Get_Next_Order_Number.Invoke(Connection, Transaction, securityTicket).Result.order_number; returnValue.Result.procurement_order_header_id = ord_drug_order_header.ORD_PRC_ProcurementOrder_HeaderID; var drug_order_status = new ORM_ORD_PRC_ProcurementOrder_Status(); drug_order_status.GlobalPropertyMatchingID = String.Format("mm.doc.connect.drug.order.status.{0}", drugOrderStatus.ToLower()); drug_order_status.Status_Code = statusCode; drug_order_status.Tenant_RefID = securityTicket.TenantID; drug_order_status.Status_Name = new Dict(ORM_ORD_PRC_ProcurementOrder_Status.TableName); foreach (var lang in Parameter.all_languagesL) { drug_order_status.Status_Name.AddEntry(lang.CMN_LanguageID, drugOrderStatus); } drug_order_status.Save(Connection, Transaction); ord_drug_order_header.Current_ProcurementOrderStatus_RefID = drug_order_status.ORD_PRC_ProcurementOrder_StatusID; ord_drug_order_header.Save(Connection, Transaction); var drug_order_status_history = new ORM_ORD_PRC_ProcurementOrder_StatusHistory(); drug_order_status_history.ProcurementOrder_Header_RefID = ord_drug_order_header.ORD_PRC_ProcurementOrder_HeaderID; drug_order_status_history.ProcurementOrder_Status_RefID = drug_order_status.ORD_PRC_ProcurementOrder_StatusID; drug_order_status_history.Tenant_RefID = securityTicket.TenantID; drug_order_status_history.IsStatus_Created = true; drug_order_status_history.TriggeredAt_Date = DateTime.Now; drug_order_status_history.TriggeredBy_BusinessParticipant_RefID = Parameter.created_by_bpt; drug_order_status_history.Save(Connection, Transaction); var ord_drug_order_position = new ORM_ORD_PRC_ProcurementOrder_Position(); ord_drug_order_position.CMN_PRO_Product_RefID = hec_drug.Ext_PRO_Product_RefID; ord_drug_order_position.Position_RequestedDateOfDelivery = Parameter.delivery_date; ord_drug_order_position.ProcurementOrder_Header_RefID = ord_drug_order_header.ORD_PRC_ProcurementOrder_HeaderID; ord_drug_order_position.Tenant_RefID = securityTicket.TenantID; ord_drug_order_position.RequestedDateOfDelivery_TimeFrame_From = Parameter.is_alternative_delivery_date ? Parameter.alternative_delivery_date_from : Parameter.treatment_date.AddHours(08).AddMinutes(00).AddSeconds(00); ord_drug_order_position.RequestedDateOfDelivery_TimeFrame_To = Parameter.is_alternative_delivery_date ? Parameter.alternative_delivery_date_to : Parameter.treatment_date.AddHours(17).AddMinutes(59).AddSeconds(59); ord_drug_order_position.IsProFormaOrderPosition = Parameter.is_label_only; ord_drug_order_position.Position_Comment = Parameter.order_comment; if (Parameter.is_send_invoice_to_practice) { var id = Guid.Empty; var practice_account = cls_Get_Practice_AccountID_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPAIDfPID_1351() { PracticeID = Parameter.practice_id }, securityTicket).Result; if (practice_account != null) { id = practice_account.accountID; } var invoice_practice_accountQ = new ORM_USR_Account.Query(); invoice_practice_accountQ.USR_AccountID = id; invoice_practice_accountQ.Tenant_RefID = securityTicket.TenantID; invoice_practice_accountQ.IsDeleted = false; var invoice_practice_account = ORM_USR_Account.Query.Search(Connection, Transaction, invoice_practice_accountQ).SingleOrDefault(); if (invoice_practice_account != null) { ord_drug_order_position.BillTo_BusinessParticipant_RefID = invoice_practice_account.BusinessParticipant_RefID; } } ord_drug_order_position.Save(Connection, Transaction); var ord_drug_order_history = new ORM_ORD_PRC_ProcurementOrder_Position_History(); ord_drug_order_history.Creation_Timestamp = DateTime.Now; ord_drug_order_history.IsCreated = true; ord_drug_order_history.Modification_Timestamp = DateTime.Now; ord_drug_order_history.Tenant_RefID = securityTicket.TenantID; ord_drug_order_history.TriggeredBy_BusinessParticipant_RefID = Parameter.created_by_bpt; ord_drug_order_history.ProcurementOrder_Position_RefID = ord_drug_order_position.ORD_PRC_ProcurementOrder_PositionID; ord_drug_order_history.Save(Connection, Transaction); var hec_drug_order_position = new ORM_HEC_PRC_ProcurementOrder_Position(); hec_drug_order_position.Creation_Timestamp = DateTime.Now; hec_drug_order_position.Ext_ORD_PRC_ProcurementOrder_Position_RefID = ord_drug_order_position.ORD_PRC_ProcurementOrder_PositionID; hec_drug_order_position.Modification_Timestamp = DateTime.Now; hec_drug_order_position.OrderedFor_Patient_RefID = Parameter.patient_id; hec_drug_order_position.Tenant_RefID = securityTicket.TenantID; hec_drug_order_position.IfProFormaOrderPosition_PrintLabelOnly = Parameter.is_label_only; hec_drug_order_position.IsOrderForPatient_PatientFeeWaived = Parameter.is_patient_fee_waived; if (Parameter.treatment_doctor_id != Guid.Empty) { hec_drug_order_position.OrderedFor_Doctor_RefID = Parameter.treatment_doctor_id; hec_drug_order_position.OrderedForDoctor_DisplayName = GenericUtils.GetDoctorName(Parameter.treatment_doctor_details); } else { var doctor_id = cls_Get_DoctorID_for_AccountID.Invoke(Connection, Transaction, securityTicket).Result; if (doctor_id != null) { var doctor = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823() { DoctorID = doctor_id.DoctorID }, securityTicket).Result.SingleOrDefault(); if (doctor != null) { hec_drug_order_position.OrderedFor_Doctor_RefID = doctor.id; hec_drug_order_position.OrderedForDoctor_DisplayName = GenericUtils.GetDoctorName(doctor); } } } hec_drug_order_position.OrderedForPatient_DisplayName = Parameter.patient_details.patient_last_name + " " + Parameter.patient_details.patient_first_name; hec_drug_order_position.Save(Connection, Transaction); returnValue.Result.procurement_order_position_id = hec_drug_order_position.HEC_PRC_ProcurementOrder_PositionID; var practice_invoice_universal_property = ORM_HEC_CAS_Case_UniversalProperty.Query.Search(Connection, Transaction, new ORM_HEC_CAS_Case_UniversalProperty.Query() { GlobalPropertyMatchingID = "mm.doc.connect.case.practice.invoice", Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (practice_invoice_universal_property == null) { practice_invoice_universal_property = new ORM_HEC_CAS_Case_UniversalProperty(); practice_invoice_universal_property.Tenant_RefID = securityTicket.TenantID; practice_invoice_universal_property.PropertyName = "Send Invoice to Practice"; practice_invoice_universal_property.IsValue_Boolean = true; practice_invoice_universal_property.GlobalPropertyMatchingID = "mm.doc.connect.case.practice.invoice"; practice_invoice_universal_property.Modification_Timestamp = DateTime.Now; practice_invoice_universal_property.Save(Connection, Transaction); } var practice_invoice_universal_property_value = ORM_HEC_CAS_Case_UniversalPropertyValue.Query.Search(Connection, Transaction, new ORM_HEC_CAS_Case_UniversalPropertyValue.Query() { HEC_CAS_Case_RefID = Parameter.case_id, HEC_CAS_Case_UniversalProperty_RefID = practice_invoice_universal_property.HEC_CAS_Case_UniversalPropertyID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (practice_invoice_universal_property_value == null) { practice_invoice_universal_property_value = new ORM_HEC_CAS_Case_UniversalPropertyValue(); practice_invoice_universal_property_value.Tenant_RefID = securityTicket.TenantID; practice_invoice_universal_property_value.HEC_CAS_Case_RefID = Parameter.case_id; practice_invoice_universal_property_value.HEC_CAS_Case_UniversalProperty_RefID = practice_invoice_universal_property.HEC_CAS_Case_UniversalPropertyID; } practice_invoice_universal_property_value.Modification_Timestamp = DateTime.Now; practice_invoice_universal_property_value.Value_Boolean = Parameter.is_send_invoice_to_practice; practice_invoice_universal_property_value.Save(Connection, Transaction); } return(returnValue); #endregion UserCode }