Exemple #1
0
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5CA_DCPG_1049 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


            // DELETE CHILDREN

            ORM_CMN_PRO_Catalog_ProductGroup.Query children = new ORM_CMN_PRO_Catalog_ProductGroup.Query();
            children.CatalogProductGroup_Parent_RefID = Parameter.ProductGroupID;

            List <ORM_CMN_PRO_Catalog_ProductGroup> childProductGroups = ORM_CMN_PRO_Catalog_ProductGroup.Query.Search(Connection, Transaction, children);

            foreach (var child in childProductGroups)
            {
                P_L5CA_DCPG_1049 paramForChild = new P_L5CA_DCPG_1049();
                paramForChild.ProductGroupID = child.CMN_PRO_Catalog_ProductGroupID;
                cls_Delete_Catalog_Product_Group.Invoke(Connection, Transaction, paramForChild, securityTicket);
            }

            // DELETE PARENT

            ORM_CMN_PRO_Catalog_ProductGroup group = new ORM_CMN_PRO_Catalog_ProductGroup();
            group.Load(Connection, Transaction, Parameter.ProductGroupID);

            ORM_CMN_PRO_Catalog_Product_2_ProductGroup.Query productsQuery = new ORM_CMN_PRO_Catalog_Product_2_ProductGroup.Query();
            productsQuery.CMN_PRO_Catalog_ProductGroup_RefID = Parameter.ProductGroupID;
            List <ORM_CMN_PRO_Catalog_Product_2_ProductGroup> productGroups = ORM_CMN_PRO_Catalog_Product_2_ProductGroup.Query.Search(Connection, Transaction, productsQuery);

            foreach (var product2productGroup in productGroups)
            {
                ORM_CMN_PRO_Catalog_Product_2_ProductGroup.Query groupsForProductQuery = new ORM_CMN_PRO_Catalog_Product_2_ProductGroup.Query();
                groupsForProductQuery.CMN_PRO_Catalog_Product_RefID = product2productGroup.CMN_PRO_Catalog_Product_RefID;
                var groupsForProduct = ORM_CMN_PRO_Catalog_Product_2_ProductGroup.Query.Search(Connection, Transaction, groupsForProductQuery);

                if (groupsForProduct == null || groupsForProduct.Count <= 1)
                {
                    ORM_CMN_PRO_Catalog_Product product = new ORM_CMN_PRO_Catalog_Product();
                    product.Load(Connection, Transaction, product2productGroup.CMN_PRO_Catalog_Product_RefID);

                    product.IsDeleted = true;
                    product.Save(Connection, Transaction);
                }

                product2productGroup.IsDeleted = true;
                product2productGroup.Save(Connection, Transaction);
            }

            group.IsDeleted = true;
            group.Save(Connection, Transaction);

            return(returnValue);

            #endregion UserCode
        }
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L2CA_SCPG_1531 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            var returnValue = new FR_Guid();

            var item = new ORM_CMN_PRO_Catalog_ProductGroup();

            if (Parameter.CMN_PRO_Catalog_ProductGroupID != Guid.Empty)
            {
                var result = item.Load(Connection, Transaction, Parameter.CMN_PRO_Catalog_ProductGroupID);
                if (result.Status != FR_Status.Success || item.CMN_PRO_Catalog_ProductGroupID == Guid.Empty)
                {
                    var error = new FR_Guid();
                    error.ErrorMessage = "No Such ID";
                    error.Status       = FR_Status.Error_Internal;
                    return(error);
                }
            }

            if (Parameter.IsDeleted == true)
            {
                item.IsDeleted = true;
                return(new FR_Guid(item.Save(Connection, Transaction), item.CMN_PRO_Catalog_ProductGroupID));
            }

            //Creation specific parameters (Tenant, Account ... )
            if (Parameter.CMN_PRO_Catalog_ProductGroupID == Guid.Empty)
            {
                item.Tenant_RefID = securityTicket.TenantID;
            }

            item.Catalog_Revision_RefID           = Parameter.Catalog_Revision_RefID;
            item.CatalogProductGroup_Name         = Parameter.CatalogProductGroup_Name;
            item.CatalogProductGroup_Parent_RefID = Parameter.CatalogProductGroup_Parent_RefID;


            return(new FR_Guid(item.Save(Connection, Transaction), item.CMN_PRO_Catalog_ProductGroupID));
        }
        protected static FR_L5CA_APtPG_1137_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5CA_APtPG_1137 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L5CA_APtPG_1137_Array();
            //Put your code here
            List <L5CA_APtPG_1137> returnList = new List <L5CA_APtPG_1137>();

            foreach (var ProductITL in Parameter.Products)
            {
                ORM_CMN_PRO_Product.Query prodQuery = new ORM_CMN_PRO_Product.Query()
                {
                    ProductITL   = ProductITL,
                    IsDeleted    = false,
                    Tenant_RefID = securityTicket.TenantID,
                    IsProductAvailableForOrdering = true
                };
                var prod = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, prodQuery).Single();



                ORM_CMN_PRO_Catalog_Product.Query catalogProductQuery = new ORM_CMN_PRO_Catalog_Product.Query()
                {
                    CMN_PRO_Product_RefID          = prod.CMN_PRO_ProductID,
                    CMN_PRO_Catalog_Revision_RefID = Parameter.CatalogRevision_ID,
                    IsDeleted = false
                };

                if (ORM_CMN_PRO_Catalog_Product.Query.Exists(Connection, Transaction, catalogProductQuery))
                {
                    String GroupName = "Catalogue root";

                    ORM_CMN_PRO_Catalog_ProductGroup catGroup = new ORM_CMN_PRO_Catalog_ProductGroup();
                    if (Parameter.Product_Group_ID != Guid.Empty)
                    {
                        catGroup.Load(Connection, Transaction, Parameter.Product_Group_ID);
                        GroupName = catGroup.CatalogProductGroup_Name;
                    }

                    L5CA_APtPG_1137 item = new L5CA_APtPG_1137()
                    {
                        CatalgueProductGroup = GroupName,
                        Product_Name         = prod.Product_Name
                    };
                    returnList.Add(item);
                    continue;   // catalog group for the product already exists in catalog revision
                }

                //  Create catalog product

                ORM_CMN_PRO_Catalog_Product newCp = new ORM_CMN_PRO_Catalog_Product();
                newCp.CMN_PRO_Product_RefID     = prod.CMN_PRO_ProductID;
                newCp.CMN_PRO_Catalog_ProductID = Guid.NewGuid();
                newCp.Tenant_RefID = securityTicket.TenantID;
                newCp.CMN_PRO_Catalog_Revision_RefID = Parameter.CatalogRevision_ID;

                //  Create catalog product 2 product group (Product group already exists) if there is group id in Parameter else only add to catalog
                if (Parameter.Product_Group_ID != Guid.Empty)
                {
                    ORM_CMN_PRO_Catalog_Product_2_ProductGroup prodToGroup = new ORM_CMN_PRO_Catalog_Product_2_ProductGroup();
                    prodToGroup.CMN_PRO_Catalog_Product_RefID      = newCp.CMN_PRO_Catalog_ProductID;
                    prodToGroup.CMN_PRO_Catalog_ProductGroup_RefID = Parameter.Product_Group_ID;
                    prodToGroup.Tenant_RefID = securityTicket.TenantID;

                    prodToGroup.Save(Connection, Transaction);
                }
                newCp.Save(Connection, Transaction);
            }

            returnValue.Result = returnList.ToArray();

            return(returnValue);

            #endregion UserCode
        }