コード例 #1
0
        protected static FR_String Execute(DbConnection Connection, DbTransaction Transaction, P_L5AR_SSPfPS_1335 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_String();

            for (int i = 0; i < Parameter.Priorities.Count(); i++)
            {
                var productSupplier = new ORM_CMN_PRO_Product_Supplier();

                if (Parameter.Priorities[i].Product_SupplierID != Guid.Empty)
                {
                    var fetched = productSupplier.Load(Connection, Transaction, Parameter.Priorities[i].Product_SupplierID);
                    if (fetched.Status == FR_Status.Success)
                    {
                        productSupplier.SupplierPriority = Parameter.Priorities[i].SupplierPriority;
                        productSupplier.Save(Connection, Transaction);
                    }
                }
            }

            return(returnValue);

            #endregion UserCode
        }
コード例 #2
0
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5PR_IPfC_1648 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue      = new FR_Guid();
            var defaultLanguages = ORM_CMN_Language.Query.Search(Connection, Transaction, new ORM_CMN_Language.Query
            {
                IsDeleted    = false,
                Tenant_RefID = securityTicket.TenantID
            });
            var productFromCatalog = Parameter.Product;
            ORM_CMN_PRO_SubscribedCatalog subscribedCatalog = new ORM_CMN_PRO_SubscribedCatalog();
            var existingCatalog = ORM_CMN_PRO_SubscribedCatalog.Query.Search(Connection, Transaction, new ORM_CMN_PRO_SubscribedCatalog.Query()
            {
                CatalogCodeITL = productFromCatalog.CatalogITL
            });
            if (existingCatalog != null && existingCatalog.Count() > 0)
            {
                subscribedCatalog = existingCatalog.First();
            }
            var supplierID = subscribedCatalog.PublishingSupplier_RefID;

            ORM_CMN_PRO_Product productToCreateUpdate = new ORM_CMN_PRO_Product();
            productToCreateUpdate.CMN_PRO_ProductID = Guid.NewGuid();

            ORM_CMN_PRO_Product.Query productDbQuery = new ORM_CMN_PRO_Product.Query();
            productDbQuery.ProductITL   = productFromCatalog.ProductITL;
            productDbQuery.Tenant_RefID = securityTicket.TenantID;
            productDbQuery.IsDeleted    = false;

            var product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, productDbQuery);

            if (product != null && product.Count > 0)
            {
                productToCreateUpdate = product.First();

                ORM_CMN_PRO_Dimension.Query dimensionQuery = new ORM_CMN_PRO_Dimension.Query();
                dimensionQuery.Product_RefID = productToCreateUpdate.CMN_PRO_ProductID;
                dimensionQuery.Tenant_RefID  = securityTicket.TenantID;
                dimensionQuery.IsDeleted     = false;

                var dimensions = ORM_CMN_PRO_Dimension.Query.Search(Connection, Transaction, dimensionQuery);
                foreach (var dimension in dimensions)
                {
                    ORM_CMN_PRO_Dimension_Value.Query dimensionValuesQuery = new ORM_CMN_PRO_Dimension_Value.Query();
                    dimensionValuesQuery.Dimensions_RefID = dimension.CMN_PRO_DimensionID;
                    dimensionValuesQuery.Tenant_RefID     = securityTicket.TenantID;
                    var dimensionValues = ORM_CMN_PRO_Dimension_Value.Query.Search(Connection, Transaction, dimensionValuesQuery);
                    foreach (var dimensionValue in dimensionValues)
                    {
                        ORM_CMN_PRO_Variant_DimensionValue.Query dimensionValueVariantQuery = new ORM_CMN_PRO_Variant_DimensionValue.Query();
                        dimensionValueVariantQuery.DimensionValue_RefID = dimensionValue.CMN_PRO_Dimension_ValueID;
                        ORM_CMN_PRO_Variant_DimensionValue.Query.SoftDelete(Connection, Transaction, dimensionValueVariantQuery);
                    }
                    ORM_CMN_PRO_Dimension_Value.Query.SoftDelete(Connection, Transaction, dimensionValuesQuery);
                }

                ORM_CMN_PRO_Dimension.Query.SoftDelete(Connection, Transaction, dimensionQuery);
            }

            productToCreateUpdate.IsImportedFromExternalCatalog = true;
            productToCreateUpdate.Product_Name        = new Dict(ORM_CMN_PRO_Product.TableName);
            productToCreateUpdate.IsDeleted           = false;
            productToCreateUpdate.ProductITL          = productFromCatalog.ProductITL;
            productToCreateUpdate.Product_Description = new Dict(ORM_CMN_PRO_Product.TableName);
            productToCreateUpdate.Tenant_RefID        = securityTicket.TenantID;
            productToCreateUpdate.Product_Number      = productFromCatalog.Code;

            foreach (var lang in defaultLanguages)
            {
                productToCreateUpdate.Product_Name.AddEntry(lang.CMN_LanguageID, productFromCatalog.Name);
                productToCreateUpdate.Product_Description.AddEntry(lang.CMN_LanguageID, productFromCatalog.Description);
            }

            productToCreateUpdate.Save(Connection, Transaction);
            returnValue.Result = productToCreateUpdate.CMN_PRO_ProductID;
            foreach (var customizationToDelete in ORM_CMN_PRO_CUS_Customization.Query.Search(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization.Query()
            {
                Product_RefID = productToCreateUpdate.CMN_PRO_ProductID
            }))
            {
                ORM_CMN_PRO_CUS_Customization.Query.SoftDelete(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization.Query()
                {
                    CMN_PRO_CUS_CustomizationID = customizationToDelete.CMN_PRO_CUS_CustomizationID
                });
                if (ORM_CMN_PRO_CUS_Customization_Variant.Query.Exists(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization_Variant.Query()
                {
                    Customization_RefID = customizationToDelete.CMN_PRO_CUS_CustomizationID
                }))
                {
                    ORM_CMN_PRO_CUS_Customization_Variant.Query.SoftDelete(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization_Variant.Query()
                    {
                        Customization_RefID = customizationToDelete.CMN_PRO_CUS_CustomizationID
                    });
                }
            }
            var customizationOrderSequence = 0;
            if (productFromCatalog.Customizations != null)
            {
                productToCreateUpdate.IsCustomizable = true;
                productToCreateUpdate.Save(Connection, Transaction);
                foreach (var customization in productFromCatalog.Customizations)
                {
                    ORM_CMN_PRO_CUS_Customization customizationToSave = new ORM_CMN_PRO_CUS_Customization();
                    customizationToSave.CMN_PRO_CUS_CustomizationID = Guid.NewGuid();
                    customizationToSave.Customization_Description   = new Dict(ORM_CMN_PRO_CUS_Customization.TableName);
                    customizationToSave.Customization_Name          = new Dict(ORM_CMN_PRO_CUS_Customization.TableName);
                    customizationToSave.IsDeleted     = false;
                    customizationToSave.Product_RefID = productToCreateUpdate.CMN_PRO_ProductID;
                    customizationToSave.Tenant_RefID  = securityTicket.TenantID;
                    customizationToSave.OrderSequence = customizationOrderSequence;
                    customizationOrderSequence++;

                    foreach (var lang in defaultLanguages)
                    {
                        customizationToSave.Customization_Description.UpdateEntry(lang.CMN_LanguageID, customization.Description);
                        customizationToSave.Customization_Name.UpdateEntry(lang.CMN_LanguageID, customization.Name);
                    }
                    customizationToSave.Save(Connection, Transaction);
                    var customizationVariantOrderSequence = 0;
                    foreach (var customizationVariant in customization.CustomizationVariants)
                    {
                        ORM_CMN_PRO_CUS_Customization_Variant customizationVariantsToSave = new ORM_CMN_PRO_CUS_Customization_Variant();
                        customizationVariantsToSave.CMN_PRO_CUS_Customization_VariantID = Guid.NewGuid();
                        customizationVariantsToSave.Customization_RefID       = customizationToSave.CMN_PRO_CUS_CustomizationID;
                        customizationVariantsToSave.CustomizationVariant_Name = new Dict(ORM_CMN_PRO_CUS_Customization_Variant.TableName);
                        customizationVariantsToSave.OrderSequence             = customizationVariantOrderSequence;
                        customizationVariantOrderSequence++;
                        customizationVariantsToSave.IsDeleted    = false;
                        customizationVariantsToSave.Tenant_RefID = securityTicket.TenantID;
                        foreach (var lang in defaultLanguages)
                        {
                            customizationVariantsToSave.CustomizationVariant_Name.UpdateEntry(lang.CMN_LanguageID, customizationVariant.Name);
                        }
                        customizationVariantsToSave.Save(Connection, Transaction);
                    }
                }
            }


            ORM_CMN_PRO_Product_Variant.Query productVariantQuery = new ORM_CMN_PRO_Product_Variant.Query();
            productVariantQuery.CMN_PRO_Product_RefID = productToCreateUpdate.CMN_PRO_ProductID;
            productVariantQuery.Tenant_RefID          = securityTicket.TenantID;
            productVariantQuery.IsDeleted             = false;

            var productVariantsDb = ORM_CMN_PRO_Product_Variant.Query.Search(Connection, Transaction, productVariantQuery);
            List <ORM_CMN_PRO_Dimension>       dimensionsToCreate      = new List <ORM_CMN_PRO_Dimension>();
            List <ORM_CMN_PRO_Dimension_Value> dimensionValuesToCreate = new List <ORM_CMN_PRO_Dimension_Value>();

            foreach (var productVariantFromCatalog in productFromCatalog.Variants)
            {
                ORM_CMN_PRO_Product_Variant.Query variantToCreateQuery = new ORM_CMN_PRO_Product_Variant.Query();
                variantToCreateQuery.ProductVariantITL = productVariantFromCatalog.ITL;
                variantToCreateQuery.Tenant_RefID      = securityTicket.TenantID;
                var isVariantSaved = ORM_CMN_PRO_Product_Variant.Query.Exists(Connection, Transaction, variantToCreateQuery);

                ORM_CMN_PRO_Product_Variant productVariantToCreate = new ORM_CMN_PRO_Product_Variant();
                if (isVariantSaved)
                {
                    productVariantToCreate.Load(Connection, Transaction, ORM_CMN_PRO_Product_Variant.Query.Search(Connection, Transaction, variantToCreateQuery).FirstOrDefault().CMN_PRO_Product_VariantID);
                }
                else
                {
                    productVariantToCreate.CMN_PRO_Product_VariantID = Guid.NewGuid();
                }
                productVariantToCreate.IsStandardProductVariant = productVariantFromCatalog.DefaultVariant;
                productVariantToCreate.CMN_PRO_Product_RefID    = productToCreateUpdate.CMN_PRO_ProductID;
                productVariantToCreate.IsDeleted    = false;
                productVariantToCreate.Tenant_RefID = securityTicket.TenantID;
                productVariantToCreate.IsImportedFromExternalCatalog = true;
                productVariantToCreate.ProductVariantITL             = productVariantFromCatalog.ITL;
                productVariantToCreate.VariantName = new Dict(ORM_CMN_PRO_Product_Variant.TableName);
                foreach (var lang in defaultLanguages)
                {
                    productVariantToCreate.VariantName.UpdateEntry(lang.CMN_LanguageID, productVariantFromCatalog.Name);
                }
                productVariantToCreate.Save(Connection, Transaction);
                ORM_CMN_Price procurementPrice = new ORM_CMN_Price();
                procurementPrice.CMN_PriceID  = Guid.NewGuid();
                procurementPrice.IsDeleted    = false;
                procurementPrice.Tenant_RefID = securityTicket.TenantID;
                procurementPrice.Save(Connection, Transaction);

                foreach (var price in productVariantFromCatalog.PriceGrades)
                {
                    ORM_CMN_Price_Value priceValues = new ORM_CMN_Price_Value();
                    priceValues.Price_RefID = procurementPrice.CMN_PriceID;
                    var procurementPriceAmount = price.SalesPrice ?? 0;
                    priceValues.PriceValue_Amount         = (double)procurementPriceAmount;
                    priceValues.PriceValue_Currency_RefID = subscribedCatalog.SubscribedCatalog_Currency_RefID;
                    priceValues.IsDeleted    = false;
                    priceValues.Tenant_RefID = securityTicket.TenantID;
                    priceValues.Save(Connection, Transaction);
                }

                ORM_CMN_PRO_Product_Supplier productSupplier = new ORM_CMN_PRO_Product_Supplier();
                productSupplier.CMN_BPT_Supplier_RefID        = supplierID;
                productSupplier.CMN_PRO_Product_RefID         = productVariantToCreate.CMN_PRO_Product_RefID;
                productSupplier.CMN_PRO_Product_Variant_RefID = productVariantToCreate.CMN_PRO_Product_VariantID;
                productSupplier.ProcurementPrice_RefID        = procurementPrice.CMN_PriceID;
                productSupplier.Tenant_RefID     = securityTicket.TenantID;
                productSupplier.SupplierPriority = 0;
                productSupplier.IsDeleted        = false;
                productSupplier.Save(Connection, Transaction);


                foreach (var dimension in productVariantFromCatalog.Dimensions)
                {
                    if (dimensionsToCreate.Where(x => x.DimensionName.Contents.First().Content == dimension.Key).Count() == 0)
                    {
                        ORM_CMN_PRO_Dimension dimensionToCreate = new ORM_CMN_PRO_Dimension();
                        dimensionToCreate.DimensionName = new Dict(ORM_CMN_PRO_Dimension.TableName);
                        foreach (var lang in defaultLanguages)
                        {
                            dimensionToCreate.DimensionName.AddEntry(lang.CMN_LanguageID, dimension.Key);
                        }
                        dimensionToCreate.OrderSequence       = dimensionsToCreate.Count() + 1;
                        dimensionToCreate.CMN_PRO_DimensionID = Guid.NewGuid();
                        dimensionToCreate.Product_RefID       = productVariantToCreate.CMN_PRO_Product_RefID;
                        dimensionToCreate.IsDeleted           = false;
                        dimensionToCreate.Tenant_RefID        = securityTicket.TenantID;
                        dimensionsToCreate.Add(dimensionToCreate);
                    }

                    var dimensionValue = dimensionValuesToCreate.Where(x => x.DimensionValue_Text.Contents.First().Content == dimension.Value);
                    ORM_CMN_PRO_Dimension_Value dimensionValueToCreate = new ORM_CMN_PRO_Dimension_Value();
                    if (dimensionValue != null && dimensionValue.Count() > 0)
                    {
                        dimensionValueToCreate = dimensionValue.First();
                    }
                    else
                    {
                        dimensionValueToCreate.DimensionValue_Text = new Dict(ORM_CMN_PRO_Dimension_Value.TableName);
                        foreach (var lang in defaultLanguages)
                        {
                            dimensionValueToCreate.DimensionValue_Text.AddEntry(lang.CMN_LanguageID, dimension.Value);
                        }
                        dimensionValueToCreate.Dimensions_RefID          = dimensionsToCreate.First(x => x.DimensionName.Contents.First().Content == dimension.Key).CMN_PRO_DimensionID;
                        dimensionValueToCreate.CMN_PRO_Dimension_ValueID = Guid.NewGuid();
                        dimensionValueToCreate.OrderSequence             = dimensionValuesToCreate.Count() + 1;
                        dimensionValueToCreate.IsDeleted    = false;
                        dimensionValueToCreate.Tenant_RefID = securityTicket.TenantID;
                        dimensionValuesToCreate.Add(dimensionValueToCreate);
                    }
                    ORM_CMN_PRO_Variant_DimensionValue variantDimensionValueToCreate = new ORM_CMN_PRO_Variant_DimensionValue();
                    variantDimensionValueToCreate.CMN_PRO_Variant_DimensionValueID = Guid.NewGuid();
                    variantDimensionValueToCreate.DimensionValue_RefID             = dimensionValueToCreate.CMN_PRO_Dimension_ValueID;
                    variantDimensionValueToCreate.ProductVariant_RefID             = productVariantToCreate.CMN_PRO_Product_VariantID;
                    variantDimensionValueToCreate.IsDeleted    = false;
                    variantDimensionValueToCreate.Tenant_RefID = securityTicket.TenantID;
                    variantDimensionValueToCreate.Save(Connection, Transaction);
                }
            }
            foreach (var dimensionToCreate in dimensionsToCreate)
            {
                dimensionToCreate.Save(Connection, Transaction);
            }
            foreach (var dimensionValueToCreate in dimensionValuesToCreate)
            {
                dimensionValueToCreate.Save(Connection, Transaction);
            }

            return(returnValue);

            #endregion UserCode
        }
コード例 #3
0
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5AR_SPS_1535 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode

            var returnValue = new FR_Guid();

            #region ProductSupplier

            var productSupplier = new ORM_CMN_PRO_Product_Supplier();

            if (Parameter.Product_SupplierID != Guid.Empty)
            {
                var fetched = productSupplier.Load(Connection, Transaction, Parameter.Product_SupplierID);
            }

            if (Parameter.IsDeleted == true)
            {
                #region Delete ProductSupplier including Discount Values


                var deletePrices = CL1_CMN.ORM_CMN_Price.Query.Search(Connection, Transaction, new CL1_CMN.ORM_CMN_Price.Query
                {
                    CMN_PriceID  = productSupplier.ProcurementPrice_RefID,
                    Tenant_RefID = securityTicket.TenantID,
                    IsDeleted    = false
                }).SingleOrDefault();

                var deletePriceValues = CL1_CMN.ORM_CMN_Price_Value.Query.Search(Connection, Transaction, new CL1_CMN.ORM_CMN_Price_Value.Query
                {
                    Price_RefID  = productSupplier.ProcurementPrice_RefID,
                    Tenant_RefID = securityTicket.TenantID,
                    IsDeleted    = false
                }).SingleOrDefault();


                if (deletePriceValues != null)
                {
                    deletePriceValues.IsDeleted = true;
                    deletePriceValues.Save(Connection, Transaction);
                }

                if (deletePrices != null)
                {
                    deletePrices.IsDeleted = true;
                    deletePrices.Save(Connection, Transaction);
                }

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

                ORM_CMN_PRO_Product_Supplier_DiscountValue.Query.SoftDelete(Connection, Transaction,
                                                                            new ORM_CMN_PRO_Product_Supplier_DiscountValue.Query
                {
                    Product_Supplier_RefID = productSupplier.CMN_PRO_Product_SupplierID,
                    IsDeleted    = false,
                    Tenant_RefID = securityTicket.TenantID
                });

                returnValue.Result = Parameter.Product_SupplierID;

                // fixing priority
                var suppliersParam = new P_L5AA_GPSfPI_1248()
                {
                    ProductID = Parameter.ProductID
                };

                var SupplierProducts = cls_Get_ProductSuppliers_for_ProductID.Invoke(
                    Connection, Transaction, suppliersParam, securityTicket).Result;

                for (int i = 0; i < SupplierProducts.Count(); i++)
                {
                    if (SupplierProducts[i].SupplierPriority != (i + 1))
                    {
                        var findSupplierProduct = ORM_CMN_PRO_Product_Supplier.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product_Supplier.Query {
                            CMN_PRO_Product_SupplierID = SupplierProducts[i].CMN_PRO_Product_SupplierID,
                            Tenant_RefID = securityTicket.TenantID,
                            IsDeleted    = false
                        }).SingleOrDefault();

                        if (findSupplierProduct != null && findSupplierProduct.SupplierPriority != (i + 1))
                        {
                            findSupplierProduct.SupplierPriority = (i + 1);
                            findSupplierProduct.Save(Connection, Transaction);
                        }
                    }
                }


                return(returnValue);

                #endregion
            }

            if (Parameter.Product_SupplierID == Guid.Empty)
            {
                // new product supplier
                productSupplier.CMN_PRO_Product_SupplierID = Guid.NewGuid();
                productSupplier.Tenant_RefID          = securityTicket.TenantID;
                productSupplier.Creation_Timestamp    = DateTime.Now;
                productSupplier.CMN_PRO_Product_RefID = Parameter.ProductID;

                // new cmn_prices

                var prices = new CL1_CMN.ORM_CMN_Price();
                prices.CMN_PriceID  = Guid.NewGuid();
                prices.Tenant_RefID = securityTicket.TenantID;
                prices.Save(Connection, Transaction);

                // new cmn_price_values
                var priceValue = new CL1_CMN.ORM_CMN_Price_Value();
                priceValue.CMN_Price_ValueID = Guid.NewGuid();
                priceValue.Price_RefID       = prices.CMN_PriceID;
                priceValue.PriceValue_Amount = Parameter.ProcurementPrice;
                priceValue.Tenant_RefID      = securityTicket.TenantID;
                priceValue.Save(Connection, Transaction);

                productSupplier.ProcurementPrice_RefID = prices.CMN_PriceID;
            }


            var findPriceValues = CL1_CMN.ORM_CMN_Price_Value.Query.Search(Connection, Transaction, new CL1_CMN.ORM_CMN_Price_Value.Query
            {
                Price_RefID  = productSupplier.ProcurementPrice_RefID,
                Tenant_RefID = securityTicket.TenantID,
                IsDeleted    = false
            }).SingleOrDefault();

            if (findPriceValues != null)
            {
                findPriceValues.PriceValue_Amount = Parameter.ProcurementPrice;
                findPriceValues.Save(Connection, Transaction);
            }

            productSupplier.CMN_BPT_Supplier_RefID       = Parameter.SupplierID;
            productSupplier.MinimalPackageOrderingAmount = (float)Parameter.MinimalPackageOrderingAmount;
            productSupplier.BatchOrderSize   = Parameter.BatchOrderSize;
            productSupplier.SupplierPriority = Parameter.SupplierPriority;

            productSupplier.Save(Connection, Transaction);

            returnValue.Result = productSupplier.CMN_PRO_Product_SupplierID;

            #endregion

            #region Product Supplier Discount Values

            #region Preload default discount types

            var discountTypes = CL1_ORD_PRC.ORM_ORD_PRC_DiscountType.Query.Search(Connection, Transaction,
                                                                                  new CL1_ORD_PRC.ORM_ORD_PRC_DiscountType.Query
            {
                IsDeleted    = false,
                Tenant_RefID = securityTicket.TenantID
            }).Where(x => !String.IsNullOrEmpty(x.GlobalPropertyMatchingID));

            #endregion

            if (Parameter.Product_SupplierID != Guid.Empty)
            {
                #region Load and update Discounts

                var discountValues = ORM_CMN_PRO_Product_Supplier_DiscountValue.Query.Search(Connection, Transaction,
                                                                                             new ORM_CMN_PRO_Product_Supplier_DiscountValue.Query
                {
                    Product_Supplier_RefID = productSupplier.CMN_PRO_Product_SupplierID,
                    IsDeleted    = false,
                    Tenant_RefID = securityTicket.TenantID
                });

                foreach (var item in discountValues)
                {
                    string        matchingID          = discountTypes.Single(x => x.ORD_PRC_DiscountTypeID == item.ORD_PRC_DiscountType_RefID).GlobalPropertyMatchingID;
                    EDiscountType currentDiscountType = EnumUtils.GetEnumValueByDescription <EDiscountType>(matchingID);

                    switch (currentDiscountType)
                    {
                    case EDiscountType.CashDiscount:
                        item.DiscountValue = Parameter.CashDiscount;
                        break;

                    case EDiscountType.MainDiscount:
                        item.DiscountValue = Parameter.Discount1;
                        break;

                    case EDiscountType.Discount2:
                        item.DiscountValue = Parameter.Discount2;
                        break;

                    case EDiscountType.Discount3:
                        item.DiscountValue = Parameter.Discount3;
                        break;
                    }
                    item.Save(Connection, Transaction);
                }

                #endregion
            }
            else
            {
                #region Create discount values

                ORM_CMN_PRO_Product_Supplier_DiscountValue productSupplierDiscountValue = null;
                foreach (var item in discountTypes)
                {
                    productSupplierDiscountValue = new ORM_CMN_PRO_Product_Supplier_DiscountValue
                    {
                        CMN_PRO_Product_Supplier_DiscountValueID = Guid.NewGuid(),
                        Product_Supplier_RefID     = productSupplier.CMN_PRO_Product_SupplierID,
                        ORD_PRC_DiscountType_RefID = item.ORD_PRC_DiscountTypeID,
                        IsRelativeDiscountValue    = true,
                        IsAbsoluteDiscountValue    = false,
                        Tenant_RefID = securityTicket.TenantID
                    };

                    EDiscountType currentDiscountType = EnumUtils.GetEnumValueByDescription <EDiscountType>(item.GlobalPropertyMatchingID);
                    switch (currentDiscountType)
                    {
                    case EDiscountType.CashDiscount:
                        productSupplierDiscountValue.DiscountValue = Parameter.CashDiscount;
                        break;

                    case EDiscountType.MainDiscount:
                        productSupplierDiscountValue.DiscountValue = Parameter.Discount1;
                        break;

                    case EDiscountType.Discount2:
                        productSupplierDiscountValue.DiscountValue = Parameter.Discount2;
                        break;

                    case EDiscountType.Discount3:
                        productSupplierDiscountValue.DiscountValue = Parameter.Discount3;
                        break;
                    }
                    productSupplierDiscountValue.Save(Connection, Transaction);
                }

                #endregion
            }

            #endregion

            return(returnValue);

            #endregion UserCode
        }