protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5AR_SAiAG_0933 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_Guid();
            //Put your code here

            foreach (var productGuidIter in Parameter.CMN_PRO_ProductIDs)
            {
                if (Parameter.IsDeleted == true)
                {
                    var group2productDeleteQry = new ORM_CMN_PRO_Product_2_ProductGroup.Query()
                    {
                        CMN_PRO_ProductGroup_RefID = Parameter.CMN_PRO_ProductGroupID,
                        CMN_PRO_Product_RefID      = productGuidIter,
                        Tenant_RefID = securityTicket.TenantID,
                    };

                    if (ORM_CMN_PRO_Product_2_ProductGroup.Query.Exists(Connection, Transaction, group2productDeleteQry))
                    {
                        var group2prod = ORM_CMN_PRO_Product_2_ProductGroup.Query.Search(Connection, Transaction, group2productDeleteQry).First();
                        group2prod.IsDeleted = true;
                        group2prod.Save(Connection, Transaction);
                    }

                    continue;
                }


                // Check if the product is already in product group
                var gr2prQuery = new ORM_CMN_PRO_Product_2_ProductGroup.Query()
                {
                    CMN_PRO_ProductGroup_RefID = Parameter.CMN_PRO_ProductGroupID,
                    CMN_PRO_Product_RefID      = productGuidIter,
                    IsDeleted    = false,
                    Tenant_RefID = securityTicket.TenantID
                };

                // if the iterated product is already in group, continue.
                if (ORM_CMN_PRO_Product_2_ProductGroup.Query.Search(Connection, Transaction, gr2prQuery).Count > 0)
                {
                    continue;
                }

                var group2product = new ORM_CMN_PRO_Product_2_ProductGroup()
                {
                    AssignmentID = Guid.NewGuid(),
                    CMN_PRO_ProductGroup_RefID = Parameter.CMN_PRO_ProductGroupID,
                    CMN_PRO_Product_RefID      = productGuidIter,
                    Creation_Timestamp         = DateTime.Now,
                    Tenant_RefID = securityTicket.TenantID
                };
                group2product.Save(Connection, Transaction);
            }

            return(returnValue);

            #endregion UserCode
        }
        protected static FR_L5LA_GADHAGfTID_1152_Array Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            //Leave UserCode region to enable user code saving
            #region UserCode
            var returnValue = new FR_L5LA_GADHAGfTID_1152_Array();

            List <L5LA_GADHAGfTID_1152> productList = new List <L5LA_GADHAGfTID_1152>();
            returnValue.Result = productList.ToArray();


            var allMedicalProducts = cls_Get_Article_ForTenantID.Invoke(Connection, Transaction, securityTicket).Result.ToList();

            foreach (var item in allMedicalProducts)
            {
                //Ovo ce se brisati#################################

                var cmn_pro_product_2_productGroupQuery = new ORM_CMN_PRO_Product_2_ProductGroup.Query();
                cmn_pro_product_2_productGroupQuery.Tenant_RefID          = securityTicket.TenantID;
                cmn_pro_product_2_productGroupQuery.CMN_PRO_Product_RefID = item.CMN_PRO_ProductID;
                cmn_pro_product_2_productGroupQuery.IsDeleted             = false;

                var cmn_pro_product_2_productGroup = ORM_CMN_PRO_Product_2_ProductGroup.Query.Search(Connection, Transaction, cmn_pro_product_2_productGroupQuery).FirstOrDefault();
                //#################################

                if (cmn_pro_product_2_productGroup == null)
                {
                    L5LA_GADHAGfTID_1152 product = new L5LA_GADHAGfTID_1152();
                    product.CMN_PRO_ProductID   = item.CMN_PRO_ProductID;
                    product.HEC_ProductID       = item.HEC_ProductID;
                    product.ArticleRecipe       = item.ArticleRecipe;
                    product.Product_Number      = item.Product_Number;
                    product.HEC_ProductID       = item.HEC_ProductID;
                    product.Creation_Timestamp  = item.Creation_Timestamp;
                    product.Product_Name_DictID = item.Product_Name_DictID;

                    productList.Add(product);
                }
                else
                {
                    continue;
                }
            }

            returnValue.Result = productList.ToArray();
            return(returnValue);

            #endregion UserCode
        }
예제 #3
0
        protected static FR_L5LP_GPfTID_1533_Array Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L5LP_GPfTID_1533_Array();
            List <L5LP_GPfTID_1533> productList = new List <L5LP_GPfTID_1533>();
            returnValue.Result = productList.ToArray();

            var allMedicalProducts = cls_Get_HEC_Products_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result.ToList();

            foreach (var item in allMedicalProducts)
            {
                //Ovo ce se brisati#################################

                var cmn_pro_product_2_productGroupQuery = new ORM_CMN_PRO_Product_2_ProductGroup.Query();
                cmn_pro_product_2_productGroupQuery.Tenant_RefID          = securityTicket.TenantID;
                cmn_pro_product_2_productGroupQuery.CMN_PRO_Product_RefID = item.CMN_PRO_ProductID;
                cmn_pro_product_2_productGroupQuery.IsDeleted             = false;

                var cmn_pro_product_2_productGroup = ORM_CMN_PRO_Product_2_ProductGroup.Query.Search(Connection, Transaction, cmn_pro_product_2_productGroupQuery).FirstOrDefault();
                //#################################

                if (cmn_pro_product_2_productGroup == null)
                {
                    L5LP_GPfTID_1533 product = new L5LP_GPfTID_1533();
                    product.CMN_PRO_ProductID = item.CMN_PRO_ProductID;
                    product.HEC_ProductID     = item.HEC_ProductID;
                    product.Product_Name      = item.Product_Name;
                    product.Product_Number    = item.Product_Number;
                    product.Recepie           = item.Recepie;

                    productList.Add(product);
                }
                else
                {
                    continue;
                }
            }

            returnValue.Result = productList.ToArray();
            return(returnValue);

            #endregion UserCode
        }
예제 #4
0
        protected static FR_L6PD_GOPaAAP_1154 Execute(DbConnection Connection, DbTransaction Transaction, P_L6PD_GOPaAAP_1154 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L6PD_GOPaAAP_1154();
            returnValue.Result = new L6PD_GOPaAAP_1154();

            var param = new P_L6PD_GPaCOSfT_1120();
            param.TreatmentID = Parameter.TreatmentID;

            returnValue.Result.ProductsForTreatment = cls_Get_Products_and_CustomerOrderStatuses_for_TreatmentID.Invoke(Connection, Transaction, param, securityTicket).Result.ToArray();


            List <L5PR_GHPfT_1018> filteredArticles = new List <L5PR_GHPfT_1018>();
            var allArticles = cls_Get_HEC_Products_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result.ToList();

            foreach (var item in allArticles)
            {
                //Ovo ce se brisati#################################

                var cmn_pro_product_2_productGroupQuery = new ORM_CMN_PRO_Product_2_ProductGroup.Query();
                cmn_pro_product_2_productGroupQuery.Tenant_RefID          = securityTicket.TenantID;
                cmn_pro_product_2_productGroupQuery.CMN_PRO_Product_RefID = item.CMN_PRO_ProductID;
                cmn_pro_product_2_productGroupQuery.IsDeleted             = false;

                var cmn_pro_product_2_productGroup = ORM_CMN_PRO_Product_2_ProductGroup.Query.Search(Connection, Transaction, cmn_pro_product_2_productGroupQuery).FirstOrDefault();
                //#################################

                if (cmn_pro_product_2_productGroup == null)
                {
                    filteredArticles.Add(item);
                }
                else
                {
                    continue;
                }
            }
            returnValue.Result.AllProducts = filteredArticles.ToArray();

            return(returnValue);

            #endregion UserCode
        }
예제 #5
0
        protected static FR_L5AR_GPDfABI_1110 Execute(DbConnection Connection, DbTransaction Transaction, P_L5AR_GABIfAID_0950 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode

            //Put your code here

            var returnValue = new FR_L5AR_GPDfABI_1110();
            returnValue.Result = new L5AR_GPDfABI_1110();

            #region cls_Get_Taxes_for_CountryISOCode_and_TenantID

            var defaultCountryISOCode = CL2_Country.Atomic.Retrieval.cls_Get_DefaultCountryISOCode_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result;

            var param = new P_L3TX_GTfCICaT_1359();
            param.CountryISOCode = defaultCountryISOCode.Country_639_1_ISOCode;

            var taxes = cls_Get_Taxes_for_CountryISOCode_and_TenantID.Invoke(Connection, Transaction, param, securityTicket).Result;
            returnValue.Result.Taxes = taxes;

            #endregion

            #region cls_Get_all_Unit_for_Tenant

            var units = cls_Get_all_Unit_for_Tenant.Invoke(Connection, Transaction, securityTicket).Result;
            returnValue.Result.Units = units;

            #endregion

            #region cls_Get_AllDosageFroms_for_TenantID

            var dosageForms = cls_Get_AllDosageFroms_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result;
            returnValue.Result.DosageForms = dosageForms;

            #endregion

            #region cls_Get_All_ArticleGroups_and_ArticleCount_for_TenantID

            var articleGroups = cls_Get_All_ArticleGroups_and_ArticleCount_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result;

            if (Parameter.ExcludeAbdaGroup)
            {
                var list = articleGroups.ToList();

                var group = list.SingleOrDefault(x => x.GlobalPropertyMatchingID == DLCore_DBCommons.Utils.EnumUtils.GetEnumDescription(DLCore_DBCommons.APODemand.EProductGroup.ABDA));
                if (group != null)
                {
                    list.Remove(group);
                    articleGroups = list.ToArray();
                }
            }

            returnValue.Result.ArticleGroups = articleGroups;

            #endregion

            #region cls_Get_AllProductTypes_for_TenantID

            var productTypes = cls_Get_AllProductTypes_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result;
            returnValue.Result.ProductTypes = productTypes;

            #endregion

            if (Parameter.ArticleID != Guid.Empty)
            {
                #region cls_Get_ArticleBasicInfo_for_ArticleID

                CL5_APOAdmin_Articles.Atomic.Retrieval.P_L5AR_GABIfAID_0950 articleBasicInfoParam = new Atomic.Retrieval.P_L5AR_GABIfAID_0950();
                articleBasicInfoParam.ArticleID = Parameter.ArticleID;

                var articleBasicInfo = cls_Get_ArticleBasicInfo_for_ArticleID.Invoke(Connection, Transaction, articleBasicInfoParam, securityTicket).Result;
                returnValue.Result.BasicArticleData = articleBasicInfo;

                #endregion

                #region Selected_and_all_article_groups

                var groupQuery = new ORM_CMN_PRO_Product_2_ProductGroup.Query();
                groupQuery.CMN_PRO_Product_RefID = Parameter.ArticleID;
                var groupsORM = ORM_CMN_PRO_Product_2_ProductGroup.Query.Search(Connection, Transaction, groupQuery);

                List <Guid> selectedGroups = new List <Guid>();

                foreach (var group in groupsORM)
                {
                    if (group.IsDeleted == false)
                    {
                        selectedGroups.Add(group.CMN_PRO_ProductGroup_RefID);
                    }
                }

                returnValue.Result.SelectedArticleGroups = selectedGroups.ToArray();

                #endregion
            }

            return(returnValue);

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

            var languageQuery = new ORM_CMN_Language.Query();
            languageQuery.Tenant_RefID = securityTicket.TenantID;
            languageQuery.IsDeleted    = false;

            var languages = ORM_CMN_Language.Query.Search(Connection, Transaction, languageQuery);

            var product = new ORM_CMN_PRO_Product();

            if (Parameter.ArticleID == Guid.Empty)
            {
                #region ORM_CMN_PRO_Product

                product = new ORM_CMN_PRO_Product();
                product.CMN_PRO_ProductID = Guid.NewGuid();
                product.ProductITL        = Guid.NewGuid().ToString();

                product.IsProduct_Article             = true;
                product.IsProductAvailableForOrdering = true;
                product.IsImportedFromExternalCatalog = false;

                product.Product_Name        = new Dict(ORM_CMN_PRO_Product.TableName);
                product.Product_Description = new Dict(ORM_CMN_PRO_Product.TableName);

                product.PackageInfo_RefID = Guid.NewGuid();

                product.Creation_Timestamp = DateTime.Now;
                product.Tenant_RefID       = securityTicket.TenantID;

                product.Save(Connection, Transaction);

                #endregion

                #region CustomArticles Group

                var customerArticlesGroupID = Guid.Empty;

                var customArticlesGlobalMatching = EnumUtils.GetEnumDescription(EProductGroup.CustomArticles);

                var customerArticlesGroup = ORM_CMN_PRO_ProductGroup.Query.Search(Connection, Transaction, new ORM_CMN_PRO_ProductGroup.Query()
                {
                    GlobalPropertyMatchingID = customArticlesGlobalMatching,
                    IsDeleted    = false,
                    Tenant_RefID = securityTicket.TenantID
                });

                if (customerArticlesGroup == null || customerArticlesGroup.Count() == 0)
                {
                    var group = new ORM_CMN_PRO_ProductGroup();
                    group.CMN_PRO_ProductGroupID   = Guid.NewGuid();
                    group.GlobalPropertyMatchingID = customArticlesGlobalMatching;
                    group.ProductGroup_Name        = new Dict(ORM_CMN_PRO_ProductGroup.TableName);
                    foreach (var language in languages)
                    {
                        group.ProductGroup_Name.AddEntry(language.CMN_LanguageID, "Custom Articles");
                    }
                    group.ProductGroup_Description = new Dict(ORM_CMN_PRO_ProductGroup.TableName);
                    group.IsDeleted          = false;
                    group.Creation_Timestamp = DateTime.Now;
                    group.Tenant_RefID       = securityTicket.TenantID;
                    group.Save(Connection, Transaction);

                    customerArticlesGroupID = group.CMN_PRO_ProductGroupID;
                }
                else
                {
                    customerArticlesGroupID = customerArticlesGroup.Single().CMN_PRO_ProductGroupID;
                }

                var product2Group = new ORM_CMN_PRO_Product_2_ProductGroup();
                product2Group.AssignmentID               = Guid.NewGuid();
                product2Group.CMN_PRO_Product_RefID      = product.CMN_PRO_ProductID;
                product2Group.CMN_PRO_ProductGroup_RefID = customerArticlesGroupID;
                product2Group.Creation_Timestamp         = DateTime.Now;
                product2Group.Tenant_RefID               = securityTicket.TenantID;
                product2Group.Save(Connection, Transaction);

                #endregion
            }
            else
            {
                product.Load(Connection, Transaction, Parameter.ArticleID);
            }

            #region ORM_CMN_PRO_Product

            product.Product_Number = Parameter.PZN;

            foreach (var language in languages)
            {
                product.Product_Name.UpdateEntry(language.CMN_LanguageID, Parameter.ArticleName);
            }

            foreach (var language in languages)
            {
                product.Product_Description.UpdateEntry(language.CMN_LanguageID, Parameter.Notice);
            }

            product.DefaultStorageTemperature_min_in_kelvin = Parameter.StorageTemperatureFrom_in_kelvin;
            product.DefaultStorageTemperature_max_in_kelvin = Parameter.StorageTemperatureTo_in_kelvin;
            product.DefaultExpirationPeriod_in_sec          = Parameter.Expiring_in_seconds;

            product.ProductType_RefID = Parameter.ArticleType_RefID;

            product.IsPlaceholderArticle = Parameter.IsDummy;

            product.IsStorage_CoolingRequired      = Parameter.IsStorage_CoolingRequired;
            product.IsStorage_BatchNumberMandatory = Parameter.IsStorage_BatchNumberMandatory;
            product.IsStorage_ExpiryDateMandatory  = Parameter.IsStorage_ExpiryDateMandatory;
            product.IsProductPartOfDefaultStock    = Parameter.IsProduct_PartOfDefaultStock;

            var xml = new ProductAdditionalInfoXML()
            {
                IsPharmacyOnlyDistribution = Parameter.IsProduct_PharmacyOnlyDistribution
            };
            product.ProductAdditionalInfoXML = xml.ToPayload();

            product.ProductSuccessor_RefID = Parameter.ProductSuccessor_RefID;

            product.Save(Connection, Transaction);

            #endregion

            #region ORM_HEC_Product

            var query = new ORM_HEC_Product.Query();
            query.Ext_PRO_Product_RefID = product.CMN_PRO_ProductID;
            query.IsDeleted             = false;
            query.Tenant_RefID          = securityTicket.TenantID;

            var hecProduct = ORM_HEC_Product.Query.Search(Connection, Transaction, query).SingleOrDefault();
            if (hecProduct == null)
            {
                hecProduct = new ORM_HEC_Product();
                hecProduct.HEC_ProductID         = Guid.NewGuid();
                hecProduct.Ext_PRO_Product_RefID = product.CMN_PRO_ProductID;
                hecProduct.Creation_Timestamp    = DateTime.Now;
                hecProduct.Tenant_RefID          = securityTicket.TenantID;
            }
            hecProduct.ProductDosageForm_RefID = Parameter.DosageForm_RefID;
            hecProduct.IsProduct_AddictiveDrug = Parameter.IsProduct_AddictiveDrug;
            hecProduct.Save(Connection, Transaction);

            #endregion

            #region ORM_CMN_PRO_Product_2_ProductGroup

            var groupQuery = new ORM_CMN_PRO_Product_2_ProductGroup.Query();
            groupQuery.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID;
            groupQuery.IsDeleted             = false;
            groupQuery.Tenant_RefID          = securityTicket.TenantID;

            var alreadyPersistedGroups = ORM_CMN_PRO_Product_2_ProductGroup.Query.Search(Connection, Transaction, groupQuery);

            //delete removed groups
            foreach (var item in alreadyPersistedGroups)
            {
                var globalGroup = new ORM_CMN_PRO_ProductGroup();
                globalGroup.Load(Connection, Transaction, item.CMN_PRO_ProductGroup_RefID);

                if (!Parameter.ArticleGroup_RefIDs.Contains(item.CMN_PRO_ProductGroup_RefID) && String.IsNullOrEmpty(globalGroup.GlobalPropertyMatchingID))
                {
                    item.IsDeleted = true;
                    item.Save(Connection, Transaction);
                }
            }

            //add new groups
            foreach (var groupID in Parameter.ArticleGroup_RefIDs)
            {
                if (!alreadyPersistedGroups.Select(i => i.CMN_PRO_ProductGroup_RefID).Contains(groupID))
                {
                    var group = new ORM_CMN_PRO_Product_2_ProductGroup();
                    group.AssignmentID               = Guid.NewGuid();
                    group.CMN_PRO_Product_RefID      = product.CMN_PRO_ProductID;
                    group.CMN_PRO_ProductGroup_RefID = groupID;
                    group.Creation_Timestamp         = DateTime.Now;
                    group.Tenant_RefID               = securityTicket.TenantID;
                    group.Save(Connection, Transaction);
                }
            }

            #endregion

            #region ORM_CMN_PRO_Product_SalesTaxAssignmnet

            var salesTaxQuery = new ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query();
            salesTaxQuery.Product_RefID = product.CMN_PRO_ProductID;
            salesTaxQuery.IsDeleted     = false;
            salesTaxQuery.Tenant_RefID  = securityTicket.TenantID;

            var salesTax = ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query.Search(Connection, Transaction, salesTaxQuery).SingleOrDefault();
            if (salesTax == null)
            {
                salesTax = new ORM_CMN_PRO_Product_SalesTaxAssignmnet();
                salesTax.CMN_PRO_Product_SalesTaxAssignmnetID = Guid.NewGuid();
                salesTax.Product_RefID      = product.CMN_PRO_ProductID;
                salesTax.Creation_Timestamp = DateTime.Now;
                salesTax.Tenant_RefID       = securityTicket.TenantID;
            }
            salesTax.ApplicableSalesTax_RefID = Parameter.VAT_RefID;
            salesTax.Save(Connection, Transaction);

            #endregion

            #region ORM_CMN_PRO_Product_2_ProductCode

            var product2CodeQuery = new ORM_CMN_PRO_Product_2_ProductCode.Query();
            product2CodeQuery.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID;
            product2CodeQuery.Tenant_RefID          = securityTicket.TenantID;
            product2CodeQuery.IsDeleted             = false;

            var productCodeAssignment = ORM_CMN_PRO_Product_2_ProductCode.Query.Search(Connection, Transaction, product2CodeQuery).SingleOrDefault();

            if (productCodeAssignment == null)
            {
                #region ORM_CMN_PRO_ProductCode

                //Get Product Code Type or create it if not exist
                var eanID = DMProductCodeTypes.Get_ProductCodeType_ByGlobalMatchingID(Connection, Transaction, EProductCodeType.EAN, securityTicket);

                var productCode = new ORM_CMN_PRO_ProductCode();
                productCode.CMN_PRO_ProductCodeID  = Guid.NewGuid();
                productCode.ProductCode_Type_RefID = eanID;
                productCode.ProductCode_Value      = Parameter.EAN;
                productCode.Creation_Timestamp     = DateTime.Now;
                productCode.Tenant_RefID           = securityTicket.TenantID;
                productCode.Save(Connection, Transaction);

                #endregion

                #region ORM_CMN_PRO_Product_2_ProductCode

                var product2Code = new ORM_CMN_PRO_Product_2_ProductCode();
                product2Code.AssignmentID              = Guid.NewGuid();
                product2Code.CMN_PRO_Product_RefID     = product.CMN_PRO_ProductID;
                product2Code.CMN_PRO_ProductCode_RefID = productCode.CMN_PRO_ProductCodeID;
                product2Code.Creation_Timestamp        = DateTime.Now;
                product2Code.Tenant_RefID              = securityTicket.TenantID;
                product2Code.Save(Connection, Transaction);

                #endregion
            }
            else
            {
                #region ORM_CMN_PRO_ProductCode

                var productCode = new ORM_CMN_PRO_ProductCode();
                productCode.Load(Connection, Transaction, productCodeAssignment.CMN_PRO_ProductCode_RefID);
                productCode.ProductCode_Value = Parameter.EAN;
                productCode.Save(Connection, Transaction);

                #endregion
            }

            #endregion

            #region ORM_CMN_PRO_PackageInfo

            var packageInfo = new ORM_CMN_PRO_PAC_PackageInfo();
            packageInfo.Load(Connection, Transaction, product.PackageInfo_RefID);
            if (packageInfo.CMN_PRO_PAC_PackageInfoID == Guid.Empty)
            {
                packageInfo = new ORM_CMN_PRO_PAC_PackageInfo();
                packageInfo.CMN_PRO_PAC_PackageInfoID = product.PackageInfo_RefID;
                packageInfo.Creation_Timestamp        = DateTime.Now;
                packageInfo.Tenant_RefID = securityTicket.TenantID;
            }
            packageInfo.PackageContent_Amount               = PackageAmountUtils.GetPackageAmount(Parameter.UnitAmount);
            packageInfo.PackageContent_DisplayLabel         = Parameter.UnitAmount;
            packageInfo.PackageContent_MeasuredInUnit_RefID = Parameter.Unit_RefID;
            packageInfo.Save(Connection, Transaction);

            #endregion

            #region Producer

            var producer = new ORM_CMN_BPT_BusinessParticipant();
            producer.Load(Connection, Transaction, product.ProducingBusinessParticipant_RefID);
            if (producer.CMN_BPT_BusinessParticipantID == Guid.Empty)
            {
                producer.CMN_BPT_BusinessParticipantID = Guid.NewGuid();
                producer.IsCompany          = true;
                producer.Tenant_RefID       = securityTicket.TenantID;
                producer.Creation_Timestamp = DateTime.Now;

                product.ProducingBusinessParticipant_RefID = producer.CMN_BPT_BusinessParticipantID;
                product.Save(Connection, Transaction);
            }
            producer.DisplayName = Parameter.Producer;
            producer.Save(Connection, Transaction);

            #endregion

            returnValue.Result = product.CMN_PRO_ProductID;
            return(returnValue);

            #endregion UserCode
        }
        protected static FR_L3MP_GPfTID_1602_Array Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            //Leave UserCode region to enable user code saving
            #region UserCode
            var returnValue = new FR_L3MP_GPfTID_1602_Array();

            List <L2PD_GAPfTI_1541> allProducts = cls_Get_Product_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result.ToList();

            List <L3MP_GPfTID_1602> sortedData = new List <L3MP_GPfTID_1602>();

            for (int i = 0; i < allProducts.Count; i++)
            {
                //Ovo ce se brisati#################################

                var cmn_pro_product_2_productGroupQuery = new ORM_CMN_PRO_Product_2_ProductGroup.Query();
                cmn_pro_product_2_productGroupQuery.Tenant_RefID          = securityTicket.TenantID;
                cmn_pro_product_2_productGroupQuery.CMN_PRO_Product_RefID = allProducts[i].CMN_PRO_ProductID;
                cmn_pro_product_2_productGroupQuery.IsDeleted             = false;

                var cmn_pro_product_2_productGroup = ORM_CMN_PRO_Product_2_ProductGroup.Query.Search(Connection, Transaction, cmn_pro_product_2_productGroupQuery).FirstOrDefault();
                //#################################

                if (cmn_pro_product_2_productGroup == null)
                {
                    L3MP_GPfTID_1602 product = new L3MP_GPfTID_1602();

                    product.CMN_PRO_ProductID   = allProducts[i].CMN_PRO_ProductID;
                    product.Creation_Timestamp  = allProducts[i].Creation_Timestamp;
                    product.Product_Description = allProducts[i].Product_Description;
                    product.Product_Name_DictID = allProducts[i].Product_Name_DictID;
                    product.Product_Number      = allProducts[i].Product_Number;
                    product.Tenant_RefID        = allProducts[i].Tenant_RefID;

                    #region Surveys

                    var surveysQuery = new ORM_CMN_PRO_Product_Questionnaire_Assignment.Query();
                    surveysQuery.CMN_PRO_Product_RefID = allProducts[i].CMN_PRO_ProductID;
                    surveysQuery.IsDeleted             = false;

                    var surveyes = ORM_CMN_PRO_Product_Questionnaire_Assignment.Query.Search(Connection, Transaction, surveysQuery).ToList();

                    if (surveyes.Count != 0)
                    {
                        List <L3MP_GPfTID_1602_Surveys> listOfSurveys = new List <L3MP_GPfTID_1602_Surveys>();

                        foreach (var survey in surveyes)
                        {
                            L3MP_GPfTID_1602_Surveys surveyData = new L3MP_GPfTID_1602_Surveys();
                            surveyData.CMN_PRO_Product_Questionnaire_AssignmentID = survey.CMN_PRO_Product_Questionnaire_AssignmentID;
                            listOfSurveys.Add(surveyData);
                        }

                        product.Surveys = listOfSurveys.ToArray();
                    }

                    #endregion

                    #region Medical_ProductData

                    var medicalProductDataQuery = new ORM_HEC_Product.Query();
                    medicalProductDataQuery.Ext_PRO_Product_RefID = allProducts[i].CMN_PRO_ProductID;
                    medicalProductDataQuery.IsDeleted             = false;

                    var medicalProductData = ORM_HEC_Product.Query.Search(Connection, Transaction, medicalProductDataQuery).FirstOrDefault();

                    if (medicalProductData != null)
                    {
                        L3MP_GPfTID_1602_Medical_ProductData productData = new L3MP_GPfTID_1602_Medical_ProductData();
                        productData.HEC_ProductID = medicalProductData.HEC_ProductID;
                        productData.Recepie       = medicalProductData.Recepie;

                        product.Medical_ProductData = productData;
                    }

                    #endregion

                    sortedData.Add(product);
                }
                else
                {
                    continue;
                }
            }

            returnValue.Result = sortedData.ToArray();

            return(returnValue);

            #endregion UserCode
        }