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_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_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_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 }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L3PO_SPOH_0323 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 Get Current Bussines Participant var businessParticipantId = CL1_USR.ORM_USR_Account.Query.Search(Connection, Transaction, new CL1_USR.ORM_USR_Account.Query() { USR_AccountID = securityTicket.AccountID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single().BusinessParticipant_RefID; #endregion #region Get Currency var currency = cls_Get_DefaultCurrency_for_Tenant.Invoke(Connection, Transaction, securityTicket).Result.CMN_CurrencyID; #endregion #region Get Current Increasing Number var currentIncreasingNumber = cls_Get_and_Increase_IncreasingNumber_for_UsageArea.Invoke(Connection, Transaction , new P_L2NR_GaIINfUA_1454() { GlobalStaticMatchingID = Parameter.GlobalStaticMatchingID }, securityTicket) .Result.Current_IncreasingNumber; #endregion #region Get status for Active Procurement global property matching id var statusActiveProcurement = 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(DLCore_DBCommons.APODemand.EProcurementStatus.Active), IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); #endregion #region Create Procurement Order Header var newHeader = new ORM_ORD_PRC_ProcurementOrder_Header() { ORD_PRC_ProcurementOrder_HeaderID = Guid.NewGuid(), IsDeleted = false, Current_ProcurementOrderStatus_RefID = statusActiveProcurement.ORD_PRC_ProcurementOrder_StatusID, Tenant_RefID = securityTicket.TenantID, Creation_Timestamp = DateTime.Now, ProcurementOrder_Supplier_RefID = Parameter.SupplierID, ProcurementOrder_Number = currentIncreasingNumber, TotalValue_BeforeTax = 0, ProcurementOrder_Date = DateTime.Now, CreatedBy_BusinessParticipant_RefID = businessParticipantId, ProcurementOrder_Currency_RefID = currency, IsCreatedForExpectedDelivery = true }; newHeader.Save(Connection, Transaction); #endregion #region Procurement order header's status history - active var statusHistory = new CL1_ORD_PRC.ORM_ORD_PRC_ProcurementOrder_StatusHistory { ORD_PRC_ProcurementOrder_StatusHistoryID = Guid.NewGuid(), ProcurementOrder_Header_RefID = newHeader.ORD_PRC_ProcurementOrder_HeaderID, ProcurementOrder_Status_RefID = statusActiveProcurement.ORD_PRC_ProcurementOrder_StatusID, Tenant_RefID = securityTicket.TenantID }; statusHistory.Save(Connection, Transaction); #endregion returnValue.Result = newHeader.ORD_PRC_ProcurementOrder_HeaderID; return(returnValue); #endregion UserCode }