protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5WS_SSCP_1533 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 foreach (var paramShoppingCart in Parameter.ShoppingCart) { var item = new CL1_ORD_PRC.ORM_ORD_PRC_ShoppingCart_Product(); if (paramShoppingCart.ORD_PRC_ShoppingCart_ProductID != Guid.Empty) { item.Load(Connection, Transaction, paramShoppingCart.ORD_PRC_ShoppingCart_ProductID); } // Check does for current shopping cart exist product with same id if (paramShoppingCart.ORD_PRC_ShoppingCart_ProductID == Guid.Empty) { var existingProduct = CL1_ORD_PRC.ORM_ORD_PRC_ShoppingCart_Product.Query.Search(Connection, Transaction, new CL1_ORD_PRC.ORM_ORD_PRC_ShoppingCart_Product.Query { CMN_PRO_Product_RefID = paramShoppingCart.CMN_PRO_Product_RefID, ORD_PRC_ShoppingCart_RefID = paramShoppingCart.ORD_PRC_ShoppingCart_RefID, Tenant_RefID = securityTicket.TenantID, IsCanceled = false, IsDeleted = false }).FirstOrDefault(); if (existingProduct != null) { item = existingProduct; paramShoppingCart.Quantity += item.Quantity; } } if (paramShoppingCart.IsDeleted == true) { item.IsDeleted = true; return(new FR_Guid(item.Save(Connection, Transaction), item.ORD_PRC_ShoppingCart_ProductID)); } //Creation specific parameters (Tenant, Account ... ) if (paramShoppingCart.ORD_PRC_ShoppingCart_ProductID == Guid.Empty) { item.Tenant_RefID = securityTicket.TenantID; } item.ORD_PRC_ShoppingCart_RefID = paramShoppingCart.ORD_PRC_ShoppingCart_RefID; item.CMN_PRO_Product_RefID = paramShoppingCart.CMN_PRO_Product_RefID; item.CMN_PRO_Product_Variant_RefID = paramShoppingCart.CMN_PRO_Product_Variant_RefID; item.CMN_PRO_Product_Release_RefID = paramShoppingCart.CMN_PRO_Product_Release_RefID; item.SequenceNumber = paramShoppingCart.SequenceNumber; item.Quantity = paramShoppingCart.Quantity; item.IsCanceled = paramShoppingCart.IsCanceled; item.Save(Connection, Transaction); } return(new FR_Guid(Guid.NewGuid())); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5AWSAR_CAPCfSCBO_1349 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); // Find priviges for current user var checkParam = new P_L5AWSSC_CUPfSCBO_1414(); checkParam.ORD_PRC_ShoppingCartID = Parameter.ShoppingCartID; var checkResult = cls_Check_User_Permissions_for_ShoppingCart_Before_Order.Invoke(Connection, Transaction, checkParam, securityTicket).Result; if (!checkResult.HasPrivileges) { throw new Exception("User doesn't have privileges to order!"); } if (checkResult.CreateApprovalShoppingCart) { // Check does user have ABDA articles var paramShoppingProducts = new P_L5AWSSC_GSPfSC_1650 { ShoppingCartID = Parameter.ShoppingCartID }; var shoppingProducts = cls_Get_ShoppingProducts_for_ShoppingCartID.Invoke(Connection, Transaction, paramShoppingProducts, securityTicket).Result; var shoppingProductsForApproval = new List <CL1_ORD_PRC.ORM_ORD_PRC_ShoppingCart_Product>(); foreach (var p in shoppingProducts.Products) { if (p.Groups.Count() == 1 && p.Groups.Select(i => i.Group_GlobalPropertyMatchingID).Contains(EnumUtils.GetEnumDescription(EProductGroup.ABDA))) { var product = new CL1_ORD_PRC.ORM_ORD_PRC_ShoppingCart_Product(); product.Load(Connection, Transaction, p.ORD_PRC_ShoppingCart_ProductID); shoppingProductsForApproval.Add(product); } } // Create new approval shopping cart if (shoppingProductsForApproval.Count > 0) { #region Create approval shopping cart // Find office for current shopping cart var officeShoppingCart = CL1_ORD_PRC.ORM_ORD_PRC_Office_ShoppingCart.Query.Search(Connection, Transaction, new CL1_ORD_PRC.ORM_ORD_PRC_Office_ShoppingCart.Query { ORD_PRC_ShoppingCart_RefID = Parameter.ShoppingCartID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); // Create new shopping cart that will contain ABDA articles var paramCreateShoppingCart = new P_L5AWSAR_CSC_1809(); paramCreateShoppingCart.IsWaitingForApproval = true; paramCreateShoppingCart.OfficeID = officeShoppingCart.CMN_STR_Office_RefID; var newShoppingCartId = cls_Create_ShoppingChart_for_CurrentOffice.Invoke(Connection, Transaction, paramCreateShoppingCart, securityTicket).Result; // Move products from current shopping cart to new shopping cart foreach (var p in shoppingProductsForApproval) { p.ORD_PRC_ShoppingCart_RefID = newShoppingCartId; p.Save(Connection, Transaction); } #endregion #region Copy Comments to new shopping cart // Copy comments from current cart to new cart var comments = CL1_ORD_PRC.ORM_ORD_PRC_ShoppingCart_Note.Query.Search(Connection, Transaction, new CL1_ORD_PRC.ORM_ORD_PRC_ShoppingCart_Note.Query { ORD_PRC_ShoppingCart_RefID = Parameter.ShoppingCartID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); foreach (var comment in comments) { var memo = new CL1_CMN_BPT.ORM_CMN_BPT_Memo(); memo.Load(Connection, Transaction, comment.CMN_BPT_Memo_RefID); var newMemo = new CL1_CMN_BPT.ORM_CMN_BPT_Memo(); newMemo.CreatedBy_Account_RefID = memo.CreatedBy_Account_RefID; newMemo.DocumentStructureHeader_RefID = memo.DocumentStructureHeader_RefID; newMemo.Memo_Abbreviation = memo.Memo_Abbreviation; newMemo.Memo_Date = memo.Memo_Date; newMemo.Memo_Text = memo.Memo_Text; newMemo.Memo_Title = memo.Memo_Title; newMemo.Tenant_RefID = securityTicket.TenantID; newMemo.UpdatedBy_Account_RefID = memo.UpdatedBy_Account_RefID; newMemo.UpdatedOn = memo.UpdatedOn; newMemo.Save(Connection, Transaction); var newNote = new CL1_ORD_PRC.ORM_ORD_PRC_ShoppingCart_Note(); newNote.CMN_BPT_Memo_RefID = newMemo.CMN_BPT_MemoID; newNote.ORD_PRC_ShoppingCart_RefID = newShoppingCartId; newNote.Tenant_RefID = securityTicket.TenantID; newNote.Save(Connection, Transaction); } #endregion } } return(returnValue); #endregion UserCode }