protected static FR_L6WS_GSCDfSCID_1458 Execute(DbConnection Connection, DbTransaction Transaction, P_L6WS_GSCDfSCID_1458 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6WS_GSCDfSCID_1458(); //Put your code here if (Parameter.ShoppingCartID == Guid.Empty) { return(null); } returnValue.Result = new L6WS_GSCDfSCID_1458(); #region ShoppingCart returnValue.Result.ShoppingCart = cls_Get_ShoppingCart_for_ShoppingCartID.Invoke(Connection, Transaction, new P_L6WS_GSCfSCID_1448() { ShoppingCartID = Parameter.ShoppingCartID }, securityTicket).Result; if (returnValue.Result.ShoppingCart == null) { return(null); } #endregion #region ShoppingCart_Notes returnValue.Result.ShoppingCart_Notes = cls_Get_ShoppingCart_Notes_for_ShoppingCartID.Invoke(Connection, Transaction, new P_L5AWSAR_GSCNfSC_1454() { ShoppingCartID = Parameter.ShoppingCartID }, securityTicket).Result.OrderBy(i => i.UpdatedOn).ToArray(); #endregion #region Articles ORM_ORD_PRC_ShoppingCart_Product.Query shoppingCartProductsQuery = new ORM_ORD_PRC_ShoppingCart_Product.Query(); shoppingCartProductsQuery.ORD_PRC_ShoppingCart_RefID = returnValue.Result.ShoppingCart.ORD_PRC_ShoppingCartID; shoppingCartProductsQuery.IsDeleted = false; shoppingCartProductsQuery.IsCanceled = false; shoppingCartProductsQuery.Tenant_RefID = securityTicket.TenantID; List <ORM_ORD_PRC_ShoppingCart_Product> productList = ORM_ORD_PRC_ShoppingCart_Product.Query.Search(Connection, Transaction, shoppingCartProductsQuery); List <Guid> articleIds = new List <Guid>(); if (productList != null && productList.Count > 0) { articleIds.AddRange(productList.Select(i => i.CMN_PRO_Product_RefID)); } List <L3AR_GAfAL_0942> articleInfos = new List <L3AR_GAfAL_0942>(); if (articleIds.Count > 0) { articleInfos = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, new P_L3AR_GAfAL_0942() { ProductID_List = articleIds.ToArray() }, securityTicket).Result.ToList(); } List <L6WS_GSCDfSCID_1458_Product> products = new List <L6WS_GSCDfSCID_1458_Product>(); L6WS_GSCDfSCID_1458_Product product; L3AR_GAfAL_0942 articleInfo; double taxRate = 0; #region ORM and Querie objects ORM_CMN_PRO_Product orm_product; ORM_CMN_SLS_Price.Query priceQuery; ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query taxAssignmentQuery; ORM_ACC_TAX_Tax orm_tax; #endregion foreach (var productItem in productList) { #region check procurement order date and number if (returnValue.Result.OrderDate == null || returnValue.Result.OrderDate.Ticks == 0) { ORM_ORD_PRC_ShoppingCart_2_ProcurementOrderPosition.Query shoppingCartOrderPositionQuery = new ORM_ORD_PRC_ShoppingCart_2_ProcurementOrderPosition.Query(); shoppingCartOrderPositionQuery.IsDeleted = false; shoppingCartOrderPositionQuery.Tenant_RefID = securityTicket.TenantID; shoppingCartOrderPositionQuery.ORD_PRC_ShoppingCart_Product_RefID = productItem.ORD_PRC_ShoppingCart_ProductID; List <ORM_ORD_PRC_ShoppingCart_2_ProcurementOrderPosition> shoppingCartOrderPositionList = ORM_ORD_PRC_ShoppingCart_2_ProcurementOrderPosition.Query.Search(Connection, Transaction, shoppingCartOrderPositionQuery); foreach (var shoppingCartOrderPosition in shoppingCartOrderPositionList) { ORM_ORD_PRC_ProcurementOrder_Position procurementOrder_Position = new ORM_ORD_PRC_ProcurementOrder_Position(); var procurementOrder_PositionResult = procurementOrder_Position.Load(Connection, Transaction, shoppingCartOrderPosition.ORD_PRC_ProcurementOrder_Position_RefID); if (procurementOrder_PositionResult.Status != FR_Status.Success || procurementOrder_Position.ORD_PRC_ProcurementOrder_PositionID == Guid.Empty) { continue; } ORM_ORD_PRC_ProcurementOrder_Header procurementOrder_Header = new ORM_ORD_PRC_ProcurementOrder_Header(); var procurementOrder_HeaderResult = procurementOrder_Header.Load(Connection, Transaction, procurementOrder_Position.ProcurementOrder_Header_RefID); if (procurementOrder_HeaderResult.Status != FR_Status.Success || procurementOrder_Header.ORD_PRC_ProcurementOrder_HeaderID == Guid.Empty) { continue; } returnValue.Result.OrderDate = procurementOrder_Header.ProcurementOrder_Date; returnValue.Result.OrderNumber = procurementOrder_Header.ProcurementOrder_Number; break; } } #endregion #region get product orm_product = new ORM_CMN_PRO_Product(); var productResult = orm_product.Load(Connection, Transaction, productItem.CMN_PRO_Product_RefID); if (productResult.Status != FR_Status.Success || orm_product.CMN_PRO_ProductID == Guid.Empty) { continue; } #endregion #region get price ORM_CMN_PRO_SubscribedCatalog.Query catalogQuery = new ORM_CMN_PRO_SubscribedCatalog.Query(); catalogQuery.Tenant_RefID = securityTicket.TenantID; catalogQuery.IsDeleted = false; List <ORM_CMN_PRO_SubscribedCatalog> catalogList = ORM_CMN_PRO_SubscribedCatalog.Query.Search(Connection, Transaction, catalogQuery); priceQuery = new ORM_CMN_SLS_Price.Query(); priceQuery.CMN_PRO_Product_RefID = orm_product.CMN_PRO_ProductID; priceQuery.Tenant_RefID = securityTicket.TenantID; priceQuery.IsDeleted = false; List <ORM_CMN_SLS_Price> prices = ORM_CMN_SLS_Price.Query.Search(Connection, Transaction, priceQuery); ORM_CMN_SLS_Price price = prices.Where(i => catalogList.Select(j => j.SubscribedCatalog_PricelistRelease_RefID).Contains(i.PricelistRelease_RefID)).FirstOrDefault(); #endregion #region get taxes taxRate = 0; taxAssignmentQuery = new ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query(); taxAssignmentQuery.Product_RefID = orm_product.CMN_PRO_ProductID; taxAssignmentQuery.Tenant_RefID = securityTicket.TenantID; taxAssignmentQuery.IsDeleted = false; List <ORM_CMN_PRO_Product_SalesTaxAssignmnet> taxAssignmentList = ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query.Search(Connection, Transaction, taxAssignmentQuery); foreach (var taxAssignment in taxAssignmentList) { orm_tax = new ORM_ACC_TAX_Tax(); var taxResult = orm_tax.Load(Connection, Transaction, taxAssignment.ApplicableSalesTax_RefID); if (taxResult.Status == FR_Status.Success && orm_tax.ACC_TAX_TaxeID != Guid.Empty) { taxRate += orm_tax.TaxRate; } } #endregion #region set product item product = new L6WS_GSCDfSCID_1458_Product(); product.CMN_PRO_Product_RefID = orm_product.CMN_PRO_ProductID; product.PriceAmount = price == null ? 0 : (price.PriceAmount == null ? 0 : Double.Parse(price.PriceAmount.ToString())); product.TaxRate = taxRate; product.Quantity = productItem.Quantity.ToString(); product.IsProductCanceled = productItem.IsCanceled; if (!String.IsNullOrEmpty(productItem.Comment)) { string[] comments = productItem.Comment.Split('@'); if (comments.Length == 2) { product.ProductComment = comments[1]; } } product.IsProductReplacementAllowed = productItem.IsProductReplacementAllowed; articleInfo = articleInfos.FirstOrDefault(i => i.CMN_PRO_ProductID == orm_product.CMN_PRO_ProductID); if (articleInfo != null) { product.Product_Name = articleInfo.Product_Name; product.Product_Number = articleInfo.Product_Number; product.UnitAmount = articleInfo.UnitAmount.ToString(); product.UnitIsoCode = articleInfo.UnitIsoCode; product.DossageFormName = articleInfo.DossageFormName; } #endregion products.Add(product); } returnValue.Result.Products = products.ToArray(); #endregion #region Person info // current user ORM_CMN_PER_PersonInfo_2_Account.Query accountQuery = new ORM_CMN_PER_PersonInfo_2_Account.Query(); accountQuery.USR_Account_RefID = securityTicket.AccountID; accountQuery.Tenant_RefID = securityTicket.TenantID; accountQuery.IsDeleted = false; ORM_CMN_PER_PersonInfo_2_Account account = ORM_CMN_PER_PersonInfo_2_Account.Query.Search(Connection, Transaction, accountQuery).FirstOrDefault(); if (account != null) { ORM_CMN_PER_PersonInfo personInfo = new ORM_CMN_PER_PersonInfo(); var personInfoResult = personInfo.Load(Connection, Transaction, account.CMN_PER_PersonInfo_RefID); if (personInfoResult.Status == FR_Status.Success && personInfo.CMN_PER_PersonInfoID != Guid.Empty) { returnValue.Result.CurrentUser = personInfo.FirstName + " " + personInfo.LastName; } } #region Approved by user ORM_ORD_PRC_ShoppingCart_Status.Query stusesQuery = new ORM_ORD_PRC_ShoppingCart_Status.Query(); stusesQuery.Tenant_RefID = securityTicket.TenantID; stusesQuery.IsDeleted = false; List <ORM_ORD_PRC_ShoppingCart_Status> statuses = ORM_ORD_PRC_ShoppingCart_Status.Query.Search(Connection, Transaction, stusesQuery); ORM_ORD_PRC_ShoppingCart_Status approvedStatus = statuses.FirstOrDefault(i => i.GlobalPropertyMatchingID.Contains("approved")); if (approvedStatus != null) { ORM_ORD_PRC_ShoppingCartStatus_History.Query statusHistoryQuery = new ORM_ORD_PRC_ShoppingCartStatus_History.Query(); statusHistoryQuery.Tenant_RefID = securityTicket.TenantID; statusHistoryQuery.IsDeleted = false; statusHistoryQuery.ORD_PRC_ShoppingCart_RefID = returnValue.Result.ShoppingCart.ORD_PRC_ShoppingCartID; statusHistoryQuery.ORD_PRC_ShoppingCart_Status_RefID = approvedStatus.ORD_PRC_ShoppingCart_StatusID; ORM_ORD_PRC_ShoppingCartStatus_History statusHistory = ORM_ORD_PRC_ShoppingCartStatus_History.Query.Search(Connection, Transaction, statusHistoryQuery).FirstOrDefault(); if (statusHistory != null) { accountQuery = new ORM_CMN_PER_PersonInfo_2_Account.Query(); accountQuery.USR_Account_RefID = statusHistory.PerformedBy_Account_RefID; accountQuery.Tenant_RefID = securityTicket.TenantID; accountQuery.IsDeleted = false; account = ORM_CMN_PER_PersonInfo_2_Account.Query.Search(Connection, Transaction, accountQuery).FirstOrDefault(); if (account != null) { ORM_CMN_PER_PersonInfo personInfo = new ORM_CMN_PER_PersonInfo(); var personInfoResult = personInfo.Load(Connection, Transaction, account.CMN_PER_PersonInfo_RefID); if (personInfoResult.Status == FR_Status.Success && personInfo.CMN_PER_PersonInfoID != Guid.Empty) { returnValue.Result.ApprovedByUser = personInfo.FirstName + " " + personInfo.LastName; returnValue.Result.DateOfApproval = statusHistory.Creation_Timestamp; } } } } #endregion #endregion return(returnValue); #endregion UserCode }
protected static FR_Guids Execute(DbConnection Connection, DbTransaction Transaction, P_L5PO_SPD_1148 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guids(); //Put your code here List <Guid> discountGuidList = new List <Guid>(); if (Parameter.Discounts != null) { List <Guid> positionIDs = new List <Guid>(); if (Parameter.SaveNaturalDiscountForAllPositions) { var position = new ORM_ORD_PRC_ProcurementOrder_Position(); position.Load(Connection, Transaction, Parameter.ProcurementOrderPositionID); var headerID = position.ProcurementOrder_Header_RefID; var headerPositions = ORM_ORD_PRC_ProcurementOrder_Position.Query.Search(Connection, Transaction, new ORM_ORD_PRC_ProcurementOrder_Position.Query { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, ProcurementOrder_Header_RefID = headerID }).ToList(); positionIDs.AddRange(headerPositions.Select(x => x.ORD_PRC_ProcurementOrder_PositionID)); } var positionDiscounts = CL1_ORD_PRC.ORM_ORD_PRC_ProcurementOrder_Position_Discount.Query.Search(Connection, Transaction, new ORM_ORD_PRC_ProcurementOrder_Position_Discount.Query { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, ORD_PRC_ProcurementOrder_Position_RefID = Parameter.ProcurementOrderPositionID } ).ToArray(); //Preload discount types and choose those that are applying to stock reciept positions var discountTypesParam = new P_L2DT_GDTfGPMIL_1546(); discountTypesParam.GlobalPropertyMatchingID_List = new string[] { EnumUtils.GetEnumDescription(EDiscountType.MainDiscount), EnumUtils.GetEnumDescription(EDiscountType.Discount2), EnumUtils.GetEnumDescription(EDiscountType.Discount3), EnumUtils.GetEnumDescription(EDiscountType.NaturalDiscount) }; var discountTypes = cls_Get_DiscountTypes_for_GlobalPropertyMatchingID_List.Invoke(Connection, Transaction, discountTypesParam, securityTicket).Result; ORM_ORD_PRC_ProcurementOrder_Position_Discount discount = null; foreach (var item in discountTypes) { var paramDiscount = Parameter.Discounts.SingleOrDefault(x => x.DiscountTypeID == item.ORD_PRC_DiscountTypeID); if (paramDiscount == null) { continue; } discount = positionDiscounts.SingleOrDefault(x => x.ORD_PRC_DiscountType_RefID == item.ORD_PRC_DiscountTypeID); if (discount == null) { discount = new ORM_ORD_PRC_ProcurementOrder_Position_Discount { ORD_PRC_ProcurementOrder_Position_DiscountID = Guid.NewGuid(), ORD_PRC_DiscountType_RefID = item.ORD_PRC_DiscountTypeID, ORD_PRC_ProcurementOrder_Position_RefID = Parameter.ProcurementOrderPositionID, Tenant_RefID = securityTicket.TenantID, Creation_Timestamp = DateTime.Now, IsDeleted = false }; } discount.DiscountValue = paramDiscount.DiscountValue; discount.Save(Connection, Transaction); discountGuidList.Add(discount.ORD_PRC_ProcurementOrder_Position_DiscountID); } //if SaveNaturalDiscountForAllPositions, change discount value for natural discount for all positions of procurement header if (Parameter.SaveNaturalDiscountForAllPositions) { foreach (var currentPosID in positionIDs) { if (currentPosID != Parameter.ProcurementOrderPositionID) { var posDiscounts = CL1_ORD_PRC.ORM_ORD_PRC_ProcurementOrder_Position_Discount.Query.Search(Connection, Transaction, new ORM_ORD_PRC_ProcurementOrder_Position_Discount.Query { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, ORD_PRC_ProcurementOrder_Position_RefID = currentPosID } ).ToArray(); //Preload discount types and choose those that are applying to stock reciept positions var discountTypesPar = new P_L2DT_GDTfGPMIL_1546(); discountTypesPar.GlobalPropertyMatchingID_List = new string[] { EnumUtils.GetEnumDescription(EDiscountType.NaturalDiscount) }; var discNaturalType = cls_Get_DiscountTypes_for_GlobalPropertyMatchingID_List.Invoke(Connection, Transaction, discountTypesPar, securityTicket).Result; ORM_ORD_PRC_ProcurementOrder_Position_Discount discountNatural = null; foreach (var item in discNaturalType) { var paramDiscount = Parameter.Discounts.SingleOrDefault(x => x.DiscountTypeID == discNaturalType.First().ORD_PRC_DiscountTypeID); if (paramDiscount == null) { continue; } discountNatural = posDiscounts.SingleOrDefault(x => x.ORD_PRC_DiscountType_RefID == discNaturalType.First().ORD_PRC_DiscountTypeID); if (discountNatural == null) { discountNatural = new ORM_ORD_PRC_ProcurementOrder_Position_Discount { ORD_PRC_ProcurementOrder_Position_DiscountID = Guid.NewGuid(), ORD_PRC_DiscountType_RefID = item.ORD_PRC_DiscountTypeID, ORD_PRC_ProcurementOrder_Position_RefID = currentPosID, Tenant_RefID = securityTicket.TenantID, Creation_Timestamp = DateTime.Now, IsDeleted = false }; } discountNatural.DiscountValue = paramDiscount.DiscountValue; discountNatural.Save(Connection, Transaction); discountGuidList.Add(discount.ORD_PRC_ProcurementOrder_Position_DiscountID); } } } } } returnValue.Result = discountGuidList.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_Guids Execute(DbConnection Connection, DbTransaction Transaction, P_L3PO_SPOP_0331 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_Guids(); //Put your code here #region Get ProcurementOrder Header var header = ORM_ORD_PRC_ProcurementOrder_Header.Query.Search(Connection, Transaction , new ORM_ORD_PRC_ProcurementOrder_Header.Query() { ORD_PRC_ProcurementOrder_HeaderID = Parameter.ORD_PRC_ProcurementOrder_HeaderID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).FirstOrDefault(); if (header.Equals(default(ORM_ORD_PRC_ProcurementOrder_Header))) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } #endregion #region Get Positions count, if we are creating the positions int positionsCount = 0; if (Parameter.Positions[0].ORD_PRC_ProcurementOrder_PositionID == Guid.Empty) { positionsCount = ORM_ORD_PRC_ProcurementOrder_Position.Query.Search(Connection, Transaction, new ORM_ORD_PRC_ProcurementOrder_Position.Query() { ProcurementOrder_Header_RefID = Parameter.ORD_PRC_ProcurementOrder_HeaderID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Count(); } #endregion List <Guid> createdPositionsIDs = new List <Guid>(); decimal oldHeaderTotalValue = 0, newHeaderTotalValue = 0; foreach (var p in Parameter.Positions) { ORM_ORD_PRC_ProcurementOrder_Position position; if (p.ORD_PRC_ProcurementOrder_PositionID == Guid.Empty) { #region Create ProcurementOrder Position #region Get Unit ID var product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product.Query { CMN_PRO_ProductID = p.ProductID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); var packageInfo = ORM_CMN_PRO_PAC_PackageInfo.Query.Search(Connection, Transaction, new ORM_CMN_PRO_PAC_PackageInfo.Query { CMN_PRO_PAC_PackageInfoID = product.PackageInfo_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); var unitID = packageInfo.PackageContent_MeasuredInUnit_RefID; #endregion #region Create ProcurementPosition Object position = new ORM_ORD_PRC_ProcurementOrder_Position() { ORD_PRC_ProcurementOrder_PositionID = Guid.NewGuid(), CMN_PRO_Product_RefID = p.ProductID, Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID, ProcurementOrder_Header_RefID = Parameter.ORD_PRC_ProcurementOrder_HeaderID, Position_Quantity = p.Position_Quantity, Position_ValuePerUnit = p.PricePerUnit, Position_ValueTotal = p.PricePerUnit * Convert.ToDecimal(p.Position_Quantity), Position_RequestedDateOfDelivery = DateTime.MinValue, Position_Unit_RefID = unitID, Position_OrdinalNumber = ++positionsCount }; #endregion createdPositionsIDs.Add(position.ORD_PRC_ProcurementOrder_PositionID); newHeaderTotalValue += position.Position_ValueTotal; #endregion } else { #region Update ProcurementOrder Position #region Get ProcurementOrder Position position = ORM_ORD_PRC_ProcurementOrder_Position.Query.Search(Connection, Transaction , new ORM_ORD_PRC_ProcurementOrder_Position.Query() { ORD_PRC_ProcurementOrder_PositionID = p.ORD_PRC_ProcurementOrder_PositionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).FirstOrDefault(); if (position.Equals(default(ORM_ORD_PRC_ProcurementOrder_Position))) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } #endregion #region Update ProcurementOrder Position and Total Values oldHeaderTotalValue += position.Position_ValueTotal; position.Position_Quantity = p.Position_Quantity; position.Position_ValueTotal = Convert.ToDecimal(p.Position_Quantity) * position.Position_ValuePerUnit; newHeaderTotalValue += position.Position_ValueTotal; position.IsDeleted = p.IsDeleted; #endregion #endregion } if (position.Save(Connection, Transaction).Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } } #region Update ProcurementOrder Header header.TotalValue_BeforeTax = (header.TotalValue_BeforeTax - oldHeaderTotalValue) + newHeaderTotalValue; if (header.Save(Connection, Transaction).Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } #endregion returnValue.Result = createdPositionsIDs.ToArray(); returnValue.Status = FR_Status.Success; 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 }